texlive[72681] Build/source/libs: icu 76.2 (requires C++17)

commits+karl at tug.org commits+karl at tug.org
Sun Oct 27 23:03:56 CET 2024


Revision: 72681
          https://tug.org/svn/texlive?view=revision&revision=72681
Author:   karl
Date:     2024-10-27 23:03:54 +0100 (Sun, 27 Oct 2024)
Log Message:
-----------
icu 76.2 (requires C++17)

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/icu/TLpatches/ChangeLog
    trunk/Build/source/libs/icu/TLpatches/TL-Changes
    trunk/Build/source/libs/icu/TLpatches/patch-13-STATIC_PREFIX
    trunk/Build/source/libs/icu/configure
    trunk/Build/source/libs/icu/icu-src/APIChangeReport.html
    trunk/Build/source/libs/icu/icu-src/APIChangeReport.md
    trunk/Build/source/libs/icu/icu-src/LICENSE
    trunk/Build/source/libs/icu/icu-src/build_qnx/build-hooks
    trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in
    trunk/Build/source/libs/icu/icu-src/source/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/acinclude.m4
    trunk/Build/source/libs/icu/icu-src/source/aclocal.m4
    trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.IcuVersion.props
    trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props
    trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props
    trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
    trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h
    trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
    trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/charstr.h
    trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/emojiprops.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/hash.h
    trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/localebuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/localefallback_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/localematcher.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/localeprioritylist.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locbased.h
    trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locdistance.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locdistance.h
    trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.h
    trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/locutil.h
    trunk/Build/source/libs/icu/icu-src/source/common/lstmbe.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/mlbe.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/norm2allmodes.h
    trunk/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
    trunk/Build/source/libs/icu/icu-src/source/common/patternprops.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/propname.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/propname_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/propsvec.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/punycode.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/putil.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/putilimp.h
    trunk/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.h
    trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbistbl.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/resbund.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/resbund_cnv.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.h
    trunk/Build/source/libs/icu/icu-src/source/common/serv.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/servlkf.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/servls.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/servnotf.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/servrbf.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/simpleformatter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ubrk.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucase.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucase.h
    trunk/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/ucasemap.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucasemap_titlecase_brkiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uchar.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h
    trunk/Build/source/libs/icu/icu-src/source/common/ucharstrie.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucharstriebuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucharstrieiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uchriter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucmndata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_err.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ext.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_io.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_lmb.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u7.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvbocu.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvisci.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvlat1.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvscsu.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucptrie.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ucurr.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/udata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/udataswp.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uenum.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uhash.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uhash.h
    trunk/Build/source/libs/icu/icu-src/source/common/uidna.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uinvchar.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uinvchar.h
    trunk/Build/source/libs/icu/icu-src/source/common/uiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uloc.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ulocale.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ulocbuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ulocimp.h
    trunk/Build/source/libs/icu/icu-src/source/common/umapfile.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/umapfile.h
    trunk/Build/source/libs/icu/icu-src/source/common/umutablecptrie.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/umutex.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unames.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/bytestrie.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/chariter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/dtintrv.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/edits.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/idna.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/localematcher.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/localpointer.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/locid.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/normlzr.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/parsepos.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/platform.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/resbund.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/schriter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/simpleformatter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/stringpiece.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucasemap.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucharstrie.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uchriter.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uidna.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uloc.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ulocale.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ulocbuilder.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/unifunct.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/unorm2.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/urename.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uset.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h
    trunk/Build/source/libs/icu/icu-src/source/common/unicode/uversion.h
    trunk/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unifunct.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uniset.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uniset_closure.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unisetspan.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unisetspan.h
    trunk/Build/source/libs/icu/icu-src/source/common/unistr.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unistr_case.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unistr_cnv.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unistr_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/unormcmp.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uprops.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uprops.h
    trunk/Build/source/libs/icu/icu-src/source/common/uresbund.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uresdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uscript.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uset.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uset_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/usetiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ushape.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/usprep.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustr_titlecase_brkiter.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustr_wcs.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustrenum.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustring.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/ustrtrns.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utext.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/util.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/util_props.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utrace.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utrie.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utrie2.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utrie_swap.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uts46.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/utypes.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uvector.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uvectr32.cpp
    trunk/Build/source/libs/icu/icu-src/source/common/uvectr64.cpp
    trunk/Build/source/libs/icu/icu-src/source/config/Makefile.inc.in
    trunk/Build/source/libs/icu/icu-src/source/config/dist.mk
    trunk/Build/source/libs/icu/icu-src/source/config/mh-haiku
    trunk/Build/source/libs/icu/icu-src/source/config/mh-os390
    trunk/Build/source/libs/icu/icu-src/source/config/mh-solaris
    trunk/Build/source/libs/icu/icu-src/source/configure
    trunk/Build/source/libs/icu/icu-src/source/configure.ac
    trunk/Build/source/libs/icu/icu-src/source/data/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/data/dtd/cldr/common/dtd/ldml.dtd
    trunk/Build/source/libs/icu/icu-src/source/data/dtd/cldr/common/dtd/ldmlICU.dtd
    trunk/Build/source/libs/icu/icu-src/source/data/icupkg.inc.in
    trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan-icu4x.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan-icu4x.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm
    trunk/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm
    trunk/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm
    trunk/Build/source/libs/icu/icu-src/source/data/in/nfkc_scf.nrm
    trunk/Build/source/libs/icu/icu-src/source/data/in/pnames.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/ucase.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/uemoji.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/ulayout.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/unames.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/uprops.icu
    trunk/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm
    trunk/Build/source/libs/icu/icu-src/source/data/makedata.mak
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/emoji-sequences.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/emoji-zwj-sequences.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_scf.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt
    trunk/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt
    trunk/Build/source/libs/icu/icu-src/source/extra/uconv/pkgdata.inc.in
    trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uconv.cpp
    trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uconv.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/i18n/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/astro.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/astro.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/basictz.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/bocsu.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/brktrans.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/buddhcal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/buddhcal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/casetrn.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/cecal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/cecal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/chnsecal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/chnsecal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/choicfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/coleitr.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/coll.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collation.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collation.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationbuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationbuilder.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationcompare.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationdata.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatabuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatawriter.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatin.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatinbuilder.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatinbuilder.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationfcd.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationiterator.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationkeys.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationroot.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationrootelements.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationruleparser.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationsets.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationsettings.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationsettings.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationtailoring.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationweights.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/collationweights.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/coptccal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/coptccal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/cpdtrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/cpdtrans.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/csdetect.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/csmatch.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/csr2022.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/csrsbcs.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dangical.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dangical.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/datefmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dayperiodrules.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/decNumber.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/displayoptions.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/double-conversion-cached-powers.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/double-conversion-cached-powers.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/double-conversion-string-to-double.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/erarules.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/erarules.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/esctrn.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ethpccal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ethpccal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/formatted_string_builder.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/formatted_string_builder.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/gender.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/gregoimp.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/hebrwcal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/hebrwcal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters
    trunk/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/indiancal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/inputext.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/islamcal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/islamcal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/iso8601cal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/iso8601cal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/japancal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/listformatter.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/measunit_extra.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/measunit_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/measure.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/name2uni.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/name2uni.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfrlist.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfrs.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfrs.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfrule.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/nfsubs.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/nortrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/nultrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_asformat.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_asformat.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_capi.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_compact.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_currencysymbols.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_decnum.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_mapper.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_microprops.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_multiplier.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_simple.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_skeletons.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_types.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_usageprefs.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_usageprefs.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_utils.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/number_utypes.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_affixes.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_compositions.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_currency.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_decimal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_scientific.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_symbols.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_types.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_utils.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numparse_validators.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numrange_capi.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numrange_fluent.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/numrange_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/olsontz.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/persncal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/persncal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/pluralranges.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/quant.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_data.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_rule.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_set.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rbtz.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/regexcst.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/regeximp.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/region.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/remtrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/repattrn.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/search.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/simpletz.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/sources.txt
    trunk/Build/source/libs/icu/icu-src/source/i18n/string_segment.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/string_segment.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/strmatch.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/strrepl.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/stsearch.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/taiwncal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/taiwncal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/titletrn.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tmutfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/translit.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tridpars.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/tzrule.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/tztrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ucal.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ucol_sit.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ucoleitr.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ucsdet.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/udat.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/udateintervalformat.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/udatpg.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uitercollationiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/umsg.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/unesctrn.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uni2name.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uni2name.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/choicfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/coleitr.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtfmtsym.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtitvfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtrule.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fieldpos.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/formattednumber.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/gregocal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measure.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numberrangeformatter.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numsys.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/rbtz.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/search.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/selfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/simplenumberformatter.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/simpletz.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/sortkey.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/stsearch.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tblcoll.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tmutamt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tmutfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tzrule.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tztrans.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/usimplenumberformatter.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/vtzone.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/units_converter.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/units_converter.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/units_data.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/units_data.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/units_router.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/unum.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/utf16collationiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/utf8collationiterator.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/utrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/vzone.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/winnmfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/zrule.cpp
    trunk/Build/source/libs/icu/icu-src/source/icudefs.mk.in
    trunk/Build/source/libs/icu/icu-src/source/io/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/io/io.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/io/locbund.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/sprintf.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/sscanf.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/ufile.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/uprintf.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/uprntf_p.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/uscanf.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/uscanf_p.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/ustdio.cpp
    trunk/Build/source/libs/icu/icu-src/source/io/ustream.cpp
    trunk/Build/source/libs/icu/icu-src/source/layoutex/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/layoutex/ParagraphLayout.cpp
    trunk/Build/source/libs/icu/icu-src/source/layoutex/RunArrays.cpp
    trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h
    trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/RunArrays.h
    trunk/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/layoutex/playout.cpp
    trunk/Build/source/libs/icu/icu-src/source/layoutex/plruns.cpp
    trunk/Build/source/libs/icu/icu-src/source/python/icutools/databuilder/renderers/makefile.py
    trunk/Build/source/libs/icu/icu-src/source/python/icutools/databuilder/request_types.py
    trunk/Build/source/libs/icu/icu-src/source/python/icutools/databuilder/test/filtration_test.py
    trunk/Build/source/libs/icu/icu-src/source/runConfigureICU
    trunk/Build/source/libs/icu/icu-src/source/samples/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/samples/all/all.sln
    trunk/Build/source/libs/icu/icu-src/source/samples/all/samplecheck.bat
    trunk/Build/source/libs/icu/icu-src/source/samples/coll/coll.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/readme.txt
    trunk/Build/source/libs/icu/icu-src/source/samples/strsrch/strsrch.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_1.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_2.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_3.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_4.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/unaccent.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/unaccent.h
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/main.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/unaccent.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/unaccent.h
    trunk/Build/source/libs/icu/icu-src/source/samples/translit/util.cpp
    trunk/Build/source/libs/icu/icu-src/source/samples/ugrep/ugrep.cpp
    trunk/Build/source/libs/icu/icu-src/source/stubdata/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/capitst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccapitst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccurrtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdateintervalformattest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdetst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtdptst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtrgtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cestst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfintst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfrtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cg7coll.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/chashtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj.filters
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/citertst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cjaptst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cpluralrulestest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/crestst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/creststn.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cstrtest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cturtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/currtest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/custrtrn.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/custrtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/encoll.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/eurocreg.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/hpmufn.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/idnatest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nccbtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ncnvfbts.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ncnvtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nucnvtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/reapits.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/spooftest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/spreptst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/stdnmtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/tracetst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ucnvseltst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ucptrietest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/udatatst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/udatpg_test.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/uformattedvaluetst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ulistfmttest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ulocaletst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ulocbuildertst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/unumberformattertst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/unumberrangeformattertst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usettest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usrchtst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utf16tst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utf8tst.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utmstest.c
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utransts.c
    trunk/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt
    trunk/Build/source/libs/icu/icu-src/source/test/depstest/depstest.py
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/break_iterator_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/calendar_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/collator_compare_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/collator_rulebased_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/date_format_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/fuzzer_driver.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/locale_util.h
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/number_format_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/relative_date_time_formatter_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/ucasemap_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/uregex_open_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/hdrtst/testinternalheaders.sh
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/aliastst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/allcoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/alphaindextst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/astrotst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/astrotst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/calcasts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/callimts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltztst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/canittst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/citrtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/colldata.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/convtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/convtest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/csdetest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrcal.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/decoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/displayoptions_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmapts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmrgts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmtrtts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmtrtts.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/encoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/escoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ficoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/fldset.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/formatted_string_builder_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/formattedvaluetest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/frcoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/g7coll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/genderinfotest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/icusvtst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaconf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaref.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/incaltst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/incaltst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itercoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfp.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfrt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/jacoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/jamotest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/lcukocol.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/localematchertest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/locnmtst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/miscdtfm.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/mnkytst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/msfmrgts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/msfmrgts.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmapts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmtrt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmtrt.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/normconf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/nptrans.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_parse.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_permutation.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_range.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_simple.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/pluralmaptest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurults.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/quantityformattertest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbiapts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbiapts.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/regcoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/regcoll.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/regextst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/reptest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/restest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/restsnew.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/scientificnumberformattertest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/sdtfmtts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/sfwdchit.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/simpleformattertest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/srchtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ssearch.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/static_unisets_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/string_segment_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/strtest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/svccoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tchcfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/testidn.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/testutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/textfile.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tfsmalls.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/thcoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/transapi.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/transrt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/transtst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/transtst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/trcoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/trnserr.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tscoll.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdate.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdtfmsy.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsnmfmt.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsnmfmt.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tstnrapi.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tufmtts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzbdtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzfmttst.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzfmttst.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzoffloc.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzregts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzrulets.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/tztest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucaconf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/uchar_type_build_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/unifiedcachetest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/units_data_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/units_test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/usettest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/usettest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/utxttest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/uvectest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/iotest/iotest.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/letest/FontObject.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/FontObject.h
    trunk/Build/source/libs/icu/icu-src/source/test/letest/FontTableCache.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/PortableFontInstance.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/PortableFontInstance.h
    trunk/Build/source/libs/icu/icu-src/source/test/letest/SimpleFontInstance.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/SimpleFontInstance.h
    trunk/Build/source/libs/icu/icu-src/source/test/letest/cletest.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/letest/cmaps.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/cmaps.h
    trunk/Build/source/libs/icu/icu-src/source/test/letest/gendata.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/gendata.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/letest/letest.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/letest.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/letest/letsutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/letest/testdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/charperf/charperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/charperf/charperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/collationperf/collperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf/collperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf2/collperf2.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf2/collperf2.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/perf/dicttrieperf/dicttrieperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/howExpensiveIs.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/sieve.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontObject.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontObject.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontTableCache.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/PortableFontInstance.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/PortableFontInstance.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/SimpleFontInstance.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/SimpleFontInstance.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cfonts.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cmaps.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cmaps.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/leperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/xmlreader.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/xmlreader.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/localecanperf/localecanperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/dtfmtrtperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/dtfmtrtperf.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/normperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/normperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/simplenormperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/strsrchperf/strsrchperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/strsrchperf/strsrchperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ucnvavailperf/ucnvavailperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/draft/bitset.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/draft/trieset.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/unisetperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/bitset.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/usetperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ustrperf/stringperf.h
    trunk/Build/source/libs/icu/icu-src/source/test/perf/utfperf/utfperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/utrie2perf/utrie2perf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTestV2.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_cj.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/localeIdentifiers/likelySubtags.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/localeIdentifiers/localeCanonicalization.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/localeIdentifiers/localeDisplayName.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/_header.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/_readme.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/af.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/am.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ar.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/as.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/az.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/be.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/bg.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/bn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/bs.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ca.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/catalog.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/chr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/cs.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/cy.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/da.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/de.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/dsb.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/el.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/en.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/es.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/et.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/eu.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/fa.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/fi.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/fil.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/fr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ga.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/gd.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/gl.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/gu.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ha.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/he.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hi.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hi_Latn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hsb.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hu.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/hy.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/id.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ig.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/is.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/it.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ja.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/jv.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ka.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/kk.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/km.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/kn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ko.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/kok.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ky.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/lo.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/lt.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/lv.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/mk.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ml.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/mn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/mr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ms.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/my.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ne.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/nl.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/nn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/no.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/or.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/pa.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/pl.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ps.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/pt.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/qu.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ro.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ru.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sc.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sd.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/si.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sk.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sl.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/so.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sq.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sr_Latn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sv.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sw.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ta.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/te.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/tg.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/th.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ti.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/tk.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/tr.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/uk.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ur.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/uz.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/vi.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/wo.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/yo.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/yue.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/yue_Hans.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/zh.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/zh_Hant.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/zu.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/units/unitPreferencesTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/units/unitsTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/collationtest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/root.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/ssearch.xml
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt
    trunk/Build/source/libs/icu/icu-src/source/test/thaitest/thaitest.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctest.c
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/datamap.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/testdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/utimer.h
    trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/uperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/cptbl.h
    trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/escapesrc.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/tblgen.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genbrk/genbrk.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genbrk/genbrk.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/genccode/genccode.c
    trunk/Build/source/libs/icu/icu-src/source/tools/genccode/genccode.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gencmn/gencmn.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c
    trunk/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gencolusb/extract_unsafe_backwards.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gencolusb/verify_uset.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gendict/gendict.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gendict/gendict.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/extradata.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/extradata.h
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/derb.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/derb.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/errmsg.c
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/filterrb.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/genrb.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/genrb.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/read.c
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/rle.c
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/wrtjava.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genrb/wrtxml.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl
    trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/store.c
    trunk/Build/source/libs/icu/icu-src/source/tools/gentest/gentest.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/icuexportdata/icuexportdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/icuexportdata/icuexportdata.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/icuinfo.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/icuinfo.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/testplug.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/icupkg/icupkg.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/icupkg/icupkg.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/icuswap/icuswap.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/icuswap/icuswap.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/genmbcs.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/collationinfo.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/dbgutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_genc.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_genc.h
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_gencmn.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkgitems.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ppucd.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ppucd.h
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.h
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucbuf.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucm.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucmstate.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/xmlparser.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/Makefile.in
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzdump.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzdump.vcxproj
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/localtime.c
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/tz2icu.cpp
    trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/zdump.c
    trunk/Build/source/libs/icu/version.ac

Added Paths:
-----------
    trunk/Build/source/libs/icu/icu-src/source/data/in/icudt76l.dat
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_allocation.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_arguments.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_checker.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_checker.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_data_model.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_errors.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_errors.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_evaluation.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_evaluation.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_formattable.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_formatter.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_function_registry.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_function_registry_internal.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_macros.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_parser.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_parser.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_serializer.cpp
    trunk/Build/source/libs/icu/icu-src/source/i18n/messageformat2_serializer.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2_arguments.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2_data_model.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2_data_model_names.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2_formattable.h
    trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/messageformat2_function_registry.h
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usrchdat.inc
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/date_time_pattern_generator_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/dtfmtsym_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/message_formatter_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/normalizer2_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/number_formatter_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/plurrule_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/rule_based_break_iterator_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/time_zone_names_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/timezone_create_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/ubidi_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/unicodeset_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/uprop_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/fuzzer/uregex_match_fuzzer.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test.h
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test_custom.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test_icu.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test_read_json.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/intltest/messageformat2test_utils.h
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ak.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/bal_Latn.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/pcm.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/units/unitLocalePreferencesTest.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/message2/
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/message2/icu4j/
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/message2/icu4j/icu-test-functions.json
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/message2/icu4j/icu-test-selectors.json
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/json-json.hpp
    trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ujson.h
    trunk/Build/source/libs/icu/icu-src/testdata/
    trunk/Build/source/libs/icu/icu-src/testdata/message2/
    trunk/Build/source/libs/icu/icu-src/testdata/message2/README.txt
    trunk/Build/source/libs/icu/icu-src/testdata/message2/alias-selector-annotations.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/duplicate-declarations.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/icu-parser-tests.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/icu-test-functions.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/icu-test-previous-release.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/icu-test-selectors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/invalid-number-literals-diagnostics.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/invalid-options.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/markup.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/matches-whitespace.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/more-data-model-errors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/more-functions.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/resolution-errors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/runtime-errors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/data-model-errors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/date.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/datetime.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/integer.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/number.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/string.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/functions/time.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/syntax-errors.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/spec/syntax.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/syntax-errors-diagnostics-multiline.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/syntax-errors-diagnostics.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/syntax-errors-end-of-input.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/syntax-errors-reserved.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/tricky-declarations.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/unsupported-expressions.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/unsupported-statements.json
    trunk/Build/source/libs/icu/icu-src/testdata/message2/valid-tests.json

Removed Paths:
-------------
    trunk/Build/source/libs/icu/TLpatches/patch-01-configure-gcc
    trunk/Build/source/libs/icu/icu-src/source/data/in/icudt74l.dat
    trunk/Build/source/libs/icu/icu-src/source/samples/break/
    trunk/Build/source/libs/icu/icu-src/source/samples/cal/
    trunk/Build/source/libs/icu/icu-src/source/samples/case/
    trunk/Build/source/libs/icu/icu-src/source/samples/citer/
    trunk/Build/source/libs/icu/icu-src/source/samples/csdet/
    trunk/Build/source/libs/icu/icu-src/source/samples/date/
    trunk/Build/source/libs/icu/icu-src/source/samples/datecal/
    trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/
    trunk/Build/source/libs/icu/icu-src/source/samples/dtitvfmtsample/
    trunk/Build/source/libs/icu/icu-src/source/samples/dtptngsample/
    trunk/Build/source/libs/icu/icu-src/source/samples/layout/
    trunk/Build/source/libs/icu/icu-src/source/samples/legacy/
    trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/
    trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/
    trunk/Build/source/libs/icu/icu-src/source/samples/plurfmtsample/
    trunk/Build/source/libs/icu/icu-src/source/samples/props/
    trunk/Build/source/libs/icu/icu-src/source/samples/uciter8/
    trunk/Build/source/libs/icu/icu-src/source/samples/ucnv/
    trunk/Build/source/libs/icu/icu-src/source/samples/udata/
    trunk/Build/source/libs/icu/icu-src/source/samples/ufortune/
    trunk/Build/source/libs/icu/icu-src/source/samples/uresb/
    trunk/Build/source/libs/icu/icu-src/source/samples/ustring/
    trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usrchdat.c
    trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/letrperf.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperfold.cpp
    trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperfold.dsp
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/de_CH.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/en_AU.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/en_CA.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/en_GB.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/en_IN.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/es_419.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/es_MX.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/es_US.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/fr_CA.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/ha_NE.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/pt_PT.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sr_Cyrl_BA.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sr_Latn_BA.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/sw_KE.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/yo_BJ.txt
    trunk/Build/source/libs/icu/icu-src/source/test/testdata/cldr/personNameTest/zh_Hant_HK.txt

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/README	2024-10-27 22:03:54 UTC (rev 72681)
@@ -31,7 +31,7 @@
 harfbuzz 10.0.1 - checked 25sep24
   https://github.com/harfbuzz/harfbuzz/releases/latest
 
-icu 74.2 - checked 22dec23
+icu 76.1 - checked 27oct24 (requires C++17, e.g., g++13)
   https://github.com/unicode-org/icu/releases/
 
 libpaper 1.1.29 - checked 07jan24

Modified: trunk/Build/source/libs/icu/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/ChangeLog	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/TLpatches/ChangeLog	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,3 +1,10 @@
+2024-10-27  Karl Berry  <karl at freefriends.org>
+
+	Update for icu-72.1.
+	
+	* patch-01-configure-gcc: no longer needed, now their configure
+	checks for cc first, which should be ok.
+
 2023-12-22  Karl Berry  <karl at freefriends.org>
 
 	* Update for icu-74.2. No changes to patches.

Modified: trunk/Build/source/libs/icu/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/TL-Changes	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/TLpatches/TL-Changes	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,5 +1,5 @@
 Changes applied to the icu tree as obtained from:
-  github.com/unicode-org/icu/releases/download/release-74-2/icu4c-74_2-src.tgz
+  github.com/unicode-org/icu/releases/download/release-76-1/icu4c-76_1-src.tgz
 
 cd $Build/source/libs/icu       # for whatever $Build directory
 # update version.ac
@@ -30,9 +30,11 @@
 
 # autoreconf in the TL directory (Build/source/libs/icu); 
 # don't run autoreconf in the icu-src/source/ directory, it fails due to
-# missing pkg-config prerequisites. (Thus we patch configure, not just
-# configure.ac; not worth more effort for our small change of preferring gcc.)
+# missing pkg-config prerequisites.
 # 
+# For ICU 76, C++ 17 is required. To build on an older GNU/Linux, such
+# as tug.org, yum install gcc-toolset-13.
+# 
 # rebuild; must rerun configure (not just config.status),
 # so easiest is to just do a whole new build.
 # Besides, that also tests use of the new icu version by our programs.
@@ -40,7 +42,7 @@
 # Assuming all seems ok, reduce size of source/data/in/icudt*.dat
 # to decrease data segment size, e.g., for old BSD.  First, check
 # that we successfully built the full .dat:
-ver=74
+ver=76
 srcdat=$Build/source/libs/icu/icu-src/source/data/in/icudt${ver}l.dat 
 cd $Work/libs/icu/icu-build/data/out/build/icudt${ver}l
 indat=../../tmp/icudt${ver}l.dat
@@ -62,12 +64,11 @@
 ls -l $indat $srcdat # indat should be about 2/3 the size
 cp $indat $srcdat
 
-# check that nothing besides backup files is left, back in the srcdir:
+# check that nothing besides backup files and icu-prev is left; back in
+# the srcdir:
 cd $Build/source/libs/icu       # for whatever $Build directory
 svn status | grep -v '^[MAD]' | sort -k 2b
 
-# In 74.2, LICENSE became a (broken) symlink; revert to file.
-
 # if all is ok.
 # update icu/ChangeLog and icu/TLpatches/ChangeLog.
-# then commit.
+# then commit icu and libs/README.

Deleted: trunk/Build/source/libs/icu/TLpatches/patch-01-configure-gcc
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-01-configure-gcc	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/TLpatches/patch-01-configure-gcc	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,33 +0,0 @@
-	For TL, we do not want to prefer clang(++) for ICU
-	when the whole rest of the tree prefers gcc.
-
---- source/configure~	2023-12-11 14:27:41.000000000 -0800
-+++ source/configure	2023-12-22 09:03:59.452738354 -0800
-@@ -2925,5 +2925,5 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- if test -n "$ac_tool_prefix"; then
--  for ac_prog in clang gcc cc c99 c89 xlc_r xlc cl.exe icc
-+  for ac_prog in gcc cc clang c99 c89 xlc_r xlc cl.exe icc
-   do
-     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-@@ -2969,5 +2969,5 @@
- if test -z "$CC"; then
-   ac_ct_CC=$CC
--  for ac_prog in clang gcc cc c99 c89 xlc_r xlc cl.exe icc
-+  for ac_prog in gcc cc clang c99 c89 xlc_r xlc cl.exe icc
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
-@@ -3528,5 +3528,5 @@
-   else
-     if test -n "$ac_tool_prefix"; then
--  for ac_prog in clang++ g++ c++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC
-+  for ac_prog in g++ c++ clang++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC
-   do
-     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-@@ -3572,5 +3572,5 @@
- if test -z "$CXX"; then
-   ac_ct_CXX=$CXX
--  for ac_prog in clang++ g++ c++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC
-+  for ac_prog in g++ c++ clang++ gpp xlC_r xlC aCC CC cxx cc++ cl.exe icc FCC KCC RCC
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.

Modified: trunk/Build/source/libs/icu/TLpatches/patch-13-STATIC_PREFIX
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-13-STATIC_PREFIX	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/TLpatches/patch-13-STATIC_PREFIX	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,7 +1,7 @@
 	No `s' for STATIC_PREFIX.
 
---- source/config/Makefile.inc.in~	2023-12-11 14:27:41.000000000 -0800
-+++ source/config/Makefile.inc.in	2023-12-22 09:05:20.588268662 -0800
+--- source/config/Makefile.inc.in~	2024-10-24 11:24:00.000000000 -0700
++++ source/config/Makefile.inc.in	2024-10-27 14:32:34.140056410 -0700
 @@ -47,5 +47,5 @@
  
  # Static library prefix and file extension
@@ -9,19 +9,3 @@
 +STATIC_PREFIX =
  LIBSICU = lib$(STATIC_PREFIX)$(ICUPREFIX)
  A = a
---- source/icudefs.mk.in~	2023-12-11 14:27:41.000000000 -0800
-+++ source/icudefs.mk.in	2023-12-22 09:05:20.588268662 -0800
-@@ -214,5 +214,5 @@
- ## If we can't use the shared libraries, use the static libraries
- ifneq ($(ENABLE_SHARED),YES)
--STATIC_PREFIX_WHEN_USED = s
-+STATIC_PREFIX_WHEN_USED = 
- else
- STATIC_PREFIX_WHEN_USED = 
-@@ -220,5 +220,5 @@
- 
- # Static library prefix and file extension
--STATIC_PREFIX = s
-+STATIC_PREFIX = 
- LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
- A = a

Modified: trunk/Build/source/libs/icu/configure
===================================================================
--- trunk/Build/source/libs/icu/configure	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/configure	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for icu (TeX Live) 74.2.
+# Generated by GNU Autoconf 2.72 for icu (TeX Live) 76.1.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -603,8 +603,8 @@
 # Identity of this package.
 PACKAGE_NAME='icu (TeX Live)'
 PACKAGE_TARNAME='icu--tex-live-'
-PACKAGE_VERSION='74.2'
-PACKAGE_STRING='icu (TeX Live) 74.2'
+PACKAGE_VERSION='76.1'
+PACKAGE_STRING='icu (TeX Live) 76.1'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1328,7 +1328,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures icu (TeX Live) 74.2 to adapt to many kinds of systems.
+'configure' configures icu (TeX Live) 76.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1399,7 +1399,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of icu (TeX Live) 74.2:";;
+     short | recursive ) echo "Configuration of icu (TeX Live) 76.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1498,7 +1498,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-icu (TeX Live) configure 74.2
+icu (TeX Live) configure 76.1
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -1698,7 +1698,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by icu (TeX Live) $as_me 74.2, which was
+It was created by icu (TeX Live) $as_me 76.1, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4875,7 +4875,7 @@
 
 # Define the identity of the package.
  PACKAGE='icu--tex-live-'
- VERSION='74.2'
+ VERSION='76.1'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6393,7 +6393,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by icu (TeX Live) $as_me 74.2, which was
+This file was extended by icu (TeX Live) $as_me 76.1, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6452,7 +6452,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-icu (TeX Live) config.status 74.2
+icu (TeX Live) config.status 76.1
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/icu/icu-src/APIChangeReport.html
===================================================================
--- trunk/Build/source/libs/icu/icu-src/APIChangeReport.html	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/APIChangeReport.html	2024-10-27 22:03:54 UTC (rev 72681)
@@ -5,31 +5,31 @@
 	-->
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 73 with ICU 74</title>
+<title>ICU4C API Comparison: ICU 75 with ICU 76</title>
 <link type="text/css" href="icu4c.css" rel="stylesheet">
 </head>
 <body>
 <a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 73 with ICU 74</h1>
+<h1>ICU4C API Comparison: ICU 75 with ICU 76</h1>
 <div id="toc">
 <ul>
 <li>
-<a href="#removed">Removed from ICU 73</a>
+<a href="#removed">Removed from ICU 75</a>
 </li>
 <li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 74</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 76</a>
 </li>
 <li>
-<a href="#changed">Changed in  ICU 74</a>
+<a href="#changed">Changed in  ICU 76</a>
 </li>
 <li>
-<a href="#promoted">Promoted to stable in ICU 74</a>
+<a href="#promoted">Promoted to stable in ICU 76</a>
 </li>
 <li>
-<a href="#added">Added in ICU 74</a>
+<a href="#added">Added in ICU 76</a>
 </li>
 <li>
-<a href="#other">Other existing drafts in ICU 74</a>
+<a href="#other">Other existing drafts in ICU 76</a>
 </li>
 <li>
 <a href="#simplifications">Signature Simplifications</a>
@@ -38,959 +38,1122 @@
 <hr>
 </div>
 <a name="removed"></a>
-<h2>Removed from ICU 73</h2>
+<h2>Removed from ICU 75</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
 </tr>
 </THEAD>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 74</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<tr class="row1">
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::MFDataModel::Builder::addUnsupportedStatement(UnsupportedStatement&&, UErrorCode&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
-</THEAD>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="changed"></a>
-<h2>Changed in  ICU 74 (old, new)</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<tr class="row0">
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::Operator::Builder::setReserved(Reserved&&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder icu::DisplayOptions::copyToBuilder() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::Reserved::Builder::add(Literal&&, UErrorCode&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setCapitalization(UDisplayOptionsCapitalization)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::Reserved::Builder::operator=(Builder&&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setDisplayLength(UDisplayOptionsDisplayLength)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::Reserved::Builder::operator=(const Builder&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setGrammaticalCase(UDisplayOptionsGrammaticalCase)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::UnsupportedStatement::Builder::addExpression(Expression&&, UErrorCode&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setNameStyle(UDisplayOptionsNameStyle)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::UnsupportedStatement::Builder::operator=(Builder&&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setNounClass(UDisplayOptionsNounClass)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::UnsupportedStatement::Builder::operator=(const Builder&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setPluralCategory(UDisplayOptionsPluralCategory)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::UnsupportedStatement::Builder::setBody(Reserved&&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setSubstituteHandling(UDisplayOptionsSubstituteHandling)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Builder& icu::message2::data_model::UnsupportedStatement::Builder::setKeyword(const UnicodeString&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions icu::DisplayOptions::Builder::build()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Reserved icu::message2::data_model::Reserved::Builder::build(UErrorCode&) const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions& icu::DisplayOptions::operator=(DisplayOptions&&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">Reserved& icu::message2::data_model::Reserved::operator=(Reserved)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions& icu::DisplayOptions::operator=(const DisplayOptions&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">UnsupportedStatement icu::message2::data_model::UnsupportedStatement::Builder::build(UErrorCode&) const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsCapitalization icu::DisplayOptions::getCapitalization() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">UnsupportedStatement& icu::message2::data_model::UnsupportedStatement::operator=(UnsupportedStatement)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsDisplayLength icu::DisplayOptions::getDisplayLength() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">bool icu::message2::data_model::Expression::isReserved() const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsGrammaticalCase icu::DisplayOptions::getGrammaticalCase() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">const Literal& icu::message2::data_model::Reserved::getPart(int32_t) const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsNameStyle icu::DisplayOptions::getNameStyle() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">const Reserved* icu::message2::data_model::UnsupportedStatement::getBody(UErrorCode&) const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsNounClass icu::DisplayOptions::getNounClass() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">const UnicodeString & icu::message2::data_model::UnsupportedStatement::getKeyword() const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsPluralCategory icu::DisplayOptions::getPluralCategory() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Builder::Builder(Builder&&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsSubstituteHandling icu::DisplayOptions::getSubstituteHandling() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Builder::Builder(UErrorCode&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">icu::DisplayOptions::DisplayOptions(const DisplayOptions&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Builder::Builder(const Builder&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto"><tt>static</tt> Builder icu::DisplayOptions::builder()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Builder::~Builder()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">formattednumber.h</td><td class="proto">UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Reserved()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::Reserved(const Reserved&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::Reserved::~Reserved()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::Builder::Builder(Builder&&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::Builder::Builder(UErrorCode&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&) const&</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::Builder::Builder(const Builder&)=delete</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&)&&</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::Builder::~Builder()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::UnsupportedStatement()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::UnsupportedStatement(const UnsupportedStatement&)</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">icu::message2::data_model::UnsupportedStatement::~UnsupportedStatement()</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">int32_t icu::message2::data_model::Reserved::numParts() const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2_data_model.h</td><td class="proto">std::vector< Expression > icu::message2::data_model::UnsupportedStatement::getExpressions() const</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::truncateStart(uint32_t, UErrorCode&)</td><td class="">Deprecated<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const char16_t*)</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*)</td><td class="stabchange">Stable<br>ICU 59</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*)</td><td class="stabchange">Stable<br>ICU 59</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=(int32_t))</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=(int32_t))</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_truncateStart(USimpleNumber*, int32_t, UErrorCode*)</td><td class="">Deprecated<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_MF_UNSUPPORTED_EXPRESSION_ERROR</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_MF_UNSUPPORTED_STATEMENT_ERROR</td><td class="">Internal<br>ICU 75</td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="deprecated"></a>
+<h2>Deprecated or Obsoleted in ICU 76</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
+</tr>
+</THEAD>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="changed"></a>
+<h2>Changed in  ICU 76 (old, new)</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
+</tr>
+</THEAD>
+<tr class="row1">
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measure.h</td><td class="proto">bool icu::Measure::operator!=(const UObject&) const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">normalizer2.h</td><td class="proto"><tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">timezone.h</td><td class="proto"><tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ucal.h</td><td class="proto">int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">bool ulocale_isBogus(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getBaseName(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLanguage(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLocaleID(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getRegion(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getScript(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getVariant(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">void ulocale_close(ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">ULocaleBuilder* ulocbld_open()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clear(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clearExtensions(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_close(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto">bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
+<tr class="row0">
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row1">
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row0">
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row1">
+<td class="file">unorm2.h</td><td class="proto">const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row0">
+<td class="file">uspoof.h</td><td class="proto">icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row1">
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row0">
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row1">
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row0">
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
+<tr class="row1">
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
+</tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="promoted"></a>
-<h2>Promoted to stable in ICU 74</h2>
+<h2>Promoted to stable in ICU 76</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder icu::DisplayOptions::copyToBuilder() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setCapitalization(UDisplayOptionsCapitalization)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setDisplayLength(UDisplayOptionsDisplayLength)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measure.h</td><td class="proto">bool icu::Measure::operator!=(const UObject&) const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setGrammaticalCase(UDisplayOptionsGrammaticalCase)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">normalizer2.h</td><td class="proto"><tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setNameStyle(UDisplayOptionsNameStyle)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">timezone.h</td><td class="proto"><tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setNounClass(UDisplayOptionsNounClass)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ucal.h</td><td class="proto">int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setPluralCategory(UDisplayOptionsPluralCategory)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">Builder& icu::DisplayOptions::Builder::setSubstituteHandling(UDisplayOptionsSubstituteHandling)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GARAY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions icu::DisplayOptions::Builder::build()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GURUNG_KHEMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions& icu::DisplayOptions::operator=(DisplayOptions&&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KIRAT_RAI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">DisplayOptions& icu::DisplayOptions::operator=(const DisplayOptions&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MYANMAR_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsCapitalization icu::DisplayOptions::getCapitalization() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OL_ONAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsDisplayLength icu::DisplayOptions::getDisplayLength() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SUNUWAR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsGrammaticalCase icu::DisplayOptions::getGrammaticalCase() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsNameStyle icu::DisplayOptions::getNameStyle() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TODHRI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsNounClass icu::DisplayOptions::getNounClass() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TULU_TIGALARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsPluralCategory icu::DisplayOptions::getPluralCategory() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REORDERING_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto">UDisplayOptionsSubstituteHandling icu::DisplayOptions::getSubstituteHandling() const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_KASHMIRI_YEH</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">displayoptions.h</td><td class="proto">icu::DisplayOptions::DisplayOptions(const DisplayOptions&)=default</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">displayoptions.h</td><td class="proto"><tt>static</tt> Builder icu::DisplayOptions::builder()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">formattednumber.h</td><td class="proto">UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&) const&</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">bool ulocale_isBogus(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&)&&</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getBaseName(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLanguage(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA_PREBASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLocaleID(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA_START</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getRegion(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getScript(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_VIRAMA_FINAL</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getVariant(const ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocale.h</td><td class="proto">void ulocale_close(ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">ULocaleBuilder* ulocbld_open()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto">const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clear(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clearExtensions(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_close(ULocaleBuilder*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=static_cast< int32_t >(INT32_MAX))</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=static_cast< int32_t >(INT32_MAX))</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">unorm2.h</td><td class="proto">const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GARAY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GURUNG_KHEMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_KIRAT_RAI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OL_ONAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SUNUWAR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_TODHRI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_TULU_TIGALARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 74</td>
 </tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="added"></a>
+<h2>Added in ICU 76</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
+</tr>
+</THEAD>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::equal_to() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::greater() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::greater_equal() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::less() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::less_equal() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">coll.h</td><td class="proto">auto icu::Collator::not_equal_to() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getLightSpeed()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getNight()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createLightSpeed(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createNight(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2.h</td><td class="proto">Builder& icu::message2::MessageFormatter::Builder::setErrorHandlingBehavior(UMFErrorHandlingBehavior)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2.h</td><td class="proto"><tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior {}</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2.h</td><td class="proto"><tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior::U_MF_BEST_EFFORT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">udisplayoptions.h</td><td class="proto"><tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">messageformat2.h</td><td class="proto"><tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior::U_MF_STRICT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto">bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 72</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_PF_HAIKU</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="added"></a>
-<h2>Added in ICU 74</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<tr class="row0">
+<td class="file">stringpiece.h</td><td class="proto">icu::StringPiece::operator std::string_view() const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GARAY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">measure.h</td><td class="proto">bool icu::Measure::operator!=(const UObject&) const</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GURUNG_KHEMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto"><tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KIRAT_RAI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">rbbi.h</td><td class="proto">bool icu::ExternalBreakEngine::handles(UChar32) const</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MYANMAR_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">rbbi.h</td><td class="proto">bool icu::ExternalBreakEngine::isFor(UChar32, const char*) const</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OL_ONAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">rbbi.h</td><td class="proto">icu::ExternalBreakEngine::~ExternalBreakEngine()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SUNUWAR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">rbbi.h</td><td class="proto">int32_t icu::ExternalBreakEngine::fillBreaks(UText*, int32_t, int32_t, int32_t*, int32_t, UErrorCode&) const</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">rbbi.h</td><td class="proto"><tt>static</tt> void icu::RuleBasedBreakIterator::registerExternalBreakEngine(ExternalBreakEngine*, UErrorCode&)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TODHRI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">timezone.h</td><td class="proto"><tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TULU_TIGALARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ucal.h</td><td class="proto">int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicConjunctBreak::U_INCB_CONSONANT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicConjunctBreak::U_INCB_EXTEND</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA_PREBASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicConjunctBreak::U_INCB_LINKER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA_START</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicConjunctBreak::U_INCB_NONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_AKSARA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REORDERING_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_VIRAMA_FINAL</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_KASHMIRI_YEH</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 74</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 74.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_CONJUNCT_BREAK</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_MODIFIER_COMBINING_MARK</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">ucol.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::Predicate(const UCollator*)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">ucol.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::operator()(const T&, const U&) const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">ucol.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::operator()(std::string_view, std::string_view) const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uniset.h</td><td class="proto">U_HEADER_NESTED_NAMESPACE::USetCodePoints icu::UnicodeSet::codePoints() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uniset.h</td><td class="proto">U_HEADER_NESTED_NAMESPACE::USetElementIterator icu::UnicodeSet::begin() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uniset.h</td><td class="proto">U_HEADER_NESTED_NAMESPACE::USetElementIterator icu::UnicodeSet::end() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">bool ulocale_isBogus(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uniset.h</td><td class="proto">U_HEADER_NESTED_NAMESPACE::USetRanges icu::UnicodeSet::ranges() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getBaseName(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uniset.h</td><td class="proto">U_HEADER_NESTED_NAMESPACE::USetStrings icu::UnicodeSet::strings() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLanguage(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const S&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getLocaleID(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::append(const S&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getRegion(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::operator+=(const S&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getScript(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::operator=(const S&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">const char* ulocale_getVariant(const ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=static_cast< int32_t >(INT32_MAX))</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=static_cast< int32_t >(INT32_MAX))</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocale.h</td><td class="proto">int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">bool icu::UnicodeString::operator!=(const S&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocale.h</td><td class="proto">void ulocale_close(ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">bool icu::UnicodeString::operator==(const S&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::operator std::u16string_view() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">ULocaleBuilder* ulocbld_open()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::operator std::wstring_view() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::readOnlyAlias(const S&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::readOnlyAlias(const UnicodeString&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GARAY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GURUNG_KHEMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_KIRAT_RAI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clear(ULocaleBuilder*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OL_ONAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_clearExtensions(ULocaleBuilder*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SUNUWAR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_close(ULocaleBuilder*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_TODHRI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_TULU_TIGALARI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 76</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in ICU 76.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">CodePointRange U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator* () const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetCodePointIterator & U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator++()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator++(int)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePoints::begin() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePoints::end() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetElementIterator & U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator++()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator++(int)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">ulocbuilder.h</td><td class="proto">void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElements::begin() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unorm2.h</td><td class="proto">const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElements::end() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetRangeIterator & U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator++()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator++(int)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRanges::begin() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRanges::end() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetStringIterator & U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator++()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 74</span></span></td>
+<td class="file">uset.h</td><td class="proto">USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator++(int)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="other"></a>
-<h2>Other existing drafts in ICU 74</h2>
-<div class="other">
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 73</th><th>ICU 74</th>
+<tr class="row1">
+<td class="file">uset.h</td><td class="proto">USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStrings::begin() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
-</THEAD>
+<tr class="row0">
+<td class="file">uset.h</td><td class="proto">USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStrings::end() const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
+</tr>
 <tr class="row1">
-<td class="file">calendar.h</td><td class="proto">bool icu::Calendar::inTemporalLeapYear(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::USetCodePointIterator(const USetCodePointIterator&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">calendar.h</td><td class="proto">const char* icu::Calendar::getTemporalMonthCode(UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetCodePoints::USetCodePoints(const USet*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">calendar.h</td><td class="proto">void icu::Calendar::setTemporalMonthCode(const char*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetCodePoints::USetCodePoints(const USetCodePoints&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&, Formattable&, ParsePosition&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetElementIterator::USetElementIterator(const USetElementIterator&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit icu::MeasureUnit::getBeaufort()</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetElements::USetElements(const USet*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createBeaufort(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetElements::USetElements(const USetElements&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfCeiling</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetRangeIterator::USetRangeIterator(const USetRangeIterator&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfFloor</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetRanges::USetRanges(const USet*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfOdd</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetRanges::USetRanges(const USetRanges&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">FormattedNumber icu::number::SimpleNumberFormatter::format(SimpleNumber, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetStringIterator::USetStringIterator(const USetStringIterator&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">FormattedNumber icu::number::SimpleNumberFormatter::formatInt64(int64_t, UErrorCode&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetStrings::USetStrings(const USet*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">SimpleNumber& icu::number::SimpleNumber::operator=(SimpleNumber&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">U_HEADER_ONLY_NAMESPACE::USetStrings::USetStrings(const USetStrings&)=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">SimpleNumberFormatter& icu::number::SimpleNumberFormatter::operator=(SimpleNumberFormatter&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">UnicodeString U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator* () const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumber::SimpleNumber()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator!=(const USetCodePointIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumber::SimpleNumber(SimpleNumber&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator==(const USetCodePointIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumber::~SimpleNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator!=(const USetElementIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumberFormatter::SimpleNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator==(const USetElementIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumberFormatter::SimpleNumberFormatter(SimpleNumberFormatter&&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator!=(const USetRangeIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">icu::number::SimpleNumberFormatter::~SimpleNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator==(const USetRangeIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto"><tt>static</tt> SimpleNumber icu::number::SimpleNumber::forInt64(int64_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator!=(const USetStringIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto"><tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocale(const icu::Locale&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">bool U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator==(const USetStringIterator&) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto"><tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocaleAndGroupingStrategy(const icu::Locale&, UNumberGroupingStrategy, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">UChar32 U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator* () const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto"><tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocaleAndSymbolsAndGroupingStrategy(const icu::Locale&, const DecimalFormatSymbols&, UNumberGroupingStrategy, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">const UChar* uset_getString(const USet*, int32_t, int32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::multiplyByPowerOfTen(int32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">int32_t uset_getStringCount(const USet*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::roundTo(int32_t, UNumberFormatRoundingMode, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uset.h</td><td class="proto">std::u16string_view U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator* () const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::setMinimumFractionDigits(uint32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_SHOW_CPLUSPLUS_HEADER_API</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::setMinimumIntegerDigits(uint32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_MF_DUPLICATE_VARIANT_ERROR</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 76</span></span></td>
 </tr>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="other"></a>
+<h2>Other existing drafts in ICU 76</h2>
+<div class="other">
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 75</th><th>ICU 76</th>
+</tr>
+</THEAD>
+<tr class="row1">
+<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&, Formattable&, ParsePosition&) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+</tr>
 <tr class="row0">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::setSign(USimpleNumberSign, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter icu::number::LocalizedNumberFormatter::withoutLocale() &&</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::truncateStart(uint32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter icu::number::LocalizedNumberFormatter::withoutLocale() const &</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UCalendarDateFields::UCAL_ORDINAL_MONTH</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter icu::number::LocalizedNumberRangeFormatter::withoutLocale() &&</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter icu::number::LocalizedNumberRangeFormatter::withoutLocale() const &</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">uset.h</td><td class="proto"><tt>enum</tt> (anonymous)::USET_SIMPLE_CASE_INSENSITIVE</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">simplenumberformatter.h</td><td class="proto">void icu::number::SimpleNumber::setMaximumIntegerDigits(uint32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">USimpleNumber* usnum_openForInt64(int64_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto">bool u_hasIDType(UChar32, UIdentifierType)</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">USimpleNumberFormatter* usnumf_openForLocale(const char*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierStatus::U_ID_STATUS_ALLOWED</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">USimpleNumberFormatter* usnumf_openForLocaleAndGroupingStrategy(const char*, UNumberGroupingStrategy, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierStatus::U_ID_STATUS_RESTRICTED</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto"><tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_MINUS_SIGN</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_DEFAULT_IGNORABLE</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto"><tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_NO_SIGN</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_DEPRECATED</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto"><tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_PLUS_SIGN</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_EXCLUSION</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_close(USimpleNumber*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_INCLUSION</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_multiplyByPowerOfTen(USimpleNumber*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_LIMITED_USE</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_roundTo(USimpleNumber*, int32_t, UNumberFormatRoundingMode, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_CHARACTER</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_setMinimumFractionDigits(USimpleNumber*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_NFKC</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_setMinimumIntegerDigits(USimpleNumber*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_XID</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_setSign(USimpleNumber*, USimpleNumberSign, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_OBSOLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_setToInt64(USimpleNumber*, int64_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_RECOMMENDED</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_truncateStart(USimpleNumber*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_TECHNICAL</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnumf_close(USimpleNumberFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIdentifierType::U_ID_TYPE_UNCOMMON_USE</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row0">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnumf_format(const USimpleNumberFormatter*, USimpleNumber*, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_IDENTIFIER_STATUS</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
 <tr class="row1">
-<td class="file">usimplenumberformatter.h</td><td class="proto">void usnumf_formatInt64(const USimpleNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 73</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_IDENTIFIER_TYPE</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
 </tr>
+<tr class="row0">
+<td class="file">uchar.h</td><td class="proto">int32_t u_getIDTypes(UChar32, UIdentifierType*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
+</tr>
+<tr class="row1">
+<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+</tr>
+<tr class="row0">
+<td class="file">usimplenumberformatter.h</td><td class="proto">void usnum_setMaximumIntegerDigits(USimpleNumber*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 75</td>
+</tr>
 </table>
 </div>
 <P></P>
@@ -1007,7 +1170,7 @@
 <a href="#_top">(jump back to top)</a>
 <hr>
 <p>
-<i><font size="-1">Contents generated by StableAPI tool on Mon Oct 02 17:50:42 PDT 2023<br>
+<i><font size="-1">Contents generated by StableAPI tool on Mon Sep 30 11:33:51 PDT 2024<br>
         Copyright © 2017 and later: Unicode, Inc. and others.<br>
         License & terms of use: http://www.unicode.org/copyright.html
     </font></i>

Modified: trunk/Build/source/libs/icu/icu-src/APIChangeReport.md
===================================================================
--- trunk/Build/source/libs/icu/icu-src/APIChangeReport.md	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/APIChangeReport.md	2024-10-27 22:03:54 UTC (rev 72681)
@@ -5,334 +5,349 @@
  License & terms of use: http://www.unicode.org/copyright.html
 -->
 
-# ICU4C API Comparison: ICU 73 with ICU 74
+# ICU4C API Comparison: ICU 75 with ICU 76
 
 > _Note_ Markdown format of this document is new for ICU 65.
 
-- [Removed from ICU 73](#removed)
-- [Deprecated or Obsoleted in ICU 74](#deprecated)
-- [Changed in  ICU 74](#changed)
-- [Promoted to stable in ICU 74](#promoted)
-- [Added in ICU 74](#added)
-- [Other existing drafts in ICU 74](#other)
+- [Removed from ICU 75](#removed)
+- [Deprecated or Obsoleted in ICU 76](#deprecated)
+- [Changed in  ICU 76](#changed)
+- [Promoted to stable in ICU 76](#promoted)
+- [Added in ICU 76](#added)
+- [Other existing drafts in ICU 76](#other)
 - [Signature Simplifications](#simplifications)
 
 ## Removed
 
-Removed from ICU 73
+Removed from ICU 75
   
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
+| messageformat2_data_model.h | Builder& icu::message2::MFDataModel::Builder::addUnsupportedStatement(UnsupportedStatement&&, UErrorCode&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::Operator::Builder::setReserved(Reserved&&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::Reserved::Builder::add(Literal&&, UErrorCode&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::Reserved::Builder::operator=(Builder&&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::Reserved::Builder::operator=(const Builder&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::UnsupportedStatement::Builder::addExpression(Expression&&, UErrorCode&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::UnsupportedStatement::Builder::operator=(Builder&&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::UnsupportedStatement::Builder::operator=(const Builder&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::UnsupportedStatement::Builder::setBody(Reserved&&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Builder& icu::message2::data_model::UnsupportedStatement::Builder::setKeyword(const UnicodeString&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Reserved icu::message2::data_model::Reserved::Builder::build(UErrorCode&) const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | Reserved& icu::message2::data_model::Reserved::operator=(Reserved) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | UnsupportedStatement icu::message2::data_model::UnsupportedStatement::Builder::build(UErrorCode&) const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | UnsupportedStatement& icu::message2::data_model::UnsupportedStatement::operator=(UnsupportedStatement) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | bool icu::message2::data_model::Expression::isReserved() const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | const Literal& icu::message2::data_model::Reserved::getPart(int32_t) const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | const Reserved* icu::message2::data_model::UnsupportedStatement::getBody(UErrorCode&) const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | const UnicodeString & icu::message2::data_model::UnsupportedStatement::getKeyword() const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Builder::Builder(Builder&&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Builder::Builder(UErrorCode&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Builder::Builder(const Builder&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Builder::~Builder() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Reserved() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::Reserved(const Reserved&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::Reserved::~Reserved() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::Builder::Builder(Builder&&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::Builder::Builder(UErrorCode&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::Builder::Builder(const Builder&)=delete |   _untagged _  | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::Builder::~Builder() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::UnsupportedStatement() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::UnsupportedStatement(const UnsupportedStatement&) |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | icu::message2::data_model::UnsupportedStatement::~UnsupportedStatement() |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | int32_t icu::message2::data_model::Reserved::numParts() const |  InternalICU 75 | (missing)
+| messageformat2_data_model.h | std::vector< Expression > icu::message2::data_model::UnsupportedStatement::getExpressions() const |  InternalICU 75 | (missing)
+| simplenumberformatter.h | void icu::number::SimpleNumber::truncateStart(uint32_t, UErrorCode&) |  DeprecatedICU 75 | (missing)
+| unistr.h | UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const char16_t*) |  StableICU 2.0 | (missing)
+| unistr.h | UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*) |  StableICU 59 | (missing)
+| unistr.h | UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*) |  StableICU 59 | (missing)
+| unistr.h | UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=(int32_t)) |  StableICU 2.0 | (missing)
+| unistr.h | UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=(int32_t)) |  StableICU 2.0 | (missing)
+| usimplenumberformatter.h | void usnum_truncateStart(USimpleNumber*, int32_t, UErrorCode*) |  DeprecatedICU 75 | (missing)
+| utypes.h | <tt>enum</tt> UErrorCode::U_MF_UNSUPPORTED_EXPRESSION_ERROR |  InternalICU 75 | (missing)
+| utypes.h | <tt>enum</tt> UErrorCode::U_MF_UNSUPPORTED_STATEMENT_ERROR |  InternalICU 75 | (missing)
 
 ## Deprecated
 
-Deprecated or Obsoleted in ICU 74
+Deprecated or Obsoleted in ICU 76
   
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
 
 ## Changed
 
-Changed in  ICU 74 (old, new)
+Changed in  ICU 76 (old, new)
 
 
   
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
-| displayoptions.h | Builder icu::DisplayOptions::copyToBuilder() const |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setCapitalization(UDisplayOptionsCapitalization) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setDisplayLength(UDisplayOptionsDisplayLength) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setGrammaticalCase(UDisplayOptionsGrammaticalCase) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setNameStyle(UDisplayOptionsNameStyle) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setNounClass(UDisplayOptionsNounClass) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setPluralCategory(UDisplayOptionsPluralCategory) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setSubstituteHandling(UDisplayOptionsSubstituteHandling) |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions icu::DisplayOptions::Builder::build() |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions& icu::DisplayOptions::operator=(DisplayOptions&&)=default |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions& icu::DisplayOptions::operator=(const DisplayOptions&)=default |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsCapitalization icu::DisplayOptions::getCapitalization() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsDisplayLength icu::DisplayOptions::getDisplayLength() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsGrammaticalCase icu::DisplayOptions::getGrammaticalCase() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsNameStyle icu::DisplayOptions::getNameStyle() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsNounClass icu::DisplayOptions::getNounClass() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsPluralCategory icu::DisplayOptions::getPluralCategory() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsSubstituteHandling icu::DisplayOptions::getSubstituteHandling() const |  Draft→StableICU 72
-| displayoptions.h | icu::DisplayOptions::DisplayOptions(const DisplayOptions&)=default |  Draft→StableICU 72
-| displayoptions.h | <tt>static</tt> Builder icu::DisplayOptions::builder() |  Draft→StableICU 72
-| formattednumber.h | UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&) const |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter() |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne() |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&) |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&) |  Draft→StableICU 72
-| numberformatter.h | Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&) const& |  Draft→StableICU 72
-| numberformatter.h | Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&)&& |  Draft→StableICU 72
-| udisplayoptions.h | UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory) |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED |  Draft→StableICU 72
-| unum.h | bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute) |  Draft→StableICU 72
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity() |  Draft→StableICU 74
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&) |  Draft→StableICU 74
+| measure.h | bool icu::Measure::operator!=(const UObject&) const |  Draft→StableICU 74
+| normalizer2.h | <tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&) |  Draft→StableICU 74
+| timezone.h | <tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&) |  Draft→StableICU 74
+| ucal.h | int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START |  Draft→StableICU 74
+| ulocale.h | UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | bool ulocale_isBogus(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getBaseName(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getLanguage(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getLocaleID(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getRegion(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getScript(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getVariant(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | void ulocale_close(ULocale*) |  Draft→StableICU 74
+| ulocbuilder.h | ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | ULocaleBuilder* ulocbld_open() |  Draft→StableICU 74
+| ulocbuilder.h | bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_clear(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_clearExtensions(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_close(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| unorm2.h | const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*) |  Draft→StableICU 74
 
 ## Promoted
 
-Promoted to stable in ICU 74
+Promoted to stable in ICU 76
   
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
-| displayoptions.h | Builder icu::DisplayOptions::copyToBuilder() const |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setCapitalization(UDisplayOptionsCapitalization) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setDisplayLength(UDisplayOptionsDisplayLength) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setGrammaticalCase(UDisplayOptionsGrammaticalCase) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setNameStyle(UDisplayOptionsNameStyle) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setNounClass(UDisplayOptionsNounClass) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setPluralCategory(UDisplayOptionsPluralCategory) |  Draft→StableICU 72
-| displayoptions.h | Builder& icu::DisplayOptions::Builder::setSubstituteHandling(UDisplayOptionsSubstituteHandling) |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions icu::DisplayOptions::Builder::build() |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions& icu::DisplayOptions::operator=(DisplayOptions&&)=default |  Draft→StableICU 72
-| displayoptions.h | DisplayOptions& icu::DisplayOptions::operator=(const DisplayOptions&)=default |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsCapitalization icu::DisplayOptions::getCapitalization() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsDisplayLength icu::DisplayOptions::getDisplayLength() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsGrammaticalCase icu::DisplayOptions::getGrammaticalCase() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsNameStyle icu::DisplayOptions::getNameStyle() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsNounClass icu::DisplayOptions::getNounClass() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsPluralCategory icu::DisplayOptions::getPluralCategory() const |  Draft→StableICU 72
-| displayoptions.h | UDisplayOptionsSubstituteHandling icu::DisplayOptions::getSubstituteHandling() const |  Draft→StableICU 72
-| displayoptions.h | icu::DisplayOptions::DisplayOptions(const DisplayOptions&)=default |  Draft→StableICU 72
-| displayoptions.h | <tt>static</tt> Builder icu::DisplayOptions::builder() |  Draft→StableICU 72
-| formattednumber.h | UDisplayOptionsNounClass icu::number::FormattedNumber::getNounClass(UErrorCode&) const |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getQuarter() |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getTonne() |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createQuarter(UErrorCode&) |  Draft→StableICU 72
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createTonne(UErrorCode&) |  Draft→StableICU 72
-| numberformatter.h | Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&) const& |  Draft→StableICU 72
-| numberformatter.h | Derived icu::number::NumberFormatterSettings< Derived >::displayOptions(const DisplayOptions&)&& |  Draft→StableICU 72
-| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA_PREBASE |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA_START |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_VIRAMA_FINAL |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_VIRAMA |  (missing) | StableICU 74| *(Born Stable)* |
-| udisplayoptions.h | UDisplayOptionsGrammaticalCase udispopt_fromGrammaticalCaseIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | UDisplayOptionsNounClass udispopt_fromNounClassIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | UDisplayOptionsPluralCategory udispopt_fromPluralCategoryIdentifier(const char*) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getGrammaticalCaseIdentifier(UDisplayOptionsGrammaticalCase) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getNounClassIdentifier(UDisplayOptionsNounClass) |  Draft→StableICU 72
-| udisplayoptions.h | const char* udispopt_getPluralCategoryIdentifier(UDisplayOptionsPluralCategory) |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_BEGINNING_OF_SENTENCE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_MIDDLE_OF_SENTENCE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_STANDALONE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UI_LIST_OR_MENU |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsCapitalization::UDISPOPT_CAPITALIZATION_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_FULL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_SHORT |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsDisplayLength::UDISPOPT_DISPLAY_LENGTH_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ABLATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ACCUSATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_COMITATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_DATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_ERGATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_GENITIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_INSTRUMENTAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE_COPULATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_LOCATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_NOMINATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_OBLIQUE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_PREPOSITIONAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_SOCIATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsGrammaticalCase::UDISPOPT_GRAMMATICAL_CASE_VOCATIVE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_DIALECT_NAMES |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_STANDARD_NAMES |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNameStyle::UDISPOPT_NAME_STYLE_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_ANIMATE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_COMMON |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_FEMININE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_INANIMATE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_MASCULINE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_NEUTER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_OTHER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_PERSONAL |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsNounClass::UDISPOPT_NOUN_CLASS_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_FEW |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_MANY |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ONE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_OTHER |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_TWO |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_UNDEFINED |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsPluralCategory::UDISPOPT_PLURAL_CATEGORY_ZERO |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_NO_SUBSTITUTE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_SUBSTITUTE |  Draft→StableICU 72
-| udisplayoptions.h | <tt>enum</tt> UDisplayOptionsSubstituteHandling::UDISPOPT_SUBSTITUTE_HANDLING_UNDEFINED |  Draft→StableICU 72
-| unum.h | bool unum_hasAttribute(const UNumberFormat*, UNumberFormatAttribute) |  Draft→StableICU 72
+| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity() |  Draft→StableICU 74
+| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&) |  Draft→StableICU 74
+| measure.h | bool icu::Measure::operator!=(const UObject&) const |  Draft→StableICU 74
+| normalizer2.h | <tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&) |  Draft→StableICU 74
+| timezone.h | <tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&) |  Draft→StableICU 74
+| ucal.h | int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_GARAY |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_GURUNG_KHEMA |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KIRAT_RAI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_MYANMAR_EXTENDED_C |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_OL_ONAL |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_SUNUWAR |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_TODHRI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_TULU_TIGALARI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UIndicSyllabicCategory::U_INSC_REORDERING_KILLER |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UJoiningGroup::U_JG_KASHMIRI_YEH |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE |  Draft→StableICU 74
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START |  Draft→StableICU 74
+| ulocale.h | UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | bool ulocale_isBogus(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getBaseName(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getLanguage(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getLocaleID(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getRegion(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getScript(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | const char* ulocale_getVariant(const ULocale*) |  Draft→StableICU 74
+| ulocale.h | int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocale.h | void ulocale_close(ULocale*) |  Draft→StableICU 74
+| ulocbuilder.h | ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | ULocaleBuilder* ulocbld_open() |  Draft→StableICU 74
+| ulocbuilder.h | bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_clear(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_clearExtensions(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_close(ULocaleBuilder*) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t) |  Draft→StableICU 74
+| ulocbuilder.h | void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t) |  Draft→StableICU 74
+| unistr.h | UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=static_cast< int32_t >(INT32_MAX)) |  (missing) | StableICU 2.0
+| unistr.h | UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=static_cast< int32_t >(INT32_MAX)) |  (missing) | StableICU 2.0
+| unorm2.h | const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*) |  Draft→StableICU 74
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_GARAY |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_GURUNG_KHEMA |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_KIRAT_RAI |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_OL_ONAL |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_SUNUWAR |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_TODHRI |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_TULU_TIGALARI |  (missing) | StableICU 76| *(Born Stable)* |
+| uspoof.h | icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*) |  Draft→StableICU 74
+| uspoof.h | uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*) |  Draft→StableICU 74
 
 ## Added
 
-Added in ICU 74
+Added in ICU 76
   
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
-| measunit.h | <tt>static</tt> MeasureUnit icu::MeasureUnit::getGasolineEnergyDensity() |  (missing) | DraftICU 74
-| measunit.h | <tt>static</tt> MeasureUnit* icu::MeasureUnit::createGasolineEnergyDensity(UErrorCode&) |  (missing) | DraftICU 74
-| measure.h | bool icu::Measure::operator!=(const UObject&) const |  (missing) | DraftICU 74
-| normalizer2.h | <tt>static</tt> const Normalizer2* icu::Normalizer2::getNFKCSimpleCasefoldInstance(UErrorCode&) |  (missing) | DraftICU 74
-| rbbi.h | bool icu::ExternalBreakEngine::handles(UChar32) const |  (missing) | InternalICU 74
-| rbbi.h | bool icu::ExternalBreakEngine::isFor(UChar32, const char*) const |  (missing) | InternalICU 74
-| rbbi.h | icu::ExternalBreakEngine::~ExternalBreakEngine() |  (missing) | InternalICU 74
-| rbbi.h | int32_t icu::ExternalBreakEngine::fillBreaks(UText*, int32_t, int32_t, int32_t*, int32_t, UErrorCode&) const |  (missing) | InternalICU 74
-| rbbi.h | <tt>static</tt> void icu::RuleBasedBreakIterator::registerExternalBreakEngine(ExternalBreakEngine*, UErrorCode&) |  (missing) | InternalICU 74
-| timezone.h | <tt>static</tt> UnicodeString& icu::TimeZone::getIanaID(const UnicodeString&, UnicodeString&, UErrorCode&) |  (missing) | DraftICU 74
-| ucal.h | int32_t ucal_getIanaTimeZoneID(const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA_PREBASE |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA_START |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_AKSARA |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_VIRAMA_FINAL |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> ULineBreak::U_LB_VIRAMA |  (missing) | StableICU 74| *(Born Stable)* |
-| uchar.h | <tt>enum</tt> UProperty::UCHAR_IDS_UNARY_OPERATOR |  (missing) | DraftICU 74
-| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_CONTINUE |  (missing) | DraftICU 74
-| uchar.h | <tt>enum</tt> UProperty::UCHAR_ID_COMPAT_MATH_START |  (missing) | DraftICU 74
-| ulocale.h | UEnumeration* ulocale_getKeywords(const ULocale*, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | UEnumeration* ulocale_getUnicodeKeywords(const ULocale*, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | ULocale* ulocale_openForLanguageTag(const char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | ULocale* ulocale_openForLocaleID(const char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | bool ulocale_isBogus(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getBaseName(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getLanguage(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getLocaleID(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getRegion(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getScript(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | const char* ulocale_getVariant(const ULocale*) |  (missing) | DraftICU 74
-| ulocale.h | int32_t ulocale_getKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | int32_t ulocale_getUnicodeKeywordValue(const ULocale*, const char*, int32_t, char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocale.h | void ulocale_close(ULocale*) |  (missing) | DraftICU 74
-| ulocbuilder.h | ULocale* ulocbld_buildULocale(ULocaleBuilder*, UErrorCode*) |  (missing) | DraftICU 74
-| ulocbuilder.h | ULocaleBuilder* ulocbld_open() |  (missing) | DraftICU 74
-| ulocbuilder.h | bool ulocbld_copyErrorTo(const ULocaleBuilder*, UErrorCode*) |  (missing) | DraftICU 74
-| ulocbuilder.h | int32_t ulocbld_buildLanguageTag(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocbuilder.h | int32_t ulocbld_buildLocaleID(ULocaleBuilder*, char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_addUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_adoptULocale(ULocaleBuilder*, ULocale*) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_clear(ULocaleBuilder*) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_clearExtensions(ULocaleBuilder*) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_close(ULocaleBuilder*) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_removeUnicodeLocaleAttribute(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setExtension(ULocaleBuilder*, char, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setLanguage(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setLanguageTag(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setLocale(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setRegion(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setScript(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setUnicodeLocaleKeyword(ULocaleBuilder*, const char*, int32_t, const char*, int32_t) |  (missing) | DraftICU 74
-| ulocbuilder.h | void ulocbld_setVariant(ULocaleBuilder*, const char*, int32_t) |  (missing) | DraftICU 74
-| unorm2.h | const UNormalizer2* unorm2_getNFKCSimpleCasefoldInstance(UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | icu::UnicodeString& uspoof_getBidiSkeletonUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, icu::UnicodeString&, UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | int32_t uspoof_getBidiSkeleton(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, UChar*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | int32_t uspoof_getBidiSkeletonUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | uint32_t uspoof_areBidiConfusable(const USpoofChecker*, UBiDiDirection, const UChar*, int32_t, const UChar*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | uint32_t uspoof_areBidiConfusableUTF8(const USpoofChecker*, UBiDiDirection, const char*, int32_t, const char*, int32_t, UErrorCode*) |  (missing) | DraftICU 74
-| uspoof.h | uint32_t uspoof_areBidiConfusableUnicodeString(const USpoofChecker*, UBiDiDirection, const icu::UnicodeString&, const icu::UnicodeString&, UErrorCode*) |  (missing) | DraftICU 74
+| coll.h | auto icu::Collator::equal_to() const |  (missing) | DraftICU 76
+| coll.h | auto icu::Collator::greater() const |  (missing) | DraftICU 76
+| coll.h | auto icu::Collator::greater_equal() const |  (missing) | DraftICU 76
+| coll.h | auto icu::Collator::less() const |  (missing) | DraftICU 76
+| coll.h | auto icu::Collator::less_equal() const |  (missing) | DraftICU 76
+| coll.h | auto icu::Collator::not_equal_to() const |  (missing) | DraftICU 76
+| messageformat2.h | Builder& icu::message2::MessageFormatter::Builder::setErrorHandlingBehavior(UMFErrorHandlingBehavior) |  (missing) | InternalICU 76
+| messageformat2.h | <tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior {} |  (missing) | InternalICU 76
+| messageformat2.h | <tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior::U_MF_BEST_EFFORT |  (missing) | InternalICU 76
+| messageformat2.h | <tt>enum</tt>  							icu::message2::MessageFormatter::UMFErrorHandlingBehavior::U_MF_STRICT |  (missing) | InternalICU 76
+| stringpiece.h | icu::StringPiece::operator std::string_view() const |  (missing) | Internal
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_EGYPTIAN_HIEROGLYPHS_EXTENDED_A |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_GARAY |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_GURUNG_KHEMA |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_KIRAT_RAI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_MYANMAR_EXTENDED_C |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_OL_ONAL |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_SUNUWAR |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING_SUPPLEMENT |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_TODHRI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UBlockCode::UBLOCK_TULU_TIGALARI |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UIndicConjunctBreak::U_INCB_CONSONANT |  (missing) | DraftICU 76
+| uchar.h | <tt>enum</tt> UIndicConjunctBreak::U_INCB_EXTEND |  (missing) | DraftICU 76
+| uchar.h | <tt>enum</tt> UIndicConjunctBreak::U_INCB_LINKER |  (missing) | DraftICU 76
+| uchar.h | <tt>enum</tt> UIndicConjunctBreak::U_INCB_NONE |  (missing) | DraftICU 76
+| uchar.h | <tt>enum</tt> UIndicSyllabicCategory::U_INSC_REORDERING_KILLER |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UJoiningGroup::U_JG_KASHMIRI_YEH |  (missing) | StableICU 76| *(Born Stable)* |
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_INDIC_CONJUNCT_BREAK |  (missing) | DraftICU 76
+| uchar.h | <tt>enum</tt> UProperty::UCHAR_MODIFIER_COMBINING_MARK |  (missing) | DraftICU 76
+| ucol.h | U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::Predicate(const UCollator*) |  (missing) | Internal
+| ucol.h | bool U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::operator()(const T&, const U&) const |  (missing) | Internal
+| ucol.h | bool U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate< Compare, result >::operator()(std::string_view, std::string_view) const |  (missing) | Internal
+| uniset.h | U_HEADER_NESTED_NAMESPACE::USetCodePoints icu::UnicodeSet::codePoints() const |  (missing) | DraftICU 76
+| uniset.h | U_HEADER_NESTED_NAMESPACE::USetElementIterator icu::UnicodeSet::begin() const |  (missing) | DraftICU 76
+| uniset.h | U_HEADER_NESTED_NAMESPACE::USetElementIterator icu::UnicodeSet::end() const |  (missing) | DraftICU 76
+| uniset.h | U_HEADER_NESTED_NAMESPACE::USetRanges icu::UnicodeSet::ranges() const |  (missing) | DraftICU 76
+| uniset.h | U_HEADER_NESTED_NAMESPACE::USetStrings icu::UnicodeSet::strings() const |  (missing) | DraftICU 76
+| unistr.h | UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const S&) |  (missing) | DraftICU 76
+| unistr.h | UnicodeString& icu::UnicodeString::append(const S&) |  (missing) | DraftICU 76
+| unistr.h | UnicodeString& icu::UnicodeString::operator+=(const S&) |  (missing) | DraftICU 76
+| unistr.h | UnicodeString& icu::UnicodeString::operator=(const S&) |  (missing) | DraftICU 76
+| unistr.h | UnicodeString& icu::UnicodeString::remove(int32_t, int32_t length=static_cast< int32_t >(INT32_MAX)) |  (missing) | StableICU 2.0
+| unistr.h | UnicodeString& icu::UnicodeString::removeBetween(int32_t, int32_t limit=static_cast< int32_t >(INT32_MAX)) |  (missing) | StableICU 2.0
+| unistr.h | bool icu::UnicodeString::operator!=(const S&) const |  (missing) | DraftICU 76
+| unistr.h | bool icu::UnicodeString::operator==(const S&) const |  (missing) | DraftICU 76
+| unistr.h | icu::UnicodeString::operator std::u16string_view() const |  (missing) | DraftICU 76
+| unistr.h | icu::UnicodeString::operator std::wstring_view() const |  (missing) | DraftICU 76
+| unistr.h | <tt>static</tt> UnicodeString icu::UnicodeString::readOnlyAlias(const S&) |  (missing) | DraftICU 76
+| unistr.h | <tt>static</tt> UnicodeString icu::UnicodeString::readOnlyAlias(const UnicodeString&) |  (missing) | DraftICU 76
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_GARAY |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_GURUNG_KHEMA |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_KIRAT_RAI |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_OL_ONAL |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_SUNUWAR |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_TODHRI |  (missing) | StableICU 76| *(Born Stable)* |
+| uscript.h | <tt>enum</tt> UScriptCode::USCRIPT_TULU_TIGALARI |  (missing) | StableICU 76| *(Born Stable)* |
+| uset.h | CodePointRange U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator* () const |  (missing) | DraftICU 76
+| uset.h | USetCodePointIterator & U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator++() |  (missing) | DraftICU 76
+| uset.h | USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator++(int) |  (missing) | DraftICU 76
+| uset.h | USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePoints::begin() const |  (missing) | DraftICU 76
+| uset.h | USetCodePointIterator U_HEADER_ONLY_NAMESPACE::USetCodePoints::end() const |  (missing) | DraftICU 76
+| uset.h | USetElementIterator & U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator++() |  (missing) | DraftICU 76
+| uset.h | USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator++(int) |  (missing) | DraftICU 76
+| uset.h | USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElements::begin() const |  (missing) | DraftICU 76
+| uset.h | USetElementIterator U_HEADER_ONLY_NAMESPACE::USetElements::end() const |  (missing) | DraftICU 76
+| uset.h | USetRangeIterator & U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator++() |  (missing) | DraftICU 76
+| uset.h | USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator++(int) |  (missing) | DraftICU 76
+| uset.h | USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRanges::begin() const |  (missing) | DraftICU 76
+| uset.h | USetRangeIterator U_HEADER_ONLY_NAMESPACE::USetRanges::end() const |  (missing) | DraftICU 76
+| uset.h | USetStringIterator & U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator++() |  (missing) | DraftICU 76
+| uset.h | USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator++(int) |  (missing) | DraftICU 76
+| uset.h | USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStrings::begin() const |  (missing) | DraftICU 76
+| uset.h | USetStringIterator U_HEADER_ONLY_NAMESPACE::USetStrings::end() const |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::USetCodePointIterator(const USetCodePointIterator&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetCodePoints::USetCodePoints(const USet*) |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetCodePoints::USetCodePoints(const USetCodePoints&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetElementIterator::USetElementIterator(const USetElementIterator&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetElements::USetElements(const USet*) |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetElements::USetElements(const USetElements&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetRangeIterator::USetRangeIterator(const USetRangeIterator&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetRanges::USetRanges(const USet*) |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetRanges::USetRanges(const USetRanges&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetStringIterator::USetStringIterator(const USetStringIterator&)=default |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetStrings::USetStrings(const USet*) |  (missing) | DraftICU 76
+| uset.h | U_HEADER_ONLY_NAMESPACE::USetStrings::USetStrings(const USetStrings&)=default |  (missing) | DraftICU 76
+| uset.h | UnicodeString U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator* () const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator!=(const USetCodePointIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator==(const USetCodePointIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator!=(const USetElementIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetElementIterator::operator==(const USetElementIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator!=(const USetRangeIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetRangeIterator::operator==(const USetRangeIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator!=(const USetStringIterator&) const |  (missing) | DraftICU 76
+| uset.h | bool U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator==(const USetStringIterator&) const |  (missing) | DraftICU 76
+| uset.h | UChar32 U_HEADER_ONLY_NAMESPACE::USetCodePointIterator::operator* () const |  (missing) | DraftICU 76
+| uset.h | const UChar* uset_getString(const USet*, int32_t, int32_t*) |  (missing) | DraftICU 76
+| uset.h | int32_t uset_getStringCount(const USet*) |  (missing) | DraftICU 76
+| uset.h | std::u16string_view U_HEADER_ONLY_NAMESPACE::USetStringIterator::operator* () const |  (missing) | DraftICU 76
+| utypes.h | <tt>#define</tt> U_SHOW_CPLUSPLUS_HEADER_API |  (missing) | Internal
+| utypes.h | <tt>enum</tt> UErrorCode::U_MF_DUPLICATE_VARIANT_ERROR |  (missing) | InternalICU 76
 
 ## Other
 
-Other existing drafts in ICU 74
+Other existing drafts in ICU 76
 
-| File | API | ICU 73 | ICU 74 |
+| File | API | ICU 75 | ICU 76 |
 |---|---|---|---|
-| calendar.h |  bool icu::Calendar::inTemporalLeapYear(UErrorCode&) const | DraftICU 73 | 
-| calendar.h |  const char* icu::Calendar::getTemporalMonthCode(UErrorCode&) const | DraftICU 73 | 
-| calendar.h |  void icu::Calendar::setTemporalMonthCode(const char*, UErrorCode&) | DraftICU 73 | 
 | measfmt.h |  void icu::MeasureFormat::parseObject(const UnicodeString&, Formattable&, ParsePosition&) const | DraftICU 53 | 
-| measunit.h |  <tt>static</tt> MeasureUnit icu::MeasureUnit::getBeaufort() | DraftICU 73 | 
-| measunit.h |  <tt>static</tt> MeasureUnit* icu::MeasureUnit::createBeaufort(UErrorCode&) | DraftICU 73 | 
-| numfmt.h |  <tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfCeiling | DraftICU 73 | 
-| numfmt.h |  <tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfFloor | DraftICU 73 | 
-| numfmt.h |  <tt>enum</tt>  							icu::NumberFormat::ERoundingMode::kRoundHalfOdd | DraftICU 73 | 
-| simplenumberformatter.h |  FormattedNumber icu::number::SimpleNumberFormatter::format(SimpleNumber, UErrorCode&) const | DraftICU 73 | 
-| simplenumberformatter.h |  FormattedNumber icu::number::SimpleNumberFormatter::formatInt64(int64_t, UErrorCode&) const | DraftICU 73 | 
-| simplenumberformatter.h |  SimpleNumber& icu::number::SimpleNumber::operator=(SimpleNumber&&) | DraftICU 73 | 
-| simplenumberformatter.h |  SimpleNumberFormatter& icu::number::SimpleNumberFormatter::operator=(SimpleNumberFormatter&&) | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumber::SimpleNumber()=default | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumber::SimpleNumber(SimpleNumber&&) | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumber::~SimpleNumber() | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumberFormatter::SimpleNumberFormatter()=default | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumberFormatter::SimpleNumberFormatter(SimpleNumberFormatter&&) | DraftICU 73 | 
-| simplenumberformatter.h |  icu::number::SimpleNumberFormatter::~SimpleNumberFormatter() | DraftICU 73 | 
-| simplenumberformatter.h |  <tt>static</tt> SimpleNumber icu::number::SimpleNumber::forInt64(int64_t, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  <tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocale(const icu::Locale&, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  <tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocaleAndGroupingStrategy(const icu::Locale&, UNumberGroupingStrategy, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  <tt>static</tt> SimpleNumberFormatter icu::number::SimpleNumberFormatter::forLocaleAndSymbolsAndGroupingStrategy(const icu::Locale&, const DecimalFormatSymbols&, UNumberGroupingStrategy, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::multiplyByPowerOfTen(int32_t, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::roundTo(int32_t, UNumberFormatRoundingMode, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::setMinimumFractionDigits(uint32_t, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::setMinimumIntegerDigits(uint32_t, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::setSign(USimpleNumberSign, UErrorCode&) | DraftICU 73 | 
-| simplenumberformatter.h |  void icu::number::SimpleNumber::truncateStart(uint32_t, UErrorCode&) | DraftICU 73 | 
-| ucal.h |  <tt>enum</tt> UCalendarDateFields::UCAL_ORDINAL_MONTH | DraftICU 73 | 
+| numberformatter.h |  UnlocalizedNumberFormatter icu::number::LocalizedNumberFormatter::withoutLocale() && | DraftICU 75 | 
+| numberformatter.h |  UnlocalizedNumberFormatter icu::number::LocalizedNumberFormatter::withoutLocale() const & | DraftICU 75 | 
+| numberrangeformatter.h |  UnlocalizedNumberRangeFormatter icu::number::LocalizedNumberRangeFormatter::withoutLocale() && | DraftICU 75 | 
+| numberrangeformatter.h |  UnlocalizedNumberRangeFormatter icu::number::LocalizedNumberRangeFormatter::withoutLocale() const & | DraftICU 75 | 
+| simplenumberformatter.h |  void icu::number::SimpleNumber::setMaximumIntegerDigits(uint32_t, UErrorCode&) | DraftICU 75 | 
+| uchar.h |  bool u_hasIDType(UChar32, UIdentifierType) | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierStatus::U_ID_STATUS_ALLOWED | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierStatus::U_ID_STATUS_RESTRICTED | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_DEFAULT_IGNORABLE | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_DEPRECATED | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_EXCLUSION | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_INCLUSION | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_LIMITED_USE | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_CHARACTER | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_NFKC | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_NOT_XID | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_OBSOLETE | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_RECOMMENDED | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_TECHNICAL | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UIdentifierType::U_ID_TYPE_UNCOMMON_USE | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UProperty::UCHAR_IDENTIFIER_STATUS | DraftICU 75 | 
+| uchar.h |  <tt>enum</tt> UProperty::UCHAR_IDENTIFIER_TYPE | DraftICU 75 | 
+| uchar.h |  int32_t u_getIDTypes(UChar32, UIdentifierType*, int32_t, UErrorCode*) | DraftICU 75 | 
 | uregex.h |  <tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ | DraftICU 2.4 | 
-| uset.h |  <tt>enum</tt> (anonymous)::USET_SIMPLE_CASE_INSENSITIVE | DraftICU 73 | 
-| usimplenumberformatter.h |  USimpleNumber* usnum_openForInt64(int64_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  USimpleNumberFormatter* usnumf_openForLocale(const char*, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  USimpleNumberFormatter* usnumf_openForLocaleAndGroupingStrategy(const char*, UNumberGroupingStrategy, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  <tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_MINUS_SIGN | DraftICU 73 | 
-| usimplenumberformatter.h |  <tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_NO_SIGN | DraftICU 73 | 
-| usimplenumberformatter.h |  <tt>enum</tt> USimpleNumberSign::UNUM_SIMPLE_NUMBER_PLUS_SIGN | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_close(USimpleNumber*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_multiplyByPowerOfTen(USimpleNumber*, int32_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_roundTo(USimpleNumber*, int32_t, UNumberFormatRoundingMode, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_setMinimumFractionDigits(USimpleNumber*, int32_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_setMinimumIntegerDigits(USimpleNumber*, int32_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_setSign(USimpleNumber*, USimpleNumberSign, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_setToInt64(USimpleNumber*, int64_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnum_truncateStart(USimpleNumber*, int32_t, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnumf_close(USimpleNumberFormatter*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnumf_format(const USimpleNumberFormatter*, USimpleNumber*, UFormattedNumber*, UErrorCode*) | DraftICU 73 | 
-| usimplenumberformatter.h |  void usnumf_formatInt64(const USimpleNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*) | DraftICU 73 | 
+| usimplenumberformatter.h |  void usnum_setMaximumIntegerDigits(USimpleNumber*, int32_t, UErrorCode*) | DraftICU 75 | 
 
 ## Simplifications
 
@@ -342,7 +357,7 @@
 
 ## Colophon
 
-Contents generated by StableAPI tool on Mon Oct 02 17:52:32 PDT 2023
+Contents generated by StableAPI tool on Tue Sep 24 13:19:44 PDT 2024
 
 Copyright © 2019 and later: Unicode, Inc. and others.
 License & terms of use: http://www.unicode.org/copyright.html

Modified: trunk/Build/source/libs/icu/icu-src/LICENSE
===================================================================
--- trunk/Build/source/libs/icu/icu-src/LICENSE	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/LICENSE	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,50 +1,45 @@
-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+UNICODE LICENSE V3
 
-See Terms of Use <https://www.unicode.org/copyright.html>
-for definitions of Unicode Inc.’s Data Files and Software.
+COPYRIGHT AND PERMISSION NOTICE
 
-NOTICE TO USER: Carefully read the following legal agreement.
-BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
-DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
-YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
-TERMS AND CONDITIONS OF THIS AGREEMENT.
-IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
-THE DATA FILES OR SOFTWARE.
+Copyright © 2016-2024 Unicode, Inc.
 
-COPYRIGHT AND PERMISSION NOTICE
+NOTICE TO USER: Carefully read the following legal agreement. BY
+DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
+SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
+TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
+DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
 
-Copyright © 1991-2022 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of data files and any associated documentation (the "Data Files") or
+software and any associated documentation (the "Software") to deal in the
+Data Files or Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, and/or sell
+copies of the Data Files or Software, and to permit persons to whom the
+Data Files or Software are furnished to do so, provided that either (a)
+this copyright and permission notice appear with all copies of the Data
+Files or Software, or (b) this copyright and permission notice appear in
+associated Documentation.
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Unicode data files and any associated documentation
-(the "Data Files") or Unicode software and any associated documentation
-(the "Software") to deal in the Data Files or Software
-without restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, and/or sell copies of
-the Data Files or Software, and to permit persons to whom the Data Files
-or Software are furnished to do so, provided that either
-(a) this copyright and permission notice appear with all copies
-of the Data Files or Software, or
-(b) this copyright and permission notice appear in associated
-Documentation.
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+THIRD PARTY RIGHTS.
 
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT OF THIRD PARTY RIGHTS.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
-NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
+BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
+OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
+FILES OR SOFTWARE.
 
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in these Data Files or Software without prior
-written authorization of the copyright holder.
+Except as contained in this notice, the name of a copyright holder shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in these Data Files or Software without prior written
+authorization of the copyright holder.
 
+SPDX-License-Identifier: Unicode-3.0
+
 ----------------------------------------------------------------------
 
 Third-Party Software Licenses
@@ -438,6 +433,34 @@
 
 ----------------------------------------------------------------------
 
+JSON parsing library (nlohmann/json)
+
+File: vendor/json/upstream/single_include/nlohmann/json.hpp (only for ICU4C)
+
+MIT License
+
+Copyright (c) 2013-2022 Niels Lohmann
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+----------------------------------------------------------------------
+
 File: aclocal.m4 (only for ICU4C)
 Section: pkg.m4 - Macros to locate and utilise pkg-config.
 
@@ -478,7 +501,7 @@
 
 This file 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
+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

Modified: trunk/Build/source/libs/icu/icu-src/build_qnx/build-hooks
===================================================================
--- trunk/Build/source/libs/icu/icu-src/build_qnx/build-hooks	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/build_qnx/build-hooks	2024-10-27 22:03:54 UTC (rev 72681)
@@ -15,7 +15,7 @@
 
 		CFLAGS="$CFLAGS -fPIC"
 		CPPFLAGS="$CPPFLAGS -fPIC"
-		CXXFLAGS="$CXXFLAGS -std=gnu++11"
+		CXXFLAGS="$CXXFLAGS -std=gnu++17"
 	else
 # prefix is the base path where architecture independent files are installed in the target filesystem
 		configure_opts="${configure_opts} --prefix=/"

Modified: trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in	2024-10-27 22:03:54 UTC (rev 72681)
@@ -2084,7 +2084,7 @@
                          U_DEFINE_LOCAL_OPEN_POINTER()= \
                          U_IN_DOXYGEN=1 \
                          U_CHAR16_IS_TYPEDEF=0 \
-                         U_CPLUSPLUS_VERSION=11 \
+                         U_CPLUSPLUS_VERSION=17 \
                          U_WCHAR_IS_UTF16
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this

Modified: trunk/Build/source/libs/icu/icu-src/source/Makefile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/Makefile.in	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/Makefile.in	2024-10-27 22:03:54 UTC (rev 72681)
@@ -77,7 +77,7 @@
 
 ## List of phony targets
 .PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls		\
-install-recursive clean clean-local clean-recursive distclean		\
+install-recursive install-manx clean clean-local clean-recursive distclean		\
 distclean-local distclean-recursive doc dist dist-local dist-recursive	\
 check check-local check-recursive clean-recursive-with-twist install-icu \
 doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \
@@ -88,9 +88,9 @@
 
 ## List of standard targets
 all: all-local all-recursive
-install: install-recursive install-local
+install: install-recursive
 clean: clean-recursive-with-twist clean-local
-distclean : distclean-recursive distclean-local
+distclean : distclean-recursive
 dist: dist-recursive
 check: all check-recursive
 check-recursive: all
@@ -275,8 +275,12 @@
 	@cat config/icu.pc > $@
 	@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Common and Data libraries" >> $@
 	@echo "Name: $(PACKAGE)-uc" >> $@
-	@echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" "${ICULIBS_DT}" >> $@
-	@echo "Libs.private:" '$${baselibs}' >> $@
+ifeq ($(ENABLE_SHARED),)
+	@echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" "${ICULIBS_DT}" '$${baselibs}' >> $@
+else
+	@echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" >> $@
+	@echo "Libs.private:" "${ICULIBS_DT}" '$${baselibs}' >> $@
+endif
 	@echo $@ updated.
 
 config/icu-i18n.pc: config/icu.pc Makefile icudefs.mk
@@ -283,8 +287,12 @@
 	@cat config/icu.pc > $@
 	@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Internationalization library" >> $@
 	@echo "Name: $(PACKAGE)-i18n" >> $@
+ifeq ($(ENABLE_SHARED),)
 	@echo "Requires: icu-uc" >> $@
-	@echo "Libs:" "${ICULIBS_I18N}" >> $@
+else
+	@echo "Requires.private: icu-uc" >> $@
+endif
+	@echo "Libs:" '-L$${libdir}' "${ICULIBS_I18N}" >> $@
 	@echo $@ updated.
 
 config/icu-io.pc: config/icu.pc Makefile icudefs.mk
@@ -291,8 +299,12 @@
 	@cat config/icu.pc > $@
 	@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Stream and I/O Library" >> $@
 	@echo "Name: $(PACKAGE)-io" >> $@
+ifeq ($(ENABLE_SHARED),)
 	@echo "Requires: icu-i18n" >> $@
-	@echo "Libs:" "${ICULIBS_IO}" >> $@
+else
+	@echo "Requires.private: icu-i18n" >> $@
+endif
+	@echo "Libs:" '-L$${libdir}' "${ICULIBS_IO}" >> $@
 	@echo $@ updated.
 
 ICULEHB_LIBS=@ICULEHB_LIBS@
@@ -306,12 +318,20 @@
 	@cat config/icu.pc > $@
 	@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Paragraph Layout library $(USING_HB)" >> $@
 	@echo "Name: $(PACKAGE)-lx" >> $@
+ifeq ($(ENABLE_SHARED),)
 ifneq ($(ICULEHB_LIBS),)
 	@echo "Requires: icu-le-hb icu-uc" >> $@
 else
 	@echo "Requires: icu-le" >> $@
 endif
-	@echo "Libs:" "${ICULIBS_LX}" >> $@
+else
+ifneq ($(ICULEHB_LIBS),)
+	@echo "Requires.private: icu-le-hb icu-uc" >> $@
+else
+	@echo "Requires.private: icu-le" >> $@
+endif
+endif
+	@echo "Libs:" '-L$${libdir}' "${ICULIBS_LX}" >> $@
 	@echo $@ updated.
 
 
@@ -357,7 +377,7 @@
 install-manx: $(MANX_FILES)
 	$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
 ifneq ($(MANX_FILES),)
-	$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+	$(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION)
 endif
 
 config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in

Modified: trunk/Build/source/libs/icu/icu-src/source/acinclude.m4
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/acinclude.m4	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/acinclude.m4	2024-10-27 22:03:54 UTC (rev 72681)
@@ -463,17 +463,6 @@
     then
         if test "$GCC" = yes
         then
-            case "${host}" in
-            *-*-solaris*)
-                # Don't use -std=c11 on Solaris because of timezone check fails
-                ;;
-            *)
-                # Do not use -ansi. It limits us to C90, and it breaks some platforms.
-                # We use -std=c11 to disable the gnu99 defaults and its associated warnings
-                CFLAGS="$CFLAGS -std=c11"
-                ;;
-            esac
-            
             CFLAGS="$CFLAGS -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"
         else
             case "${host}" in

Modified: trunk/Build/source/libs/icu/icu-src/source/aclocal.m4
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/aclocal.m4	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/aclocal.m4	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -12,63 +12,9 @@
 # PARTICULAR PURPOSE.
 
 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
-# ===========================================================================
-#  https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
-#
-# DESCRIPTION
-#
-#   Check whether the given FLAG works with the current language's compiler
-#   or gives an error.  (Warnings, however, are ignored)
-#
-#   ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-#   success/failure.
-#
-#   If EXTRA-FLAGS is defined, it is added to the current language's default
-#   flags (e.g. CFLAGS) when the check is done.  The check is thus made with
-#   the flags: "CFLAGS EXTRA-FLAGS FLAG".  This can for example be used to
-#   force the compiler to issue an error when a bad flag is given.
-#
-#   INPUT gives an alternative input source to AC_COMPILE_IFELSE.
-#
-#   NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-#   macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Guido U. Draheim <guidod at gmx.de>
-#   Copyright (c) 2011 Maarten Bosmans <mkbosmans at gmail.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved.  This file is offered as-is, without any
-#   warranty.
+# pkg.m4 - Macros to locate and use pkg-config.   -*- Autoconf -*-
+# serial 12 (pkg-config-0.29.2)
 
-#serial 6
-
-AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
-AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
-  ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
-  _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
-  AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
-    [AS_VAR_SET(CACHEVAR,[yes])],
-    [AS_VAR_SET(CACHEVAR,[no])])
-  _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-AS_VAR_IF(CACHEVAR,yes,
-  [m4_default([$2], :)],
-  [m4_default([$3], :)])
-AS_VAR_POPDEF([CACHEVAR])dnl
-])dnl AX_CHECK_COMPILE_FLAGS
-
-dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
-dnl serial 11 (pkg-config-0.29.1)
-dnl
 dnl Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
 dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists at gmail.com>
 dnl
@@ -109,7 +55,7 @@
 dnl See the "Since" comment for each macro you use to see what version
 dnl of the macros you require.
 m4_defun([PKG_PREREQ],
-[m4_define([PKG_MACROS_VERSION], [0.29.1])
+[m4_define([PKG_MACROS_VERSION], [0.29.2])
 m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
     [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
 ])dnl PKG_PREREQ
@@ -154,7 +100,7 @@
 dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
 dnl
 dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-dnl only at the first occurence in configure.ac, so if the first place
+dnl only at the first occurrence in configure.ac, so if the first place
 dnl it's called might be skipped (such as if it is within an "if", you
 dnl have to call PKG_CHECK_EXISTS manually
 AC_DEFUN([PKG_CHECK_EXISTS],
@@ -210,7 +156,7 @@
 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
 
 pkg_failed=no
-AC_MSG_CHECKING([for $1])
+AC_MSG_CHECKING([for $2])
 
 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
@@ -220,17 +166,17 @@
 See the pkg-config man page for more details.])
 
 if test $pkg_failed = yes; then
-   	AC_MSG_RESULT([no])
+        AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
-        else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+                $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else
+                $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+        # Put the nasty error message in config.log where it belongs
+        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
-	m4_default([$4], [AC_MSG_ERROR(
+        m4_default([$4], [AC_MSG_ERROR(
 [Package requirements ($2) were not met:
 
 $$1_PKG_ERRORS
@@ -241,8 +187,8 @@
 _PKG_TEXT])[]dnl
         ])
 elif test $pkg_failed = untried; then
-     	AC_MSG_RESULT([no])
-	m4_default([$4], [AC_MSG_FAILURE(
+        AC_MSG_RESULT([no])
+        m4_default([$4], [AC_MSG_FAILURE(
 [The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -252,10 +198,10 @@
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
-	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
-	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+        $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
         AC_MSG_RESULT([yes])
-	$3
+        $3
 fi[]dnl
 ])dnl PKG_CHECK_MODULES
 
@@ -342,5 +288,73 @@
 AS_VAR_IF([$1], [""], [$5], [$4])dnl
 ])dnl PKG_CHECK_VAR
 
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+           [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+            [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+            [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+     AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+    [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+            [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+            [auto],[PKG_CHECK_MODULES([$1],[$2],
+                                        [m4_n([def_action_if_found]) $3],
+                                        [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+               [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl   [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+        [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
 m4_include([config/m4/icu-conditional.m4])
 m4_include([acinclude.m4])

Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.IcuVersion.props
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.IcuVersion.props	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.IcuVersion.props	2024-10-27 22:03:54 UTC (rev 72681)
@@ -3,6 +3,6 @@
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- This file is used to set the ICU Major Version number, which is used as a suffix on various file names in other Visual Studio projects. -->
   <PropertyGroup>
-    <IcuMajorVersion>74</IcuMajorVersion>
+    <IcuMajorVersion>76</IcuMajorVersion>
   </PropertyGroup>
 </Project>

Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.ProjectConfiguration.props
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/Build.Windows.UWP.ProjectConfiguration.props
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln	2024-10-27 22:03:54 UTC (rev 72681)
@@ -2,12 +2,6 @@
 # Visual Studio 15
 VisualStudioVersion = 15.0.27130.2036
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cal", "..\samples\cal\cal.vcxproj", "{F7659D77-09CF-4FE9-ACEE-927287AA9509}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
-		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
-	EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cintltst", "..\test\cintltst\cintltst.vcxproj", "{3D1246AE-1B32-479B-BECA-AEFA97BE2321}"
 	ProjectSection(ProjectDependencies) = postProject
 		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
@@ -27,12 +21,6 @@
 		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "date", "..\samples\date\date.vcxproj", "{38B5751A-C6F9-4409-950C-F4F9DA17275F}"
-	ProjectSection(ProjectDependencies) = postProject
-		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
-		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
-	EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "derb", "..\tools\genrb\derb.vcxproj", "{D3065ADB-8820-4CC7-9B6C-9510833961A3}"
 	ProjectSection(ProjectDependencies) = postProject
 		{C2B04507-2521-4801-BF0D-5FD79D6D518C} = {C2B04507-2521-4801-BF0D-5FD79D6D518C}
@@ -212,18 +200,6 @@
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|ARM.ActiveCfg = Debug|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|ARM64.ActiveCfg = Debug|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|Win32.Build.0 = Debug|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|x64.ActiveCfg = Debug|x64
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|x64.Build.0 = Debug|x64
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|ARM.ActiveCfg = Release|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|ARM64.ActiveCfg = Release|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|Win32.ActiveCfg = Release|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|Win32.Build.0 = Release|Win32
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|x64.ActiveCfg = Release|x64
-		{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|x64.Build.0 = Release|x64
 		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|ARM.ActiveCfg = Debug|ARM
 		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|ARM.Build.0 = Debug|ARM
 		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -272,18 +248,6 @@
 		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|Win32.Build.0 = Release|Win32
 		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|x64.ActiveCfg = Release|x64
 		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|x64.Build.0 = Release|x64
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|ARM.ActiveCfg = Debug|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|ARM64.ActiveCfg = Debug|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|Win32.ActiveCfg = Debug|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|Win32.Build.0 = Debug|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|x64.ActiveCfg = Debug|x64
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|x64.Build.0 = Debug|x64
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|ARM.ActiveCfg = Release|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|ARM64.ActiveCfg = Release|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|Win32.ActiveCfg = Release|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|Win32.Build.0 = Release|Win32
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|x64.ActiveCfg = Release|x64
-		{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|x64.Build.0 = Release|x64
 		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|ARM.ActiveCfg = Debug|ARM
 		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|ARM.Build.0 = Debug|ARM
 		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|ARM64.ActiveCfg = Debug|ARM64

Modified: trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in	2024-10-27 22:03:54 UTC (rev 72681)
@@ -44,10 +44,10 @@
 SO_VERSION_DATA = common.res
 endif
 
-ifeq ($(OS390BATCH),1)
+ifeq ($(BUILD_HOST_ICU),OS390)
 BATCH_TARGET = $(BATCH_COMMON_TARGET)
 BATCH_LIBS = $(BATCH_LIBICUDT) -lm
-endif   # OS390BATCH
+endif
 
 endif   # ENABLE_SHARED
 
@@ -58,10 +58,6 @@
 DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
 CFLAGS += $(LIBCFLAGS)
 CXXFLAGS += $(LIBCXXFLAGS)
-ifeq ($(OS390BATCH),1)
-CFLAGS += -WI
-CXXFLAGS += -WI
-endif
 
 CPPFLAGS += -I$(srcdir) $(LIBCPPFLAGS) $(CPPFLAGSICUUC)
 # we want DEFS here
@@ -191,10 +187,10 @@
 endif
 endif
 
-ifeq ($(OS390BATCH),1)
+ifeq ($(BUILD_HOST_ICU),OS390)
 $(BATCH_TARGET):$(OBJECTS)
-	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
-endif   # OS390BATCH
+	$(SHLIB.cc) $(LD_SONAME) -Wl,-x$@.x $(OUTOPT)$@ $^ $(BATCH_LIBS)
+endif
 endif   # ENABLE_SHARED
 
 ifeq (,$(MAKECMDGOALS))

Modified: trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -25,7 +25,7 @@
 UBool
 Appendable::appendCodePoint(UChar32 c) {
     if(c<=0xffff) {
-        return appendCodeUnit((char16_t)c);
+        return appendCodeUnit(static_cast<char16_t>(c));
     } else {
         return appendCodeUnit(U16_LEAD(c)) && appendCodeUnit(U16_TRAIL(c));
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -75,7 +75,7 @@
     int32_t trail=start&0x3f;  // Named for UTF-8 2-byte trail byte with lower 6 bits.
 
     // Set one bit indicating an all-one block.
-    uint32_t bits=(uint32_t)1<<lead;
+    uint32_t bits = static_cast<uint32_t>(1) << lead;
     if((start+1)==limit) {  // Single-character shortcut.
         table[trail]|=bits;
         return;
@@ -100,9 +100,9 @@
             ++lead;
         }
         if(lead<limitLead) {
-            bits=~(((unsigned)1<<lead)-1);
+            bits = ~((static_cast<unsigned>(1) << lead) - 1);
             if(limitLead<0x20) {
-                bits&=((unsigned)1<<limitLead)-1;
+                bits &= (static_cast<unsigned>(1) << limitLead) - 1;
             }
             for(trail=0; trail<64; ++trail) {
                 table[trail]|=bits;
@@ -111,7 +111,7 @@
         // limit<=0x800. If limit==0x800 then limitLead=32 and limitTrail=0.
         // In that case, bits=1<<limitLead is undefined but the bits value
         // is not used because trail<limitTrail is already false.
-        bits=(uint32_t)1<<((limitLead == 0x20) ? (limitLead - 1) : limitLead);
+        bits = static_cast<uint32_t>(1) << ((limitLead == 0x20) ? (limitLead - 1) : limitLead);
         for(trail=0; trail<limitTrail; ++trail) {
             table[trail]|=bits;
         }
@@ -290,22 +290,22 @@
 
 UBool
 BMPSet::contains(UChar32 c) const {
-    if((uint32_t)c<=0xff) {
-        return (UBool)latin1Contains[c];
-    } else if((uint32_t)c<=0x7ff) {
-        return (UBool)((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0);
-    } else if((uint32_t)c<0xd800 || (c>=0xe000 && c<=0xffff)) {
+    if (static_cast<uint32_t>(c) <= 0xff) {
+        return latin1Contains[c];
+    } else if (static_cast<uint32_t>(c) <= 0x7ff) {
+        return (table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) != 0;
+    } else if (static_cast<uint32_t>(c) < 0xd800 || (c >= 0xe000 && c <= 0xffff)) {
         int lead=c>>12;
         uint32_t twoBits=(bmpBlockBits[(c>>6)&0x3f]>>lead)&0x10001;
         if(twoBits<=1) {
             // All 64 code points with the same bits 15..6
             // are either in the set or not.
-            return (UBool)twoBits;
+            return twoBits;
         } else {
             // Look up the code point in its 4k block of code points.
             return containsSlow(c, list4kStarts[lead], list4kStarts[lead+1]);
         }
-    } else if((uint32_t)c<=0x10ffff) {
+    } else if (static_cast<uint32_t>(c) <= 0x10ffff) {
         // surrogate or supplementary code point
         return containsSlow(c, list4kStarts[0xd], list4kStarts[0x11]);
     } else {
@@ -332,7 +332,7 @@
                     break;
                 }
             } else if(c<=0x7ff) {
-                if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))==0) {
+                if ((table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) == 0) {
                     break;
                 }
             } else if(c<0xd800 || c>=0xe000) {
@@ -372,7 +372,7 @@
                     break;
                 }
             } else if(c<=0x7ff) {
-                if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) {
+                if ((table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) != 0) {
                     break;
                 }
             } else if(c<0xd800 || c>=0xe000) {
@@ -421,7 +421,7 @@
                     break;
                 }
             } else if(c<=0x7ff) {
-                if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))==0) {
+                if ((table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) == 0) {
                     break;
                 }
             } else if(c<0xd800 || c>=0xe000) {
@@ -464,7 +464,7 @@
                     break;
                 }
             } else if(c<=0x7ff) {
-                if((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) {
+                if ((table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) != 0) {
                     break;
                 }
             } else if(c<0xd800 || c>=0xe000) {
@@ -527,7 +527,7 @@
                 b=*s;
             } while(U8_IS_SINGLE(b));
         }
-        length=(int32_t)(limit-s);
+        length = static_cast<int32_t>(limit - s);
     }
 
     if(spanCondition!=USET_SPAN_NOT_CONTAINED) {
@@ -547,7 +547,7 @@
      * the truncated sequence.
      */
     b=*(limit-1);
-    if((int8_t)b<0) {
+    if (static_cast<int8_t>(b) < 0) {
         // b>=0x80: lead or trail byte
         if(b<0xc0) {
             // single trail byte, check for preceding 3- or 4-byte lead byte
@@ -602,8 +602,8 @@
         if(b>=0xe0) {
             if(b<0xf0) {
                 if( /* handle U+0000..U+FFFF inline */
-                    (t1=(uint8_t)(s[0]-0x80)) <= 0x3f &&
-                    (t2=(uint8_t)(s[1]-0x80)) <= 0x3f
+                    (t1 = static_cast<uint8_t>(s[0] - 0x80)) <= 0x3f &&
+                    (t2 = static_cast<uint8_t>(s[1] - 0x80)) <= 0x3f
                 ) {
                     b&=0xf;
                     uint32_t twoBits=(bmpBlockBits[t1]>>b)&0x10001;
@@ -610,7 +610,7 @@
                     if(twoBits<=1) {
                         // All 64 code points with this lead byte and middle trail byte
                         // are either in the set or not.
-                        if(twoBits!=(uint32_t)spanCondition) {
+                        if (twoBits != static_cast<uint32_t>(spanCondition)) {
                             return s-1;
                         }
                     } else {
@@ -624,12 +624,12 @@
                     continue;
                 }
             } else if( /* handle U+10000..U+10FFFF inline */
-                (t1=(uint8_t)(s[0]-0x80)) <= 0x3f &&
-                (t2=(uint8_t)(s[1]-0x80)) <= 0x3f &&
-                (t3=(uint8_t)(s[2]-0x80)) <= 0x3f
+                (t1 = static_cast<uint8_t>(s[0] - 0x80)) <= 0x3f &&
+                (t2 = static_cast<uint8_t>(s[1] - 0x80)) <= 0x3f &&
+                (t3 = static_cast<uint8_t>(s[2] - 0x80)) <= 0x3f
             ) {
                 // Give an illegal sequence the same value as the result of contains(FFFD).
-                UChar32 c=((UChar32)(b-0xf0)<<18)|((UChar32)t1<<12)|(t2<<6)|t3;
+                UChar32 c = (static_cast<UChar32>(b - 0xf0) << 18) | (static_cast<UChar32>(t1) << 12) | (t2 << 6) | t3;
                 if( (   (0x10000<=c && c<=0x10ffff) ?
                             containsSlow(c, list4kStarts[0x10], list4kStarts[0x11]) :
                             containsFFFD
@@ -643,9 +643,9 @@
         } else {
             if( /* handle U+0000..U+07FF inline */
                 b>=0xc0 &&
-                (t1=(uint8_t)(*s-0x80)) <= 0x3f
+                (t1 = static_cast<uint8_t>(*s - 0x80)) <= 0x3f
             ) {
-                if((USetSpanCondition)((table7FF[t1]&((uint32_t)1<<(b&0x1f)))!=0) != spanCondition) {
+                if (static_cast<USetSpanCondition>((table7FF[t1] & (static_cast<uint32_t>(1) << (b & 0x1f))) != 0) != spanCondition) {
                     return s-1;
                 }
                 ++s;
@@ -711,7 +711,7 @@
         c=utf8_prevCharSafeBody(s, 0, &length, b, -3);
         // c is a valid code point, not ASCII, not a surrogate
         if(c<=0x7ff) {
-            if((USetSpanCondition)((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0) != spanCondition) {
+            if (static_cast<USetSpanCondition>((table7FF[c & 0x3f] & (static_cast<uint32_t>(1) << (c >> 6))) != 0) != spanCondition) {
                 return prev+1;
             }
         } else if(c<=0xffff) {
@@ -720,7 +720,7 @@
             if(twoBits<=1) {
                 // All 64 code points with the same bits 15..6
                 // are either in the set or not.
-                if(twoBits!=(uint32_t)spanCondition) {
+                if (twoBits != static_cast<uint32_t>(spanCondition)) {
                     return prev+1;
                 }
             } else {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -156,7 +156,7 @@
 };
 
 inline UBool BMPSet::containsSlow(UChar32 c, int32_t lo, int32_t hi) const {
-    return (UBool)(findCodePoint(c, lo, hi) & 1);
+    return findCodePoint(c, lo, hi) & 1;
 }
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -86,7 +86,7 @@
     if (U_FAILURE(status)) return 0;
     utext_setNativeIndex(text, startPos);
     UChar32 c = utext_current32(text);
-    while((int32_t)utext_getNativeIndex(text) < endPos && fHandled->contains(c)) {
+    while (static_cast<int32_t>(utext_getNativeIndex(text)) < endPos && fHandled->contains(c)) {
         utext_next32(text);            // TODO:  recast loop to work with post-increment operations.
         c = utext_current32(text);
     }
@@ -114,13 +114,11 @@
  */
 
 ICULanguageBreakFactory::ICULanguageBreakFactory(UErrorCode &/*status*/) {
-    fEngines = 0;
+    fEngines = nullptr;
 }
 
 ICULanguageBreakFactory::~ICULanguageBreakFactory() {
-    if (fEngines != 0) {
-        delete fEngines;
-    }
+    delete fEngines;
 }
 
 void ICULanguageBreakFactory::ensureEngines(UErrorCode& status) {
@@ -148,7 +146,7 @@
     Mutex m(&gBreakEngineMutex);
     int32_t i = fEngines->size();
     while (--i >= 0) {
-        lbe = (const LanguageBreakEngine *)(fEngines->elementAt(i));
+        lbe = static_cast<const LanguageBreakEngine*>(fEngines->elementAt(i));
         if (lbe != nullptr && lbe->handles(c, locale)) {
             return lbe;
         }
@@ -261,7 +259,7 @@
     CharString ext;
     const char16_t *extStart = u_memrchr(dictfname, 0x002e, dictnlength);  // last dot
     if (extStart != nullptr) {
-        int32_t len = (int32_t)(extStart - dictfname);
+        int32_t len = static_cast<int32_t>(extStart - dictfname);
         ext.appendInvariantChars(UnicodeString(false, extStart + 1, dictnlength - len - 1), status);
         dictnlength = len;
     }
@@ -271,18 +269,18 @@
     UDataMemory *file = udata_open(U_ICUDATA_BRKITR, ext.data(), dictnbuf.data(), &status);
     if (U_SUCCESS(status)) {
         // build trie
-        const uint8_t *data = (const uint8_t *)udata_getMemory(file);
-        const int32_t *indexes = (const int32_t *)data;
+        const uint8_t* data = static_cast<const uint8_t*>(udata_getMemory(file));
+        const int32_t* indexes = reinterpret_cast<const int32_t*>(data);
         const int32_t offset = indexes[DictionaryData::IX_STRING_TRIE_OFFSET];
         const int32_t trieType = indexes[DictionaryData::IX_TRIE_TYPE] & DictionaryData::TRIE_TYPE_MASK;
         DictionaryMatcher *m = nullptr;
         if (trieType == DictionaryData::TRIE_TYPE_BYTES) {
             const int32_t transform = indexes[DictionaryData::IX_TRANSFORM];
-            const char *characters = (const char *)(data + offset);
+            const char* characters = reinterpret_cast<const char*>(data + offset);
             m = new BytesDictionaryMatcher(characters, transform, file);
         }
         else if (trieType == DictionaryData::TRIE_TYPE_UCHARS) {
-            const char16_t *characters = (const char16_t *)(data + offset);
+            const char16_t* characters = reinterpret_cast<const char16_t*>(data + offset);
             m = new UCharsDictionaryMatcher(characters, file);
         }
         if (m == nullptr) {
@@ -339,12 +337,12 @@
     //   extends towards the start or end of the text, depending on 'reverse'.
 
     utext_setNativeIndex(text, startPos);
-    int32_t start = (int32_t)utext_getNativeIndex(text);
+    int32_t start = static_cast<int32_t>(utext_getNativeIndex(text));
     int32_t current;
     int32_t rangeStart;
     int32_t rangeEnd;
     UChar32 c = utext_current32(text);
-    while((current = (int32_t)utext_getNativeIndex(text)) < endPos && delegate->handles(c)) {
+    while ((current = static_cast<int32_t>(utext_getNativeIndex(text))) < endPos && delegate->handles(c)) {
         utext_next32(text);         // TODO:  recast loop for postincrement
         c = utext_current32(text);
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -85,7 +85,7 @@
         // Get the actual string
         brkfname = ures_getString(brkName, &size, &status);
         U_ASSERT((size_t)size<sizeof(fnbuff));
-        if ((size_t)size>=sizeof(fnbuff)) {
+        if (static_cast<size_t>(size) >= sizeof(fnbuff)) {
             size=0;
             if (U_SUCCESS(status)) {
                 status = U_BUFFER_OVERFLOW_ERROR;
@@ -99,7 +99,7 @@
             char16_t* extStart=u_strchr(brkfname, 0x002e);
             int len = 0;
             if (extStart != nullptr){
-                len = (int)(extStart-brkfname);
+                len = static_cast<int>(extStart - brkfname);
                 u_UCharsToChars(extStart+1, ext, sizeof(ext)); // nul terminates the buff
                 u_UCharsToChars(brkfname, fnbuff, len);
             }
@@ -438,9 +438,7 @@
             UTRACE_ENTRY(UTRACE_UBRK_CREATE_LINE);
             uprv_strcpy(lb_lw, "line");
             UErrorCode kvStatus = U_ZERO_ERROR;
-            CharString value;
-            CharStringByteSink valueSink(&value);
-            loc.getKeywordValue("lb", valueSink, kvStatus);
+            auto value = loc.getKeywordValue<CharString>("lb", kvStatus);
             if (U_SUCCESS(kvStatus) && (value == "strict" || value == "normal" || value == "loose")) {
                 uprv_strcat(lb_lw, "_");
                 uprv_strcat(lb_lw, value.data());
@@ -447,8 +445,7 @@
             }
             // lw=phrase is only supported in Japanese and Korean
             if (uprv_strcmp(loc.getLanguage(), "ja") == 0 || uprv_strcmp(loc.getLanguage(), "ko") == 0) {
-                value.clear();
-                loc.getKeywordValue("lw", valueSink, kvStatus);
+                value = loc.getKeywordValue<CharString>("lw", kvStatus);
                 if (U_SUCCESS(kvStatus) && value == "phrase") {
                     uprv_strcat(lb_lw, "_");
                     uprv_strcat(lb_lw, value.data());
@@ -500,7 +497,7 @@
 Locale
 BreakIterator::getLocale(ULocDataLocaleType type, UErrorCode& status) const {
     if (type == ULOC_REQUESTED_LOCALE) {
-        return Locale(requestLocale);
+        return {requestLocale};
     }
     U_LOCALE_BASED(locBased, *this);
     return locBased.getLocale(type, status);

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -64,7 +64,7 @@
         errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
         return false;
     }
-    return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode);
+    return appendChange(static_cast<int32_t>(limit - s), s16, s16Length, sink, edits, errorCode);
 }
 
 void
@@ -81,8 +81,8 @@
 namespace {
 
 // See unicode/utf8.h U8_APPEND_UNSAFE().
-inline uint8_t getTwoByteLead(UChar32 c) { return (uint8_t)((c >> 6) | 0xc0); }
-inline uint8_t getTwoByteTrail(UChar32 c) { return (uint8_t)((c & 0x3f) | 0x80); }
+inline uint8_t getTwoByteLead(UChar32 c) { return static_cast<uint8_t>((c >> 6) | 0xc0); }
+inline uint8_t getTwoByteTrail(UChar32 c) { return static_cast<uint8_t>((c & 0x3f) | 0x80); }
 
 }  // namespace
 
@@ -89,7 +89,7 @@
 void
 ByteSinkUtil::appendTwoBytes(UChar32 c, ByteSink &sink) {
     U_ASSERT(0x80 <= c && c <= 0x7ff);  // 2-byte UTF-8
-    char s8[2] = { (char)getTwoByteLead(c), (char)getTwoByteTrail(c) };
+    char s8[2] = {static_cast<char>(getTwoByteLead(c)), static_cast<char>(getTwoByteTrail(c))};
     sink.Append(s8, 2);
 }
 
@@ -114,7 +114,7 @@
         errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
         return false;
     }
-    int32_t length = (int32_t)(limit - s);
+    int32_t length = static_cast<int32_t>(limit - s);
     if (length > 0) {
         appendNonEmptyUnchanged(s, length, sink, options, edits);
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -7,18 +7,52 @@
 #ifndef BYTESINKUTIL_H
 #define BYTESINKUTIL_H
 
+#include <type_traits>
+
 #include "unicode/utypes.h"
 #include "unicode/bytestream.h"
 #include "unicode/edits.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "uassert.h"
+#include "ustr_imp.h"
 
 U_NAMESPACE_BEGIN
 
 class ByteSink;
-class CharString;
 class Edits;
 
+class U_COMMON_API CharStringByteSink : public ByteSink {
+public:
+    CharStringByteSink(CharString* dest);
+    ~CharStringByteSink() override;
+
+    CharStringByteSink() = delete;
+    CharStringByteSink(const CharStringByteSink&) = delete;
+    CharStringByteSink& operator=(const CharStringByteSink&) = delete;
+
+    void Append(const char* bytes, int32_t n) override;
+
+    char* GetAppendBuffer(int32_t min_capacity,
+                          int32_t desired_capacity_hint,
+                          char* scratch,
+                          int32_t scratch_capacity,
+                          int32_t* result_capacity) override;
+
+private:
+    CharString& dest_;
+};
+
+// CharString doesn't provide the public API that StringByteSink requires a
+// string class to have so this template specialization replaces the default
+// implementation of StringByteSink<CharString> with CharStringByteSink.
+template<>
+class StringByteSink<CharString> : public CharStringByteSink {
+ public:
+  StringByteSink(CharString* dest) : CharStringByteSink(dest) { }
+  StringByteSink(CharString* dest, int32_t /*initialAppendCapacity*/) : CharStringByteSink(dest) { }
+};
+
 class U_COMMON_API ByteSinkUtil {
 public:
     ByteSinkUtil() = delete;  // all static
@@ -39,7 +73,7 @@
     /** The few bytes at [src, nextSrc[ were mapped/changed to valid code point c. */
     static inline void appendCodePoint(const uint8_t *src, const uint8_t *nextSrc, UChar32 c,
                                        ByteSink &sink, Edits *edits = nullptr) {
-        appendCodePoint((int32_t)(nextSrc - src), c, sink, edits);
+        appendCodePoint(static_cast<int32_t>(nextSrc - src), c, sink, edits);
     }
 
     /** Append the two-byte character (U+0080..U+07FF). */
@@ -57,30 +91,64 @@
                                  ByteSink &sink, uint32_t options, Edits *edits,
                                  UErrorCode &errorCode);
 
-private:
-    static void appendNonEmptyUnchanged(const uint8_t *s, int32_t length,
-                                        ByteSink &sink, uint32_t options, Edits *edits);
-};
+    /**
+     * Calls a lambda that writes to a ByteSink with a CheckedArrayByteSink
+     * and then returns through u_terminateChars(), in order to implement
+     * the classic ICU4C C API writing to a fix sized buffer on top of a
+     * contemporary C++ API.
+     *
+     * @param buffer receiving buffer
+     * @param capacity capacity of receiving buffer
+     * @param lambda that gets called with the sink as an argument
+     * @param status set to U_BUFFER_OVERFLOW_ERROR on overflow
+     * @return number of bytes written, or needed (in case of overflow)
+     * @internal
+     */
+    template <typename F,
+              typename = std::enable_if_t<
+                  std::is_invocable_r_v<void, F, ByteSink&, UErrorCode&>>>
+    static int32_t viaByteSinkToTerminatedChars(char* buffer, int32_t capacity,
+                                                F&& lambda,
+                                                UErrorCode& status) {
+        if (U_FAILURE(status)) { return 0; }
+        CheckedArrayByteSink sink(buffer, capacity);
+        lambda(sink, status);
+        if (U_FAILURE(status)) { return 0; }
 
-class U_COMMON_API CharStringByteSink : public ByteSink {
-public:
-    CharStringByteSink(CharString* dest);
-    ~CharStringByteSink() override;
+        int32_t reslen = sink.NumberOfBytesAppended();
 
-    CharStringByteSink() = delete;
-    CharStringByteSink(const CharStringByteSink&) = delete;
-    CharStringByteSink& operator=(const CharStringByteSink&) = delete;
+        if (sink.Overflowed()) {
+            status = U_BUFFER_OVERFLOW_ERROR;
+            return reslen;
+        }
 
-    void Append(const char* bytes, int32_t n) override;
+        return u_terminateChars(buffer, capacity, reslen, &status);
+    }
 
-    char* GetAppendBuffer(int32_t min_capacity,
-                          int32_t desired_capacity_hint,
-                          char* scratch,
-                          int32_t scratch_capacity,
-                          int32_t* result_capacity) override;
+    /**
+     * Calls a lambda that writes to a ByteSink with a CharStringByteSink and
+     * then returns a CharString, in order to implement a contemporary C++ API
+     * on top of a C/C++ compatibility ByteSink API.
+     *
+     * @param lambda that gets called with the sink as an argument
+     * @param status to check and report
+     * @return the resulting string, or an empty string (in case of error)
+     * @internal
+     */
+    template <typename F,
+              typename = std::enable_if_t<
+                  std::is_invocable_r_v<void, F, ByteSink&, UErrorCode&>>>
+    static CharString viaByteSinkToCharString(F&& lambda, UErrorCode& status) {
+        if (U_FAILURE(status)) { return {}; }
+        CharString result;
+        CharStringByteSink sink(&result);
+        lambda(sink, status);
+        return result;
+    }
 
 private:
-    CharString& dest_;
+    static void appendNonEmptyUnchanged(const uint8_t *s, int32_t length,
+                                        ByteSink &sink, uint32_t options, Edits *edits);
 };
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -327,7 +327,7 @@
         ++pos;  // ignore a comparison byte
         // handle its value
         int32_t node=*pos++;
-        UBool isFinal=(UBool)(node&kValueIsFinal);
+        UBool isFinal = static_cast<UBool>(node & kValueIsFinal);
         int32_t value=readValue(pos, node>>1);
         pos=skipValue(pos, node);
         if(isFinal) {
@@ -366,7 +366,7 @@
             // linear-match node
             pos+=node-kMinLinearMatch+1;  // Ignore the match bytes.
         } else {
-            UBool isFinal=(UBool)(node&kValueIsFinal);
+            UBool isFinal = static_cast<UBool>(node & kValueIsFinal);
             int32_t value=readValue(pos, node>>1);
             if(haveUniqueValue) {
                 if(value!=uniqueValue) {
@@ -434,7 +434,7 @@
 
 void
 BytesTrie::append(ByteSink &out, int c) {
-    char ch=(char)c;
+    char ch = static_cast<char>(c);
     out.Append(&ch, 1);
 }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -43,10 +43,10 @@
         int32_t offset=stringOffset;
         int32_t length;
         if(offset>=0) {
-            length=(uint8_t)strings[offset++];
+            length = static_cast<uint8_t>(strings[offset++]);
         } else {
             offset=~offset;
-            length=((int32_t)(uint8_t)strings[offset]<<8)|(uint8_t)strings[offset+1];
+            length = (static_cast<int32_t>(static_cast<uint8_t>(strings[offset])) << 8) | static_cast<uint8_t>(strings[offset + 1]);
             offset+=2;
         }
         return StringPiece(strings.data()+offset, length);
@@ -54,10 +54,10 @@
     int32_t getStringLength(const CharString &strings) const {
         int32_t offset=stringOffset;
         if(offset>=0) {
-            return (uint8_t)strings[offset];
+            return static_cast<uint8_t>(strings[offset]);
         } else {
             offset=~offset;
-            return ((int32_t)(uint8_t)strings[offset]<<8)|(uint8_t)strings[offset+1];
+            return (static_cast<int32_t>(static_cast<uint8_t>(strings[offset])) << 8) | static_cast<uint8_t>(strings[offset + 1]);
         }
     }
 
@@ -102,9 +102,9 @@
     int32_t offset=strings.length();
     if(length>0xff) {
         offset=~offset;
-        strings.append((char)(length>>8), errorCode);
+        strings.append(static_cast<char>(length >> 8), errorCode);
     }
-    strings.append((char)length, errorCode);
+    strings.append(static_cast<char>(length), errorCode);
     stringOffset=offset;
     value=val;
     strings.append(s, errorCode);
@@ -229,7 +229,7 @@
             errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
             return;
         }
-        uprv_sortArray(elements, elementsLength, (int32_t)sizeof(BytesTrieElement),
+        uprv_sortArray(elements, elementsLength, static_cast<int32_t>(sizeof(BytesTrieElement)),
                       compareElementStrings, strings,
                       false,  // need not be a stable sort
                       &errorCode);
@@ -284,7 +284,7 @@
 
 char16_t
 BytesTrieBuilder::getElementUnit(int32_t i, int32_t byteIndex) const {
-    return (uint8_t)elements[i].charAt(byteIndex, *strings);
+    return static_cast<uint8_t>(elements[i].charAt(byteIndex, *strings));
 }
 
 int32_t
@@ -330,7 +330,7 @@
 
 int32_t
 BytesTrieBuilder::indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const {
-    char b=(char)byte;
+    char b = static_cast<char>(byte);
     while(b==elements[i].charAt(byteIndex, *strings)) {
         ++i;
     }
@@ -404,7 +404,7 @@
     int32_t newLength=bytesLength+1;
     if(ensureCapacity(newLength)) {
         bytesLength=newLength;
-        bytes[bytesCapacity-bytesLength]=(char)byte;
+        bytes[bytesCapacity - bytesLength] = static_cast<char>(byte);
     }
     return bytesLength;
 }
@@ -432,30 +432,30 @@
     char intBytes[5];
     int32_t length=1;
     if(i<0 || i>0xffffff) {
-        intBytes[0]=(char)BytesTrie::kFiveByteValueLead;
-        intBytes[1]=(char)((uint32_t)i>>24);
-        intBytes[2]=(char)((uint32_t)i>>16);
-        intBytes[3]=(char)((uint32_t)i>>8);
-        intBytes[4]=(char)i;
+        intBytes[0] = static_cast<char>(BytesTrie::kFiveByteValueLead);
+        intBytes[1] = static_cast<char>(static_cast<uint32_t>(i) >> 24);
+        intBytes[2] = static_cast<char>(static_cast<uint32_t>(i) >> 16);
+        intBytes[3] = static_cast<char>(static_cast<uint32_t>(i) >> 8);
+        intBytes[4] = static_cast<char>(i);
         length=5;
     // } else if(i<=BytesTrie::kMaxOneByteValue) {
     //     intBytes[0]=(char)(BytesTrie::kMinOneByteValueLead+i);
     } else {
         if(i<=BytesTrie::kMaxTwoByteValue) {
-            intBytes[0]=(char)(BytesTrie::kMinTwoByteValueLead+(i>>8));
+            intBytes[0] = static_cast<char>(BytesTrie::kMinTwoByteValueLead + (i >> 8));
         } else {
             if(i<=BytesTrie::kMaxThreeByteValue) {
-                intBytes[0]=(char)(BytesTrie::kMinThreeByteValueLead+(i>>16));
+                intBytes[0] = static_cast<char>(BytesTrie::kMinThreeByteValueLead + (i >> 16));
             } else {
-                intBytes[0]=(char)BytesTrie::kFourByteValueLead;
-                intBytes[1]=(char)(i>>16);
+                intBytes[0] = static_cast<char>(BytesTrie::kFourByteValueLead);
+                intBytes[1] = static_cast<char>(i >> 16);
                 length=2;
             }
-            intBytes[length++]=(char)(i>>8);
+            intBytes[length++] = static_cast<char>(i >> 8);
         }
-        intBytes[length++]=(char)i;
+        intBytes[length++] = static_cast<char>(i);
     }
-    intBytes[0]=(char)((intBytes[0]<<1)|isFinal);
+    intBytes[0] = static_cast<char>((intBytes[0] << 1) | isFinal);
     return write(intBytes, length);
 }
 
@@ -484,28 +484,28 @@
 BytesTrieBuilder::internalEncodeDelta(int32_t i, char intBytes[]) {
     U_ASSERT(i>=0);
     if(i<=BytesTrie::kMaxOneByteDelta) {
-        intBytes[0]=(char)i;
+        intBytes[0] = static_cast<char>(i);
         return 1;
     }
     int32_t length=1;
     if(i<=BytesTrie::kMaxTwoByteDelta) {
-        intBytes[0]=(char)(BytesTrie::kMinTwoByteDeltaLead+(i>>8));
+        intBytes[0] = static_cast<char>(BytesTrie::kMinTwoByteDeltaLead + (i >> 8));
     } else {
         if(i<=BytesTrie::kMaxThreeByteDelta) {
-            intBytes[0]=(char)(BytesTrie::kMinThreeByteDeltaLead+(i>>16));
+            intBytes[0] = static_cast<char>(BytesTrie::kMinThreeByteDeltaLead + (i >> 16));
         } else {
             if(i<=0xffffff) {
-                intBytes[0]=(char)BytesTrie::kFourByteDeltaLead;
+                intBytes[0] = static_cast<char>(BytesTrie::kFourByteDeltaLead);
             } else {
-                intBytes[0]=(char)BytesTrie::kFiveByteDeltaLead;
-                intBytes[1]=(char)(i>>24);
+                intBytes[0] = static_cast<char>(BytesTrie::kFiveByteDeltaLead);
+                intBytes[1] = static_cast<char>(i >> 24);
                 length=2;
             }
-            intBytes[length++]=(char)(i>>16);
+            intBytes[length++] = static_cast<char>(i >> 16);
         }
-        intBytes[length++]=(char)(i>>8);
+        intBytes[length++] = static_cast<char>(i >> 8);
     }
-    intBytes[length++]=(char)i;
+    intBytes[length++] = static_cast<char>(i);
     return length;
 }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -115,7 +115,7 @@
         pos=bytes_+stack_->elementAti(stackSize-2);
         stack_->setSize(stackSize-2);
         str_->truncate(length&0xffff);
-        length=(int32_t)((uint32_t)length>>16);
+        length = static_cast<int32_t>(static_cast<uint32_t>(length) >> 16);
         if(length>1) {
             pos=branchNext(pos, length, errorCode);
             if(pos==nullptr) {
@@ -122,7 +122,7 @@
                 return true;  // Reached a final value.
             }
         } else {
-            str_->append((char)*pos++, errorCode);
+            str_->append(static_cast<char>(*pos++), errorCode);
         }
     }
     if(remainingMatchLength_>=0) {
@@ -134,7 +134,7 @@
         int32_t node=*pos++;
         if(node>=kMinValueLead) {
             // Deliver value for the byte sequence so far.
-            UBool isFinal=(UBool)(node&kValueIsFinal);
+            UBool isFinal = static_cast<UBool>(node & kValueIsFinal);
             value_=readValue(pos, node>>1);
             if(isFinal || (maxLength_>0 && str_->length()==maxLength_)) {
                 pos_=nullptr;
@@ -186,7 +186,7 @@
     while(length>kMaxBranchLinearSubNodeLength) {
         ++pos;  // ignore the comparison byte
         // Push state for the greater-or-equal edge.
-        stack_->addElement((int32_t)(skipDelta(pos)-bytes_), errorCode);
+        stack_->addElement(static_cast<int32_t>(skipDelta(pos) - bytes_), errorCode);
         stack_->addElement(((length-(length>>1))<<16)|str_->length(), errorCode);
         // Follow the less-than edge.
         length>>=1;
@@ -196,12 +196,12 @@
     // Read the first (key, value) pair.
     uint8_t trieByte=*pos++;
     int32_t node=*pos++;
-    UBool isFinal=(UBool)(node&kValueIsFinal);
+    UBool isFinal = static_cast<UBool>(node & kValueIsFinal);
     int32_t value=readValue(pos, node>>1);
     pos=skipValue(pos, node);
-    stack_->addElement((int32_t)(pos-bytes_), errorCode);
+    stack_->addElement(static_cast<int32_t>(pos - bytes_), errorCode);
     stack_->addElement(((length-1)<<16)|str_->length(), errorCode);
-    str_->append((char)trieByte, errorCode);
+    str_->append(static_cast<char>(trieByte), errorCode);
     if(isFinal) {
         pos_=nullptr;
         value_=value;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -64,6 +64,7 @@
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CanonicalIterator)
 
+
 /**
  *@param source string to get results for
  */
@@ -73,10 +74,10 @@
     pieces_lengths(nullptr),
     current(nullptr),
     current_length(0),
-    nfd(*Normalizer2::getNFDInstance(status)),
-    nfcImpl(*Normalizer2Factory::getNFCImpl(status))
+    nfd(Normalizer2::getNFDInstance(status)),
+    nfcImpl(Normalizer2Factory::getNFCImpl(status))
 {
-    if(U_SUCCESS(status) && nfcImpl.ensureCanonIterData(status)) {
+    if(U_SUCCESS(status) && nfcImpl->ensureCanonIterData(status)) {
       setSource(sourceStr, status);
     }
 }
@@ -172,7 +173,7 @@
     int32_t i = 0;
     UnicodeString *list = nullptr;
 
-    nfd.normalize(newSource, source, status);
+    nfd->normalize(newSource, source, status);
     if(U_FAILURE(status)) {
       return;
     }
@@ -182,10 +183,10 @@
 
     // catch degenerate case
     if (newSource.length() == 0) {
-        pieces = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *));
-        pieces_lengths = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        pieces = static_cast<UnicodeString**>(uprv_malloc(sizeof(UnicodeString*)));
+        pieces_lengths = static_cast<int32_t*>(uprv_malloc(1 * sizeof(int32_t)));
         pieces_length = 1;
-        current = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        current = static_cast<int32_t*>(uprv_malloc(1 * sizeof(int32_t)));
         current_length = 1;
         if (pieces == nullptr || pieces_lengths == nullptr || current == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
@@ -194,7 +195,7 @@
         current[0] = 0;
         pieces[0] = new UnicodeString[1];
         pieces_lengths[0] = 1;
-        if (pieces[0] == 0) {
+        if (pieces[0] == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             goto CleanPartialInitialization;
         }
@@ -203,7 +204,7 @@
 
 
     list = new UnicodeString[source.length()];
-    if (list == 0) {
+    if (list == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         goto CleanPartialInitialization;
     }
@@ -219,7 +220,7 @@
     // on the NFD form - see above).
     for (; i < source.length(); i += U16_LENGTH(cp)) {
         cp = source.char32At(i);
-        if (nfcImpl.isCanonSegmentStarter(cp)) {
+        if (nfcImpl->isCanonSegmentStarter(cp)) {
             source.extract(start, i-start, list[list_length++]); // add up to i
             start = i;
         }
@@ -228,10 +229,10 @@
 
 
     // allocate the arrays, and find the strings that are CE to each segment
-    pieces = (UnicodeString **)uprv_malloc(list_length * sizeof(UnicodeString *));
+    pieces = static_cast<UnicodeString**>(uprv_malloc(list_length * sizeof(UnicodeString*)));
     pieces_length = list_length;
-    pieces_lengths = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
-    current = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    pieces_lengths = static_cast<int32_t*>(uprv_malloc(list_length * sizeof(int32_t)));
+    current = static_cast<int32_t*>(uprv_malloc(list_length * sizeof(int32_t)));
     current_length = list_length;
     if (pieces == nullptr || pieces_lengths == nullptr || current == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
@@ -252,9 +253,7 @@
     return;
 // Common section to cleanup all local variables and reset object variables.
 CleanPartialInitialization:
-    if (list != nullptr) {
-        delete[] list;
-    }
+    delete[] list;
     cleanPieces();
 }
 
@@ -264,10 +263,19 @@
  * @param source the string to find permutations for
  * @return the results in a set.
  */
-void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status) {
+void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status, int32_t depth) {
     if(U_FAILURE(status)) {
         return;
     }
+    // To avoid infinity loop caused by permute, we limit the depth of recursive
+    // call to permute and return U_UNSUPPORTED_ERROR.
+    // We know in some unit test we need at least 4. Set to 8 just in case some
+    // unforseen use cases.
+    constexpr int32_t kPermuteDepthLimit = 8;
+    if (depth > kPermuteDepthLimit) {
+        status = U_UNSUPPORTED_ERROR;
+        return;
+    }
     //if (PROGRESS) printf("Permute: %s\n", UToS(Tr(source)));
     int32_t i = 0;
 
@@ -277,7 +285,7 @@
     if (source.length() <= 2 && source.countChar32() <= 1) {
         UnicodeString *toPut = new UnicodeString(source);
         /* test for nullptr */
-        if (toPut == 0) {
+        if (toPut == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -311,7 +319,7 @@
 
         // see what the permutations of the characters before and after this one are
         //Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
-        permute(subPermuteString.remove(i, U16_LENGTH(cp)), skipZeros, &subpermute, status);
+        permute(subPermuteString.remove(i, U16_LENGTH(cp)), skipZeros, &subpermute, status, depth+1);
         /* Test for buffer overflows */
         if(U_FAILURE(status)) {
             return;
@@ -322,7 +330,7 @@
         // prefix this character to all of them
         ne = subpermute.nextElement(el);
         while (ne != nullptr) {
-            UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
+            UnicodeString* permRes = static_cast<UnicodeString*>(ne->value.pointer);
             UnicodeString *chStr = new UnicodeString(cp);
             //test for nullptr
             if (chStr == nullptr) {
@@ -346,7 +354,7 @@
     Hashtable permutations(status);
     Hashtable basic(status);
     if (U_FAILURE(status)) {
-        return 0;
+        return nullptr;
     }
     result.setValueDeleter(uprv_deleteUObject);
     permutations.setValueDeleter(uprv_deleteUObject);
@@ -355,6 +363,9 @@
     char16_t USeg[256];
     int32_t segLen = segment.extract(USeg, 256, status);
     getEquivalents2(&basic, USeg, segLen, status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
     // now get all the permutations
     // add only the ones that are canonically equivalent
@@ -367,7 +378,7 @@
     //while (it.hasNext())
     while (ne != nullptr) {
         //String item = (String) it.next();
-        UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+        UnicodeString item = *static_cast<UnicodeString*>(ne->value.pointer);
 
         permutations.removeAll();
         permute(item, CANITER_SKIP_ZEROES, &permutations, status);
@@ -379,9 +390,9 @@
         while (ne2 != nullptr) {
             //String possible = (String) it2.next();
             //UnicodeString *possible = new UnicodeString(*((UnicodeString *)(ne2->value.pointer)));
-            UnicodeString possible(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString possible(*static_cast<UnicodeString*>(ne2->value.pointer));
             UnicodeString attempt;
-            nfd.normalize(possible, attempt, status);
+            nfd->normalize(possible, attempt, status);
 
             // TODO: check if operator == is semanticaly the same as attempt.equals(segment)
             if (attempt==segment) {
@@ -399,7 +410,7 @@
 
     /* Test for buffer overflows */
     if(U_FAILURE(status)) {
-        return 0;
+        return nullptr;
     }
     // convert into a String[] to clean up storage
     //String[] finalResult = new String[result.size()];
@@ -407,7 +418,7 @@
     int32_t resultCount;
     if((resultCount = result.count()) != 0) {
         finalResult = new UnicodeString[resultCount];
-        if (finalResult == 0) {
+        if (finalResult == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return nullptr;
         }
@@ -421,7 +432,7 @@
     el = UHASH_FIRST;
     ne = result.nextElement(el);
     while(ne != nullptr) {
-        finalResult[result_len++] = *((UnicodeString *)(ne->value.pointer));
+        finalResult[result_len++] = *static_cast<UnicodeString*>(ne->value.pointer);
         ne = result.nextElement(el);
     }
 
@@ -448,7 +459,7 @@
     for (int32_t i = 0; i < segLen; i += U16_LENGTH(cp)) {
         // see if any character is at the start of some decomposition
         U16_GET(segment, 0, i, segLen, cp);
-        if (!nfcImpl.getCanonStartSet(cp, starts)) {
+        if (!nfcImpl->getCanonStartSet(cp, starts)) {
             continue;
         }
         // if so, see which decompositions match
@@ -458,6 +469,9 @@
             Hashtable remainder(status);
             remainder.setValueDeleter(uprv_deleteUObject);
             if (extract(&remainder, cp2, segment, segLen, i, status) == nullptr) {
+                if (U_FAILURE(status)) {
+                    return nullptr;
+                }
                 continue;
             }
 
@@ -468,10 +482,10 @@
             int32_t el = UHASH_FIRST;
             const UHashElement *ne = remainder.nextElement(el);
             while (ne != nullptr) {
-                UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+                UnicodeString item = *static_cast<UnicodeString*>(ne->value.pointer);
                 UnicodeString *toAdd = new UnicodeString(prefix);
                 /* test for nullptr */
-                if (toAdd == 0) {
+                if (toAdd == nullptr) {
                     status = U_MEMORY_ALLOCATION_ERROR;
                     return nullptr;
                 }
@@ -482,6 +496,13 @@
 
                 ne = remainder.nextElement(el);
             }
+            // ICU-22642 Guards against strings that have so many permutations
+            // that they would otherwise hang the function.
+            constexpr int32_t kResultLimit = 4096;
+            if (fillinResult->count() > kResultLimit) {
+                status = U_UNSUPPORTED_ERROR;
+                return nullptr;
+            }
         }
     }
 
@@ -509,7 +530,7 @@
     UnicodeString temp(comp);
     int32_t inputLen=temp.length();
     UnicodeString decompString;
-    nfd.normalize(temp, decompString, status);
+    nfd->normalize(temp, decompString, status);
     if (U_FAILURE(status)) {
         return nullptr;
     }
@@ -573,7 +594,7 @@
     // brute force approach
     // check to make sure result is canonically equivalent
     UnicodeString trial;
-    nfd.normalize(temp, trial, status);
+    nfd->normalize(temp, trial, status);
     if(U_FAILURE(status) || trial.compare(segment+segmentPos, segLen - segmentPos) != 0) {
         return nullptr;
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/characterproperties.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -58,17 +58,17 @@
 // Does not use uset.h to reduce code dependencies
 void U_CALLCONV
 _set_add(USet *set, UChar32 c) {
-    ((UnicodeSet *)set)->add(c);
+    reinterpret_cast<UnicodeSet*>(set)->add(c);
 }
 
 void U_CALLCONV
 _set_addRange(USet *set, UChar32 start, UChar32 end) {
-    ((UnicodeSet *)set)->add(start, end);
+    reinterpret_cast<UnicodeSet*>(set)->add(start, end);
 }
 
 void U_CALLCONV
 _set_addString(USet *set, const char16_t *str, int32_t length) {
-    ((UnicodeSet *)set)->add(icu::UnicodeString((UBool)(length<0), str, length));
+    reinterpret_cast<UnicodeSet*>(set)->add(icu::UnicodeString(static_cast<UBool>(length < 0), str, length));
 }
 
 UBool U_CALLCONV characterproperties_cleanup() {
@@ -103,7 +103,7 @@
         return;
     }
     USetAdder sa = {
-        (USet *)incl.getAlias(),
+        reinterpret_cast<USet*>(incl.getAlias()),
         _set_add,
         _set_addRange,
         _set_addString,
@@ -184,8 +184,12 @@
         sa.add(sa.set, 0x2FFF + 1);
         break;
     case UPROPS_SRC_ID_COMPAT_MATH:
+    case UPROPS_SRC_MCM:
         uprops_addPropertyStarts(src, &sa, &errorCode);
         break;
+    case UPROPS_SRC_BLOCK:
+        ublock_addPropertyStarts(&sa, errorCode);
+        break;
     default:
         errorCode = U_INTERNAL_PROGRAM_ERROR;
         break;
@@ -289,7 +293,7 @@
         const icu::EmojiProps *ep = icu::EmojiProps::getSingleton(errorCode);
         if (U_FAILURE(errorCode)) { return nullptr; }
         USetAdder sa = {
-            (USet *)set.getAlias(),
+            reinterpret_cast<USet*>(set.getAlias()),
             _set_add,
             _set_addRange,
             _set_addString,

Modified: trunk/Build/source/libs/icu/icu-src/source/common/charstr.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/charstr.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/charstr.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -104,6 +104,13 @@
      */
     int32_t extract(char *dest, int32_t capacity, UErrorCode &errorCode) const;
 
+    bool operator==(const CharString& other) const {
+        return len == other.length() && (len == 0 || uprv_memcmp(data(), other.data(), len) == 0);
+    }
+    bool operator!=(const CharString& other) const {
+        return !operator==(other);
+    }
+
     bool operator==(StringPiece other) const {
         return len == other.length() && (len == 0 || uprv_memcmp(data(), other.data(), len) == 0);
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj	2024-10-27 22:03:54 UTC (rev 72681)
@@ -35,7 +35,6 @@
     </Midl>
     <ClCompile>
       <PreprocessorDefinitions>U_ATTRIBUTE_DEPRECATED=;U_COMMON_IMPLEMENTATION;U_PLATFORM_USES_ONLY_WIN32_API=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <DisableLanguageExtensions>false</DisableLanguageExtensions>
       <WarningLevel>Level3</WarningLevel>
       <CompileAs>Default</CompileAs>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

Modified: trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -126,7 +126,7 @@
 
     if (str) {
         do
-            *str = (char)uprv_tolower(*str);
+            *str = uprv_tolower(*str);
         while (*(str++));
     }
 
@@ -140,7 +140,7 @@
 
     if (str) {
         do
-            *str = (char)uprv_toupper(*str);
+            *str = uprv_toupper(*str);
         while (*(str++));
     }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -61,12 +61,12 @@
     //   extends towards the start or end of the text, depending on 'reverse'.
 
     utext_setNativeIndex(text, startPos);
-    int32_t start = (int32_t)utext_getNativeIndex(text);
+    int32_t start = static_cast<int32_t>(utext_getNativeIndex(text));
     int32_t current;
     int32_t rangeStart;
     int32_t rangeEnd;
     UChar32 c = utext_current32(text);
-    while((current = (int32_t)utext_getNativeIndex(text)) < endPos && fSet.contains(c)) {
+    while ((current = static_cast<int32_t>(utext_getNativeIndex(text))) < endPos && fSet.contains(c)) {
         utext_next32(text);         // TODO:  recast loop for postincrement
         c = utext_current32(text);
     }
@@ -137,7 +137,7 @@
 
 int32_t PossibleWord::candidates( UText *text, DictionaryMatcher *dict, int32_t rangeEnd ) {
     // TODO: If getIndex is too slow, use offset < 0 and add discardAll()
-    int32_t start = (int32_t)utext_getNativeIndex(text);
+    int32_t start = static_cast<int32_t>(utext_getNativeIndex(text));
     if (start != offset) {
         offset = start;
         count = dict->matches(text, rangeEnd-start, UPRV_LENGTHOF(cuLengths), cuLengths, cpLengths, nullptr, &prefix);
@@ -253,7 +253,7 @@
     
     utext_setNativeIndex(text, rangeStart);
     
-    while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
+    while (U_SUCCESS(status) && (current = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd) {
         cpWordLength = 0;
         cuWordLength = 0;
 
@@ -269,7 +269,7 @@
         // If there was more than one, see which one can take us forward the most words
         else if (candidates > 1) {
             // If we're already at the end of the range, we're done
-            if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+            if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                 goto foundBest;
             }
             do {
@@ -278,7 +278,7 @@
                     words[wordsFound%THAI_LOOKAHEAD].markCurrent();
                     
                     // If we're already at the end of the range, we're done
-                    if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+                    if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                         goto foundBest;
                     }
                     
@@ -308,7 +308,7 @@
         // The text iterator should now be positioned at the end of the word we found.
         
         UChar32 uc = 0;
-        if ((int32_t)utext_getNativeIndex(text) < rangeEnd &&  cpWordLength < THAI_ROOT_COMBINE_THRESHOLD) {
+        if (static_cast<int32_t>(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < THAI_ROOT_COMBINE_THRESHOLD) {
             // if it is a dictionary word, do nothing. If it isn't, then if there is
             // no preceding word, or the non-word shares less than the minimum threshold
             // of characters with a dictionary word, then scan to resynchronize
@@ -320,9 +320,9 @@
                 UChar32 pc;
                 int32_t chars = 0;
                 for (;;) {
-                    int32_t pcIndex = (int32_t)utext_getNativeIndex(text);
+                    int32_t pcIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                     pc = utext_next32(text);
-                    int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex;
+                    int32_t pcSize = static_cast<int32_t>(utext_getNativeIndex(text)) - pcIndex;
                     chars += pcSize;
                     remaining -= pcSize;
                     if (remaining <= 0) {
@@ -356,19 +356,19 @@
                 utext_setNativeIndex(text, current+cuWordLength);
             }
         }
-        
+
         // Never stop before a combining mark.
         int32_t currPos;
-        while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+        while ((currPos = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
             utext_next32(text);
-            cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+            cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - currPos;
         }
-        
+
         // Look ahead for possible suffixes if a dictionary word does not follow.
         // We do this in code rather than using a rule so that the heuristic
         // resynch continues to function. For example, one of the suffix characters
         // could be a typo in the middle of a word.
-        if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cuWordLength > 0) {
+        if (static_cast<int32_t>(utext_getNativeIndex(text)) < rangeEnd && cuWordLength > 0) {
             if (words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) <= 0
                 && fSuffixSet.contains(uc = utext_current32(text))) {
                 if (uc == THAI_PAIYANNOI) {
@@ -375,9 +375,9 @@
                     if (!fSuffixSet.contains(utext_previous32(text))) {
                         // Skip over previous end and PAIYANNOI
                         utext_next32(text);
-                        int32_t paiyannoiIndex = (int32_t)utext_getNativeIndex(text);
+                        int32_t paiyannoiIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                         utext_next32(text);
-                        cuWordLength += (int32_t)utext_getNativeIndex(text) - paiyannoiIndex;    // Add PAIYANNOI to word
+                        cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - paiyannoiIndex; // Add PAIYANNOI to word
                         uc = utext_current32(text);     // Fetch next character
                     }
                     else {
@@ -389,9 +389,9 @@
                     if (utext_previous32(text) != THAI_MAIYAMOK) {
                         // Skip over previous end and MAIYAMOK
                         utext_next32(text);
-                        int32_t maiyamokIndex = (int32_t)utext_getNativeIndex(text);
+                        int32_t maiyamokIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                         utext_next32(text);
-                        cuWordLength += (int32_t)utext_getNativeIndex(text) - maiyamokIndex;    // Add MAIYAMOK to word
+                        cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - maiyamokIndex; // Add MAIYAMOK to word
                     }
                     else {
                         // Restore prior position
@@ -489,7 +489,7 @@
 
     utext_setNativeIndex(text, rangeStart);
 
-    while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
+    while (U_SUCCESS(status) && (current = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd) {
         cuWordLength = 0;
         cpWordLength = 0;
 
@@ -514,7 +514,7 @@
                     words[wordsFound%LAO_LOOKAHEAD].markCurrent();
                     
                     // If we're already at the end of the range, we're done
-                    if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+                    if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                         goto foundBest;
                     }
                     
@@ -541,7 +541,7 @@
         // just found (if there is one), but only if the preceding word does not exceed
         // the threshold.
         // The text iterator should now be positioned at the end of the word we found.
-        if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < LAO_ROOT_COMBINE_THRESHOLD) {
+        if (static_cast<int32_t>(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < LAO_ROOT_COMBINE_THRESHOLD) {
             // if it is a dictionary word, do nothing. If it isn't, then if there is
             // no preceding word, or the non-word shares less than the minimum threshold
             // of characters with a dictionary word, then scan to resynchronize
@@ -554,9 +554,9 @@
                 UChar32 uc;
                 int32_t chars = 0;
                 for (;;) {
-                    int32_t pcIndex = (int32_t)utext_getNativeIndex(text);
+                    int32_t pcIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                     pc = utext_next32(text);
-                    int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex;
+                    int32_t pcSize = static_cast<int32_t>(utext_getNativeIndex(text)) - pcIndex;
                     chars += pcSize;
                     remaining -= pcSize;
                     if (remaining <= 0) {
@@ -590,9 +590,9 @@
         
         // Never stop before a combining mark.
         int32_t currPos;
-        while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+        while ((currPos = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
             utext_next32(text);
-            cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+            cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - currPos;
         }
         
         // Look ahead for possible suffixes if a dictionary word does not follow.
@@ -682,7 +682,7 @@
 
     utext_setNativeIndex(text, rangeStart);
 
-    while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
+    while (U_SUCCESS(status) && (current = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd) {
         cuWordLength = 0;
         cpWordLength = 0;
 
@@ -707,7 +707,7 @@
                     words[wordsFound%BURMESE_LOOKAHEAD].markCurrent();
                     
                     // If we're already at the end of the range, we're done
-                    if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+                    if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                         goto foundBest;
                     }
                     
@@ -734,7 +734,7 @@
         // just found (if there is one), but only if the preceding word does not exceed
         // the threshold.
         // The text iterator should now be positioned at the end of the word we found.
-        if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < BURMESE_ROOT_COMBINE_THRESHOLD) {
+        if (static_cast<int32_t>(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < BURMESE_ROOT_COMBINE_THRESHOLD) {
             // if it is a dictionary word, do nothing. If it isn't, then if there is
             // no preceding word, or the non-word shares less than the minimum threshold
             // of characters with a dictionary word, then scan to resynchronize
@@ -747,9 +747,9 @@
                 UChar32 uc;
                 int32_t chars = 0;
                 for (;;) {
-                    int32_t pcIndex = (int32_t)utext_getNativeIndex(text);
+                    int32_t pcIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                     pc = utext_next32(text);
-                    int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex;
+                    int32_t pcSize = static_cast<int32_t>(utext_getNativeIndex(text)) - pcIndex;
                     chars += pcSize;
                     remaining -= pcSize;
                     if (remaining <= 0) {
@@ -783,9 +783,9 @@
         
         // Never stop before a combining mark.
         int32_t currPos;
-        while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+        while ((currPos = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
             utext_next32(text);
-            cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+            cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - currPos;
         }
         
         // Look ahead for possible suffixes if a dictionary word does not follow.
@@ -888,7 +888,7 @@
 
     utext_setNativeIndex(text, rangeStart);
 
-    while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
+    while (U_SUCCESS(status) && (current = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd) {
         cuWordLength = 0;
         cpWordLength = 0;
 
@@ -905,7 +905,7 @@
         // If there was more than one, see which one can take us forward the most words
         else if (candidates > 1) {
             // If we're already at the end of the range, we're done
-            if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+            if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                 goto foundBest;
             }
             do {
@@ -914,7 +914,7 @@
                     words[wordsFound % KHMER_LOOKAHEAD].markCurrent();
 
                     // If we're already at the end of the range, we're done
-                    if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+                    if (static_cast<int32_t>(utext_getNativeIndex(text)) >= rangeEnd) {
                         goto foundBest;
                     }
 
@@ -941,7 +941,7 @@
         // just found (if there is one), but only if the preceding word does not exceed
         // the threshold.
         // The text iterator should now be positioned at the end of the word we found.
-        if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < KHMER_ROOT_COMBINE_THRESHOLD) {
+        if (static_cast<int32_t>(utext_getNativeIndex(text)) < rangeEnd && cpWordLength < KHMER_ROOT_COMBINE_THRESHOLD) {
             // if it is a dictionary word, do nothing. If it isn't, then if there is
             // no preceding word, or the non-word shares less than the minimum threshold
             // of characters with a dictionary word, then scan to resynchronize
@@ -954,9 +954,9 @@
                 UChar32 uc;
                 int32_t chars = 0;
                 for (;;) {
-                    int32_t pcIndex = (int32_t)utext_getNativeIndex(text);
+                    int32_t pcIndex = static_cast<int32_t>(utext_getNativeIndex(text));
                     pc = utext_next32(text);
-                    int32_t pcSize = (int32_t)utext_getNativeIndex(text) - pcIndex;
+                    int32_t pcSize = static_cast<int32_t>(utext_getNativeIndex(text)) - pcIndex;
                     chars += pcSize;
                     remaining -= pcSize;
                     if (remaining <= 0) {
@@ -989,9 +989,9 @@
 
         // Never stop before a combining mark.
         int32_t currPos;
-        while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+        while ((currPos = static_cast<int32_t>(utext_getNativeIndex(text))) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
             utext_next32(text);
-            cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+            cuWordLength += static_cast<int32_t>(utext_getNativeIndex(text)) - currPos;
         }
 
         // Look ahead for possible suffixes if a dictionary word does not follow.
@@ -1120,7 +1120,7 @@
 //   Replicates an internal UText function.
 
 static inline int32_t utext_i32_flag(int32_t bitIndex) {
-    return (int32_t)1 << bitIndex;
+    return static_cast<int32_t>(1) << bitIndex;
 }
        
 /*
@@ -1167,7 +1167,7 @@
         int32_t limit = rangeEnd;
         U_ASSERT(limit <= utext_nativeLength(inText));
         if (limit > utext_nativeLength(inText)) {
-            limit = (int32_t)utext_nativeLength(inText);
+            limit = static_cast<int32_t>(utext_nativeLength(inText));
         }
         inputMap.adoptInsteadAndCheckErrorCode(new UVector32(status), status);
         if (U_FAILURE(status)) {
@@ -1174,7 +1174,7 @@
             return 0;
         }
         while (utext_getNativeIndex(inText) < limit) {
-            int32_t nativePosition = (int32_t)utext_getNativeIndex(inText);
+            int32_t nativePosition = static_cast<int32_t>(utext_getNativeIndex(inText));
             UChar32 c = utext_next32(inText);
             U_ASSERT(c != U_SENTINEL);
             inString.append(c);
@@ -1304,7 +1304,7 @@
     int32_t ix = 0;
     bool is_prev_katakana = false;
     for (int32_t i = 0;  i < numCodePts;  ++i, ix = inString.moveIndex32(ix, 1)) {
-        if ((uint32_t)bestSnlp.elementAti(i) == kuint32max) {
+        if (static_cast<uint32_t>(bestSnlp.elementAti(i)) == kuint32max) {
             continue;
         }
 
@@ -1327,9 +1327,9 @@
         }
 
         for (int32_t j = 0; j < count; j++) {
-            uint32_t newSnlp = (uint32_t)bestSnlp.elementAti(i) + (uint32_t)values.elementAti(j);
+            uint32_t newSnlp = static_cast<uint32_t>(bestSnlp.elementAti(i)) + static_cast<uint32_t>(values.elementAti(j));
             int32_t ln_j_i = lengths.elementAti(j) + i;
-            if (newSnlp < (uint32_t)bestSnlp.elementAti(ln_j_i)) {
+            if (newSnlp < static_cast<uint32_t>(bestSnlp.elementAti(ln_j_i))) {
                 bestSnlp.setElementAt(newSnlp, ln_j_i);
                 prev.setElementAt(i, ln_j_i);
             }
@@ -1353,7 +1353,7 @@
             }
             if (katakanaRunLength < kMaxKatakanaGroupLength) {
                 uint32_t newSnlp = bestSnlp.elementAti(i) + getKatakanaCost(katakanaRunLength);
-                if (newSnlp < (uint32_t)bestSnlp.elementAti(i+katakanaRunLength)) {
+                if (newSnlp < static_cast<uint32_t>(bestSnlp.elementAti(i + katakanaRunLength))) {
                     bestSnlp.setElementAt(newSnlp, i+katakanaRunLength);
                     prev.setElementAt(i, i+katakanaRunLength);  // prev[j] = i;
                 }
@@ -1371,7 +1371,7 @@
 
     int32_t numBreaks = 0;
     // No segmentation found, set boundary to end of range
-    if ((uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) {
+    if (static_cast<uint32_t>(bestSnlp.elementAti(numCodePts)) == kuint32max) {
         t_boundary.addElement(numCodePts, status);
         numBreaks++;
     } else if (isPhraseBreaking) {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -47,13 +47,13 @@
                             int32_t *prefix) const {
 
     UCharsTrie uct(characters);
-    int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text);
+    int32_t startingTextIndex = static_cast<int32_t>(utext_getNativeIndex(text));
     int32_t wordCount = 0;
     int32_t codePointsMatched = 0;
 
     for (UChar32 c = utext_next32(text); c >= 0; c=utext_next32(text)) {
         UStringTrieResult result = (codePointsMatched == 0) ? uct.first(c) : uct.next(c);
-        int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex;
+        int32_t lengthMatched = static_cast<int32_t>(utext_getNativeIndex(text)) - startingTextIndex;
         codePointsMatched += 1;
         if (USTRINGTRIE_HAS_VALUE(result)) {
             if (wordCount < limit) {
@@ -101,7 +101,7 @@
         if (delta < 0 || 0xFD < delta) {
             return U_SENTINEL;
         }
-        return (UChar32)delta;
+        return static_cast<UChar32>(delta);
     }
     return c;
 }
@@ -114,13 +114,13 @@
                             int32_t *lengths, int32_t *cpLengths, int32_t *values,
                             int32_t *prefix) const {
     BytesTrie bt(characters);
-    int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text);
+    int32_t startingTextIndex = static_cast<int32_t>(utext_getNativeIndex(text));
     int32_t wordCount = 0;
     int32_t codePointsMatched = 0;
 
     for (UChar32 c = utext_next32(text); c >= 0; c=utext_next32(text)) {
         UStringTrieResult result = (codePointsMatched == 0) ? bt.first(transform(c)) : bt.next(transform(c));
-        int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex;
+        int32_t lengthMatched = static_cast<int32_t>(utext_getNativeIndex(text)) - startingTextIndex;
         codePointsMatched += 1;
         if (USTRINGTRIE_HAS_VALUE(result)) {
             if (wordCount < limit) {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -47,7 +47,7 @@
         return *this;
     }
     if (length > capacity) {
-        uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)length * 2);
+        uint16_t* newArray = static_cast<uint16_t*>(uprv_malloc(static_cast<size_t>(length) * 2));
         if (newArray == nullptr) {
             length = delta = numChanges = 0;
             errorCode_ = U_MEMORY_ALLOCATION_ERROR;
@@ -186,23 +186,23 @@
             head |= oldLength << 6;
         } else if(oldLength <= 0x7fff) {
             head |= LENGTH_IN_1TRAIL << 6;
-            array[limit++] = (uint16_t)(0x8000 | oldLength);
+            array[limit++] = static_cast<uint16_t>(0x8000 | oldLength);
         } else {
             head |= (LENGTH_IN_2TRAIL + (oldLength >> 30)) << 6;
-            array[limit++] = (uint16_t)(0x8000 | (oldLength >> 15));
-            array[limit++] = (uint16_t)(0x8000 | oldLength);
+            array[limit++] = static_cast<uint16_t>(0x8000 | (oldLength >> 15));
+            array[limit++] = static_cast<uint16_t>(0x8000 | oldLength);
         }
         if(newLength < LENGTH_IN_1TRAIL) {
             head |= newLength;
         } else if(newLength <= 0x7fff) {
             head |= LENGTH_IN_1TRAIL;
-            array[limit++] = (uint16_t)(0x8000 | newLength);
+            array[limit++] = static_cast<uint16_t>(0x8000 | newLength);
         } else {
             head |= LENGTH_IN_2TRAIL + (newLength >> 30);
-            array[limit++] = (uint16_t)(0x8000 | (newLength >> 15));
-            array[limit++] = (uint16_t)(0x8000 | newLength);
+            array[limit++] = static_cast<uint16_t>(0x8000 | (newLength >> 15));
+            array[limit++] = static_cast<uint16_t>(0x8000 | newLength);
         }
-        array[length] = (uint16_t)head;
+        array[length] = static_cast<uint16_t>(head);
         length = limit;
     }
 }
@@ -209,7 +209,7 @@
 
 void Edits::append(int32_t r) {
     if(length < capacity || growArray()) {
-        array[length++] = (uint16_t)r;
+        array[length++] = static_cast<uint16_t>(r);
     }
 }
 
@@ -232,7 +232,7 @@
         errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR;
         return false;
     }
-    uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)newCapacity * 2);
+    uint16_t* newArray = static_cast<uint16_t*>(uprv_malloc(static_cast<size_t>(newCapacity) * 2));
     if (newArray == nullptr) {
         errorCode_ = U_MEMORY_ALLOCATION_ERROR;
         return false;
@@ -415,7 +415,7 @@
         U_ASSERT(array[index] >= 0x8000);
         U_ASSERT(array[index + 1] >= 0x8000);
         int32_t len = ((head & 1) << 30) |
-                ((int32_t)(array[index] & 0x7fff) << 15) |
+                (static_cast<int32_t>(array[index] & 0x7fff) << 15) |
                 (array[index + 1] & 0x7fff);
         index += 2;
         return len;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/emojiprops.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/emojiprops.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/emojiprops.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -83,8 +83,8 @@
 EmojiProps::load(UErrorCode &errorCode) {
     memory = udata_openChoice(nullptr, "icu", "uemoji", isAcceptable, this, &errorCode);
     if (U_FAILURE(errorCode)) { return; }
-    const uint8_t *inBytes = (const uint8_t *)udata_getMemory(memory);
-    const int32_t *inIndexes = (const int32_t *)inBytes;
+    const uint8_t* inBytes = static_cast<const uint8_t*>(udata_getMemory(memory));
+    const int32_t* inIndexes = reinterpret_cast<const int32_t*>(inBytes);
     int32_t indexesLength = inIndexes[IX_CPTRIE_OFFSET] / 4;
     if (indexesLength <= IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET) {
         errorCode = U_INVALID_FORMAT_ERROR;  // Not enough indexes.
@@ -104,7 +104,7 @@
         offset = inIndexes[i];
         nextOffset = inIndexes[i + 1];
         // Set/leave nullptr if there is no UCharsTrie.
-        const char16_t *p = nextOffset > offset ? (const char16_t *)(inBytes + offset) : nullptr;
+        const char16_t* p = nextOffset > offset ? reinterpret_cast<const char16_t*>(inBytes + offset) : nullptr;
         stringTries[getStringTrieIndex(i)] = p;
     }
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -50,8 +50,8 @@
  * Used with sortedInsert()
  */
 static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) {
-    const UnicodeString &a = *(const UnicodeString*)t1.pointer;
-    const UnicodeString &b = *(const UnicodeString*)t2.pointer;
+    const UnicodeString& a = *static_cast<const UnicodeString*>(t1.pointer);
+    const UnicodeString& b = *static_cast<const UnicodeString*>(t2.pointer);
     return a.compare(b);
 }
 
@@ -76,7 +76,7 @@
    * Return the ith UnicodeString alias
    */
   inline const UnicodeString* getStringAt(int32_t i) const {
-    return (const UnicodeString*)elementAt(i);
+    return static_cast<const UnicodeString*>(elementAt(i));
   }
   /**
    * Adopt the UnicodeString if not already contained.
@@ -147,7 +147,7 @@
         if(umtx_atomic_dec(&refcount) <= 0) {
             delete this;
         }
-        return 0;
+        return nullptr;
     }
     virtual ~SimpleFilteredSentenceBreakData();
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/hash.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/hash.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/hash.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -148,12 +148,12 @@
 }
 
 inline Hashtable::Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp,
-                 UErrorCode& status) : hash(0) {
+                 UErrorCode& status) : hash(nullptr) {
     init( uhash_hashUnicodeString, keyComp, valueComp, status);
 }
 
 inline Hashtable::Hashtable(UBool ignoreKeyCase, UErrorCode& status)
- : hash(0)
+ : hash(nullptr)
 {
     init(ignoreKeyCase ? uhash_hashCaselessUnicodeString
                         : uhash_hashUnicodeString,
@@ -164,7 +164,7 @@
 }
 
 inline Hashtable::Hashtable(UBool ignoreKeyCase, int32_t size, UErrorCode& status)
- : hash(0)
+ : hash(nullptr)
 {
     initSize(ignoreKeyCase ? uhash_hashCaselessUnicodeString
                         : uhash_hashUnicodeString,
@@ -175,13 +175,13 @@
 }
 
 inline Hashtable::Hashtable(UErrorCode& status)
- : hash(0)
+ : hash(nullptr)
 {
     init(uhash_hashUnicodeString, uhash_compareUnicodeString, nullptr, status);
 }
 
 inline Hashtable::Hashtable()
- : hash(0)
+ : hash(nullptr)
 {
     UErrorCode status = U_ZERO_ERROR;
     init(uhash_hashUnicodeString, uhash_compareUnicodeString, nullptr, status);

Modified: trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -747,7 +747,7 @@
     FILE *f;
         
     CharString pluginFile;
-#ifdef OS390BATCH
+#ifdef ICU_PLUGINS_DD
 /* There are potentially a lot of ways to implement a plugin directory on OS390/zOS  */
 /* Keeping in mind that unauthorized file access is logged, monitored, and enforced  */
 /* I've chosen to open a DDNAME if BATCH and leave it alone for (presumably) UNIX    */

Modified: trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -63,7 +63,7 @@
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        pInfo->formatVersion[0]==4
+        pInfo->formatVersion[0]==5
     ) {
         // Normalizer2Impl *me=(Normalizer2Impl *)context;
         // uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4);
@@ -82,8 +82,8 @@
     if(U_FAILURE(errorCode)) {
         return;
     }
-    const uint8_t *inBytes=(const uint8_t *)udata_getMemory(memory);
-    const int32_t *inIndexes=(const int32_t *)inBytes;
+    const uint8_t* inBytes = static_cast<const uint8_t*>(udata_getMemory(memory));
+    const int32_t* inIndexes = reinterpret_cast<const int32_t*>(inBytes);
     int32_t indexesLength=inIndexes[IX_NORM_TRIE_OFFSET]/4;
     if(indexesLength<=IX_MIN_LCCC_CP) {
         errorCode=U_INVALID_FORMAT_ERROR;  // Not enough indexes.
@@ -101,7 +101,7 @@
 
     offset=nextOffset;
     nextOffset=inIndexes[IX_SMALL_FCD_OFFSET];
-    const uint16_t *inExtraData=(const uint16_t *)(inBytes+offset);
+    const uint16_t* inExtraData = reinterpret_cast<const uint16_t*>(inBytes + offset);
 
     // smallFCD: new in formatVersion 2
     offset=nextOffset;
@@ -311,7 +311,7 @@
         {
             Mutex lock;
             if(cache!=nullptr) {
-                allModes=(Norm2AllModes *)uhash_get(cache, name);
+                allModes = static_cast<Norm2AllModes*>(uhash_get(cache, name));
             }
         }
         if(allModes==nullptr) {
@@ -331,7 +331,7 @@
                 void *temp=uhash_get(cache, name);
                 if(temp==nullptr) {
                     int32_t keyLength= static_cast<int32_t>(uprv_strlen(name)+1);
-                    char *nameCopy=(char *)uprv_malloc(keyLength);
+                    char* nameCopy = static_cast<char*>(uprv_malloc(keyLength));
                     if(nameCopy==nullptr) {
                         errorCode=U_MEMORY_ALLOCATION_ERROR;
                         return nullptr;
@@ -341,7 +341,7 @@
                     uhash_put(cache, nameCopy, localAllModes.orphan(), &errorCode);
                 } else {
                     // race condition
-                    allModes=(Norm2AllModes *)temp;
+                    allModes = static_cast<Norm2AllModes*>(temp);
                 }
             }
         }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/localebuilder.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/localebuilder.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/localebuilder.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -1,9 +1,11 @@
 // © 2019 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 
+#include <optional>
+#include <string_view>
 #include <utility>
 
-#include "bytesinkutil.h"  // CharStringByteSink
+#include "bytesinkutil.h"  // StringByteSink<CharString>
 #include "charstr.h"
 #include "cstring.h"
 #include "ulocimp.h"
@@ -10,14 +12,14 @@
 #include "unicode/localebuilder.h"
 #include "unicode/locid.h"
 
-U_NAMESPACE_BEGIN
+namespace {
 
-#define UPRV_ISDIGIT(c) (((c) >= '0') && ((c) <= '9'))
-#define UPRV_ISALPHANUM(c) (uprv_isASCIILetter(c) || UPRV_ISDIGIT(c) )
+inline bool UPRV_ISDIGIT(char c) { return c >= '0' && c <= '9'; }
+inline bool UPRV_ISALPHANUM(char c) { return uprv_isASCIILetter(c) || UPRV_ISDIGIT(c); }
 
 constexpr const char* kAttributeKey = "attribute";
 
-static bool _isExtensionSubtags(char key, const char* s, int32_t len) {
+bool _isExtensionSubtags(char key, const char* s, int32_t len) {
     switch (uprv_tolower(key)) {
         case 'u':
             return ultag_isUnicodeExtensionSubtags(s, len);
@@ -30,6 +32,10 @@
     }
 }
 
+}  // namespace
+
+U_NAMESPACE_BEGIN
+
 LocaleBuilder::LocaleBuilder() : UObject(), status_(U_ZERO_ERROR), language_(),
     script_(), region_(), variant_(nullptr), extensions_(nullptr)
 {
@@ -68,8 +74,10 @@
     return *this;
 }
 
-static void setField(StringPiece input, char* dest, UErrorCode& errorCode,
-                     UBool (*test)(const char*, int32_t)) {
+namespace {
+
+void setField(StringPiece input, char* dest, UErrorCode& errorCode,
+              bool (*test)(const char*, int32_t)) {
     if (U_FAILURE(errorCode)) { return; }
     if (input.empty()) {
         dest[0] = '\0';
@@ -81,6 +89,8 @@
     }
 }
 
+}  // namespace
+
 LocaleBuilder& LocaleBuilder::setLanguage(StringPiece language)
 {
     setField(language, language_, status_, &ultag_isLanguageSubtag);
@@ -99,7 +109,9 @@
     return *this;
 }
 
-static void transform(char* data, int32_t len) {
+namespace {
+
+void transform(char* data, int32_t len) {
     for (int32_t i = 0; i < len; i++, data++) {
         if (*data == '_') {
             *data = '-';
@@ -109,6 +121,8 @@
     }
 }
 
+}  // namespace
+
 LocaleBuilder& LocaleBuilder::setVariant(StringPiece variant)
 {
     if (U_FAILURE(status_)) { return *this; }
@@ -134,7 +148,9 @@
     return *this;
 }
 
-static bool
+namespace {
+
+bool
 _isKeywordValue(const char* key, const char* value, int32_t value_len)
 {
     if (key[1] == '\0') {
@@ -148,15 +164,18 @@
     // otherwise: unicode extension value
     // We need to convert from legacy key/value to unicode
     // key/value
-    const char* unicode_locale_key = uloc_toUnicodeLocaleKey(key);
-    const char* unicode_locale_type = uloc_toUnicodeLocaleType(key, value);
+    std::optional<std::string_view> unicode_locale_key = ulocimp_toBcpKeyWithFallback(key);
+    std::optional<std::string_view> unicode_locale_type = ulocimp_toBcpTypeWithFallback(key, value);
 
-    return unicode_locale_key && unicode_locale_type &&
-           ultag_isUnicodeLocaleKey(unicode_locale_key, -1) &&
-           ultag_isUnicodeLocaleType(unicode_locale_type, -1);
+    return unicode_locale_key.has_value() &&
+           unicode_locale_type.has_value() &&
+           ultag_isUnicodeLocaleKey(unicode_locale_key->data(),
+                                    static_cast<int32_t>(unicode_locale_key->size())) &&
+           ultag_isUnicodeLocaleType(unicode_locale_type->data(),
+                                     static_cast<int32_t>(unicode_locale_type->size()));
 }
 
-static void
+void
 _copyExtensions(const Locale& from, icu::StringEnumeration *keywords,
                 Locale& to, bool validate, UErrorCode& errorCode)
 {
@@ -169,9 +188,7 @@
     }
     const char* key;
     while ((key = keywords->next(nullptr, errorCode)) != nullptr) {
-        CharString value;
-        CharStringByteSink sink(&value);
-        from.getKeywordValue(key, sink, errorCode);
+        auto value = from.getKeywordValue<CharString>(key, errorCode);
         if (U_FAILURE(errorCode)) { return; }
         if (uprv_strcmp(key, kAttributeKey) == 0) {
             transform(value.data(), value.length());
@@ -186,9 +203,10 @@
     }
 }
 
-void static
+void
 _clearUAttributesAndKeyType(Locale& locale, UErrorCode& errorCode)
 {
+    if (U_FAILURE(errorCode)) { return; }
     // Clear Unicode attributes
     locale.setKeywordValue(kAttributeKey, "", errorCode);
 
@@ -201,9 +219,10 @@
     }
 }
 
-static void
+void
 _setUnicodeExtensions(Locale& locale, const CharString& value, UErrorCode& errorCode)
 {
+    if (U_FAILURE(errorCode)) { return; }
     // Add the unicode extensions to extensions_
     CharString locale_str("und-u-", errorCode);
     locale_str.append(value, errorCode);
@@ -212,6 +231,8 @@
         locale, false, errorCode);
 }
 
+}  // namespace
+
 LocaleBuilder& LocaleBuilder::setExtension(char key, StringPiece value)
 {
     if (U_FAILURE(status_)) { return *this; }
@@ -289,10 +310,8 @@
         return *this;
     }
 
-    CharString attributes;
-    CharStringByteSink sink(&attributes);
     UErrorCode localErrorCode = U_ZERO_ERROR;
-    extensions_->getKeywordValue(kAttributeKey, sink, localErrorCode);
+    auto attributes = extensions_->getKeywordValue<CharString>(kAttributeKey, localErrorCode);
     if (U_FAILURE(localErrorCode)) {
         CharString new_attributes(value_str.data(), status_);
         // No attributes, set the attribute.
@@ -344,9 +363,7 @@
     }
     if (extensions_ == nullptr) { return *this; }
     UErrorCode localErrorCode = U_ZERO_ERROR;
-    CharString attributes;
-    CharStringByteSink sink(&attributes);
-    extensions_->getKeywordValue(kAttributeKey, sink, localErrorCode);
+    auto attributes = extensions_->getKeywordValue<CharString>(kAttributeKey, localErrorCode);
     // get failure, just return
     if (U_FAILURE(localErrorCode)) { return *this; }
     // Do not have any attributes, just return.

Modified: trunk/Build/source/libs/icu/icu-src/source/common/localefallback_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/localefallback_data.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/localefallback_data.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -15,104 +15,105 @@
     "Brah\0Cakm\0Cans\0Cari\0Cham\0Cher\0Chrs\0Copt\0Cprt\0Cyrl\0Deva\0"
     "Egyp\0Elym\0Ethi\0Geor\0Gong\0Gonm\0Goth\0Gran\0Grek\0Gujr\0Guru\0"
     "Hang\0Hani\0Hans\0Hant\0Hebr\0Hluw\0Hmnp\0Ital\0Java\0Jpan\0Kali\0"
-    "Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Lepc\0Lina\0"
-    "Linb\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Marc\0Medf\0Merc\0Mlym\0Modi\0"
-    "Mong\0Mroo\0Mtei\0Mymr\0Narb\0Newa\0Nkoo\0Nshu\0Ogam\0Olck\0Orkh\0"
-    "Orya\0Osge\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rjng\0Rohg\0Runr\0Samr\0"
-    "Sarb\0Saur\0Sgnw\0Sinh\0Sogd\0Sora\0Soyo\0Syrc\0Tagb\0Takr\0Tale\0"
-    "Talu\0Taml\0Tang\0Tavt\0Telu\0Tfng\0Thaa\0Thai\0Tibt\0Tnsa\0Toto\0"
-    "Ugar\0Vaii\0Wcho\0Xpeo\0Xsux\0Yiii\0";
+    "Kana\0Kawi\0Khar\0Khmr\0Kits\0Knda\0Kore\0Lana\0Laoo\0Latf\0Latg\0"
+    "Lepc\0Lina\0Linb\0Lisu\0Lyci\0Lydi\0Mand\0Mani\0Marc\0Medf\0Merc\0"
+    "Mlym\0Modi\0Mong\0Mroo\0Mtei\0Mymr\0Narb\0Newa\0Nkoo\0Nshu\0Ogam\0"
+    "Olck\0Orkh\0Orya\0Osge\0Ougr\0Pauc\0Phli\0Phnx\0Plrd\0Prti\0Rjng\0"
+    "Rohg\0Runr\0Samr\0Sarb\0Saur\0Sgnw\0Sinh\0Sogd\0Sora\0Soyo\0Sunu\0"
+    "Syrc\0Tagb\0Takr\0Tale\0Talu\0Taml\0Tang\0Tavt\0Telu\0Tfng\0Thaa\0"
+    "Thai\0Tibt\0Tnsa\0Toto\0Ugar\0Vaii\0Wcho\0Xpeo\0Xsux\0Yiii\0";
 
 const char dsLocaleIDChars[] =
     "aaf\0aao\0aat\0ab\0abh\0abl\0abv\0acm\0acq\0acw\0acx\0adf\0adx\0"
     "ady\0ae\0aeb\0aec\0aee\0aeq\0afb\0agi\0agj\0agx\0ahg\0aho\0ahr\0"
-    "aib\0aij\0ain\0aio\0aiq\0ajp\0akk\0akv\0alk\0all\0alr\0alt\0alw\0"
-    "am\0ams\0amw\0ani\0anp\0anr\0anu\0aot\0apc\0apd\0aph\0aqc\0ar\0"
-    "arc\0arq\0ars\0ary\0arz\0as\0ase\0ask\0atn\0atv\0auj\0auz\0av\0"
-    "avd\0avl\0awa\0awn\0axm\0ayh\0ayl\0ayn\0ayp\0az_IQ\0az_IR\0az_RU\0"
-    "azb\0ba\0bal\0bap\0bax\0bbl\0bcq\0bdv\0bdz\0be\0bee\0bej\0bfb\0"
-    "bfq\0bft\0bfu\0bfw\0bfy\0bfz\0bg\0bgc\0bgd\0bgn\0bgp\0bgq\0bgw\0"
-    "bgx\0bha\0bhb\0bhd\0bhe\0bhh\0bhi\0bhj\0bhm\0bhn\0bho\0bht\0bhu\0"
-    "biy\0bjf\0bjj\0bjm\0blk\0blt\0bmj\0bn\0bns\0bo\0bph\0bpx\0bpy\0"
-    "bqi\0bra\0brb\0brd\0brh\0brk\0brv\0brx\0bsh\0bsk\0bsq\0bst\0btd\0"
-    "btm\0btv\0bua\0bwe\0bxm\0bxu\0byh\0byn\0byw\0bzi\0cbn\0ccp\0cde\0"
-    "cdh\0cdi\0cdj\0cdm\0cdo\0cdz\0ce\0cgk\0chg\0chm\0chr\0chx\0cih\0"
-    "cja\0cji\0cjm\0cjy\0ckb\0ckt\0clh\0clw\0cmg\0cna\0cnp\0cog\0cop\0"
-    "cpg\0cr\0crh\0crj\0crk\0crl\0crm\0csh\0csp\0csw\0ctd\0ctg\0ctn\0"
-    "ctt\0cu\0cuu\0cv\0czh\0czk\0daq\0dar\0dcc\0ddo\0def\0deh\0der\0"
-    "dhi\0dhn\0dho\0dhw\0dka\0dlg\0dmf\0dmk\0dml\0dng\0dnu\0dnv\0doi\0"
-    "dox\0dre\0drq\0drs\0dry\0dso\0dty\0dub\0duh\0dus\0dv\0dwk\0dwz\0"
-    "dz\0dzl\0ecr\0ecy\0egy\0eky\0el\0emg\0emu\0enf\0enh\0era\0esg\0"
-    "esh\0ett\0eve\0evn\0fa\0fay\0faz\0fia\0fmu\0fub\0gan\0gaq\0gas\0"
-    "gau\0gbj\0gbk\0gbl\0gbm\0gbz\0gdb\0gdo\0gdx\0gez\0ggg\0gha\0ghe\0"
-    "ghr\0ght\0gig\0gin\0gjk\0gju\0gld\0glh\0glk\0gmv\0gmy\0goe\0gof\0"
-    "gok\0gom\0gon\0got\0gra\0grc\0grt\0gru\0gu\0gvr\0gwc\0gwf\0gwt\0"
-    "gyo\0gzi\0ha_CM\0ha_SD\0hac\0hak\0har\0haz\0hbo\0hdy\0he\0hi\0"
-    "hii\0hit\0hkh\0hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hnj_AU\0"
-    "hnj_CN\0hnj_FR\0hnj_GF\0hnj_LA\0hnj_MM\0hnj_SR\0hnj_TH\0hnj_VN\0"
-    "hno\0hoc\0hoh\0hoj\0how\0hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0"
-    "huy\0huz\0hy\0hyw\0ii\0imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0"
-    "iu\0iw\0ja\0jad\0jat\0jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0"
-    "ji\0jje\0jkm\0jml\0jna\0jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jrb_MA\0"
-    "jul\0jun\0juy\0jya\0jye\0ka\0kaa\0kap\0kaw\0kbd\0kbu\0kby\0kca\0"
-    "kdq\0kdt\0ket\0kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfh\0kfi\0kfk\0"
-    "kfm\0kfp\0kfq\0kfr\0kfs\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0khn\0"
-    "kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0kjt\0kk\0"
-    "kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0klj\0klr\0km\0"
-    "kmj\0kmz\0kn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0kqy\0kra\0krc\0krk\0"
-    "krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0ktl\0ktp\0ku_LB\0kuf\0"
-    "kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0kxk\0kxm\0kxp\0ky\0ky_CN\0"
-    "kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0lbc\0lbe\0lbf\0lbj\0lbm\0lbo\0"
-    "lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0lkh\0lki\0lmh\0lmn\0lo\0"
-    "loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0luk\0luu\0luv\0luz\0lwl\0"
-    "lwm\0lya\0lzh\0mag\0mai\0man_GN\0mby\0mde\0mdf\0mdx\0mdy\0mfa\0"
-    "mfi\0mgp\0mhj\0mid\0mjl\0mjq\0mjr\0mjt\0mju\0mjv\0mjz\0mk\0mkb\0"
-    "mke\0mki\0mkm\0ml\0mlf\0mn\0mn_CN\0mni\0mnj\0mns\0mnw\0mpz\0mr\0"
-    "mra\0mrd\0mrj\0mro\0mrr\0ms_CC\0mtm\0mtr\0mud\0muk\0mut\0muv\0"
-    "muz\0mvf\0mvy\0mvz\0mwr\0mwt\0mww\0my\0mym\0myv\0myz\0mzn\0nan\0"
-    "nao\0ncd\0ncq\0ndf\0ne\0neg\0neh\0nei\0new\0ngt\0nio\0nit\0niv\0"
-    "nli\0nlm\0nlx\0nmm\0nnp\0nod\0noe\0nog\0noi\0non\0nos\0npb\0nqo\0"
-    "nsd\0nsf\0nsk\0nst\0nsv\0nty\0ntz\0nwc\0nwx\0nyl\0nyq\0oaa\0oac\0"
-    "oar\0oav\0obm\0obr\0odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0ole\0"
-    "omk\0omp\0omr\0oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0osi\0ota\0"
-    "otb\0otk\0oty\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0pce\0pcf\0pcg\0"
-    "pch\0pci\0pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0phk\0phl\0phn\0"
-    "pho\0phr\0pht\0phv\0phw\0pi\0pka\0pkr\0plk\0pll\0pmh\0pnt\0pra\0"
-    "prc\0prd\0prp\0prt\0prx\0ps\0psh\0psi\0pst\0pum\0pwo\0pwr\0pww\0"
-    "pyx\0qxq\0raa\0rab\0raf\0rah\0raj\0rav\0rbb\0rdb\0rei\0rhg\0rji\0"
-    "rjs\0rka\0rki\0rkt\0rmi\0rmt\0rmz\0rom_BG\0rsk\0rtw\0ru\0rue\0"
-    "rut\0rwr\0ryu\0sa\0sah\0sam\0sat\0saz\0sbn\0sbu\0sck\0scl\0scl_IN\0"
-    "scp\0sct\0scu\0scx\0sd\0sd_IN\0sdb\0sdf\0sdg\0sdh\0sds\0sel\0"
-    "sfm\0sga\0sgh\0sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0shm\0shn\0shu\0"
-    "shv\0si\0sia\0sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0skj\0skr\0slq\0"
-    "smh\0smp\0smu\0smy\0soa\0sog\0soi\0sou\0spt\0spv\0sqo\0sqq\0sqt\0"
-    "sr\0srb\0srh\0srx\0srz\0ssh\0sss\0sts\0stv\0sty\0suz\0sva\0swb\0"
-    "swi\0swv\0syc\0syl\0syn\0syr\0syw\0ta\0tab\0taj\0tbk\0tcn\0tco\0"
-    "tcx\0tcy\0tda\0tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0tg_PK\0tge\0tgf\0"
-    "th\0the\0thf\0thi\0thl\0thm\0thq\0thr\0ths\0ti\0tig\0tij\0tin\0"
-    "tjl\0tjo\0tkb\0tks\0tkt\0tmk\0tmr\0tnv\0tov\0tpu\0tra\0trg\0trm\0"
-    "trw\0tsd\0tsj\0tt\0tth\0tto\0tts\0tvn\0twm\0txg\0txo\0tyr\0tyv\0"
-    "ude\0udg\0udi\0udm\0ug\0ug_KZ\0ug_MN\0uga\0ugh\0ugo\0uk\0uki\0"
-    "ulc\0unr\0unr_NP\0unx\0ur\0urk\0ush\0uum\0uz_AF\0uz_CN\0uzs\0"
-    "vaa\0vaf\0vah\0vai\0vas\0vav\0vay\0vgr\0vmd\0vmh\0wal\0wbk\0wbq\0"
-    "wbr\0wlo\0wme\0wne\0wni\0wsg\0wsv\0wtm\0wuu\0xal\0xan\0xas\0xco\0"
-    "xcr\0xdq\0xhe\0xhm\0xis\0xka\0xkc\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0"
-    "xmn\0xmr\0xna\0xnr\0xpg\0xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xss\0"
+    "aib\0aii\0aij\0ain\0aio\0aiq\0akk\0akv\0alk\0all\0alr\0alt\0alw\0"
+    "am\0ams\0amw\0ani\0anp\0anq\0anr\0anu\0aot\0apc\0apd\0aph\0aqc\0"
+    "ar\0arc\0arq\0ars\0ary\0arz\0as\0ase\0ask\0asr\0atn\0atv\0auj\0"
+    "auz\0av\0avd\0avl\0awa\0awn\0axm\0ayh\0ayl\0ayn\0ayp\0az_IQ\0"
+    "az_IR\0az_RU\0azb\0ba\0bal\0bap\0bax\0bbl\0bcq\0bdv\0bdz\0be\0"
+    "bee\0bej\0bfb\0bfq\0bft\0bfu\0bfw\0bfy\0bfz\0bg\0bgc\0bgd\0bgn\0"
+    "bgp\0bgq\0bgw\0bgx\0bha\0bhb\0bhd\0bhe\0bhh\0bhi\0bhj\0bhm\0bhn\0"
+    "bho\0bht\0bhu\0biy\0bjf\0bjj\0bjm\0bkk\0blk\0blt\0bmj\0bn\0bns\0"
+    "bo\0bph\0bpx\0bpy\0bqi\0bra\0brb\0brd\0brh\0brk\0bro\0brv\0brw\0"
+    "brx\0bsh\0bsk\0bsq\0bst\0btd\0btm\0btv\0bua\0bwe\0bxm\0bxu\0byh\0"
+    "byn\0byw\0bzi\0cbn\0ccp\0cde\0cdh\0cdi\0cdj\0cdm\0cdo\0cdz\0ce\0"
+    "cgk\0chg\0chm\0chr\0chx\0cih\0cja\0cji\0cjm\0cjy\0ckb\0ckt\0clh\0"
+    "clw\0cmg\0cna\0cnp\0cog\0cop\0cpg\0cr\0crh\0crj\0crk\0crl\0crm\0"
+    "csh\0csp\0csw\0ctd\0ctg\0ctn\0ctt\0cty\0cu\0cuu\0cv\0czh\0czk\0"
+    "daq\0dar\0dcc\0ddo\0def\0deh\0der\0dgl\0dhi\0dhn\0dho\0dhw\0dka\0"
+    "dlg\0dmf\0dmk\0dml\0dng\0dnu\0dnv\0doi\0dox\0dre\0drq\0drs\0dry\0"
+    "dso\0dty\0dub\0duh\0dus\0dv\0dwk\0dwz\0dz\0dzl\0ecr\0ecy\0egy\0"
+    "eky\0el\0emg\0emu\0enf\0enh\0era\0esg\0esh\0ett\0eve\0evn\0fa\0"
+    "fay\0faz\0fia\0fmu\0fub\0gan\0gaq\0gas\0gau\0gbj\0gbk\0gbl\0gbm\0"
+    "gbz\0gdb\0gdo\0gdx\0gez\0ggg\0gha\0ghe\0gho\0ghr\0ght\0gig\0gin\0"
+    "gjk\0gju\0gld\0glh\0glk\0gml\0gmv\0gmy\0goe\0gof\0goj\0gok\0gon\0"
+    "got\0gra\0grc\0grt\0gru\0gu\0gvr\0gwc\0gwf\0gwt\0gyo\0gzi\0ha_CM\0"
+    "ha_SD\0hac\0hak\0har\0haz\0hbo\0hdy\0he\0hi\0hif\0hii\0hit\0hkh\0"
+    "hlb\0hlu\0hmd\0hmj\0hmq\0hnd\0hne\0hnj\0hno\0hoc\0hoh\0hoj\0how\0"
+    "hoy\0hpo\0hrt\0hrz\0hsn\0hss\0htx\0hut\0huy\0huz\0hy\0hyw\0ii\0"
+    "imy\0inh\0int\0ior\0iru\0isk\0itk\0itl\0iu\0iw\0ja\0jad\0jat\0"
+    "jbe\0jbn\0jct\0jda\0jdg\0jdt\0jee\0jge\0ji\0jje\0jkm\0jml\0jna\0"
+    "jnd\0jnl\0jns\0jog\0jpa\0jpr\0jrb\0jul\0jun\0juy\0jya\0jye\0ka\0"
+    "kaa\0kap\0kaw\0kbd\0kbg\0kbu\0kby\0kca\0kcy\0kdq\0kdt\0ket\0kev\0"
+    "kex\0key\0kfa\0kfb\0kfc\0kfd\0kfe\0kfg\0kfh\0kfi\0kfk\0kfm\0kfp\0"
+    "kfq\0kfr\0kfs\0kfu\0kfx\0kfy\0kgj\0kgy\0khb\0khf\0khg\0khn\0kho\0"
+    "kht\0khv\0khw\0kif\0kim\0kip\0kjg\0kjh\0kjl\0kjo\0kjp\0kjt\0kjz\0"
+    "kk\0kk_AF\0kk_CN\0kk_IR\0kk_MN\0kkf\0kkh\0kkt\0kle\0klj\0klr\0"
+    "km\0kmj\0kmz\0kn\0knn\0ko\0koi\0kok\0kpt\0kpy\0kqd\0kqy\0kra\0"
+    "krc\0krk\0krr\0kru\0krv\0ks\0ksu\0ksw\0ksz\0ktb\0kte\0ktl\0ktp\0"
+    "ku_LB\0kuf\0kum\0kv\0kva\0kvq\0kvt\0kvx\0kvy\0kxf\0kxk\0kxm\0"
+    "kxp\0ky\0ky_CN\0kyu\0kyv\0kyw\0lab\0lad\0lae\0lah\0lbe\0lbf\0"
+    "lbj\0lbm\0lbo\0lbr\0lcp\0lep\0lez\0lhm\0lhs\0lif\0lis\0lkh\0lki\0"
+    "lmh\0lmn\0lo\0loy\0lpo\0lrc\0lrk\0lrl\0lsa\0lsd\0lss\0ltc\0luk\0"
+    "luu\0luv\0luz\0lwl\0lwm\0lya\0lzh\0mag\0mai\0man_GN\0mby\0mde\0"
+    "mdf\0mdx\0mdy\0mfa\0mfi\0mga\0mgp\0mhj\0mid\0mjl\0mjq\0mjr\0mjt\0"
+    "mju\0mjv\0mjz\0mk\0mkb\0mke\0mki\0mkm\0ml\0mlf\0mn\0mn_CN\0mnc\0"
+    "mni\0mnj\0mns\0mnw\0mpz\0mr\0mra\0mrd\0mrj\0mro\0mrr\0ms_CC\0"
+    "mtm\0mtr\0mud\0muk\0mut\0muv\0muz\0mve\0mvf\0mvy\0mvz\0mwr\0mwt\0"
+    "mww\0my\0mym\0myv\0myz\0mzn\0nan\0nao\0ncd\0ncq\0ndf\0ne\0neg\0"
+    "neh\0nei\0new\0ngt\0nio\0nit\0niv\0nli\0nlm\0nlx\0nmm\0nnp\0nod\0"
+    "noe\0nog\0noi\0non\0nos\0npb\0nqo\0nrn\0nsd\0nsf\0nsk\0nst\0nsv\0"
+    "nty\0ntz\0nwc\0nwx\0nyl\0nyq\0nyw\0oaa\0oac\0oar\0oav\0obm\0obr\0"
+    "odk\0oht\0oj\0ojs\0okm\0oko\0okz\0ola\0ole\0omk\0omp\0omr\0omx\0"
+    "oon\0or\0ort\0oru\0orv\0os\0osa\0osc\0osi\0ota\0otb\0otk\0oty\0"
+    "oui\0pa\0pa_PK\0pal\0paq\0pbt\0pcb\0pce\0pcf\0pcg\0pch\0pci\0"
+    "pcj\0peg\0peo\0pgd\0pgg\0pgl\0pgn\0phd\0phk\0phl\0phn\0pho\0phr\0"
+    "pht\0phu\0phv\0phw\0pi\0pka\0pkr\0plk\0pll\0pmh\0pnt\0pra\0prc\0"
+    "prd\0prt\0prx\0ps\0psh\0psi\0pst\0psu\0pum\0pwo\0pwr\0pww\0pyx\0"
+    "qxq\0raa\0rab\0raf\0rah\0raj\0rav\0rbb\0rdb\0rei\0rhg\0rji\0rjs\0"
+    "rka\0rki\0rkt\0rmi\0rmt\0rmz\0rsk\0rtw\0ru\0rue\0rut\0rwr\0ryu\0"
+    "sa\0sah\0sam\0sat\0saz\0sbn\0sbu\0sck\0scl\0scp\0sct\0scu\0scx\0"
+    "sd\0sd_IN\0sdb\0sdf\0sdg\0sdh\0sdr\0sds\0sel\0sfm\0sga\0sgh\0"
+    "sgj\0sgr\0sgt\0sgw\0sgy\0shd\0shi\0shm\0shn\0shu\0shv\0si\0sia\0"
+    "sip\0siy\0siz\0sjd\0sjp\0sjt\0skb\0skj\0skr\0smh\0smp\0smu\0smy\0"
+    "soa\0sog\0soi\0sou\0spt\0spv\0sqo\0sqq\0sqt\0sr\0srb\0srh\0srx\0"
+    "srz\0ssh\0sss\0sts\0stv\0sty\0suz\0sva\0swb\0swi\0swv\0sxu\0syc\0"
+    "syl\0syn\0syr\0syw\0ta\0tab\0taj\0tbk\0tcn\0tco\0tcx\0tcy\0tda\0"
+    "tdb\0tdd\0tdg\0tdh\0te\0tes\0tg\0tg_PK\0tge\0tgf\0th\0the\0thf\0"
+    "thi\0thl\0thm\0thq\0thr\0ths\0ti\0tig\0tij\0tin\0tjl\0tjo\0tkb\0"
+    "tks\0tkt\0tmr\0tnv\0tov\0tpu\0tra\0trg\0trm\0trw\0tsd\0tsj\0tt\0"
+    "tth\0tto\0tts\0ttz\0tvn\0twm\0txg\0txo\0tyr\0tyv\0ude\0udg\0udi\0"
+    "udm\0ug\0ug_KZ\0ug_MN\0uga\0ugh\0ugo\0uk\0uki\0ulc\0unr\0unr_NP\0"
+    "unx\0ur\0urk\0ush\0uum\0uz_AF\0uz_CN\0uzs\0vaa\0vaf\0vah\0vai\0"
+    "vas\0vav\0vay\0vgr\0vjk\0vmd\0vmh\0wal\0wbk\0wbq\0wbr\0wle\0wlo\0"
+    "wme\0wne\0wni\0wsg\0wsv\0wtm\0wuu\0xag\0xal\0xan\0xas\0xco\0xcr\0"
+    "xdq\0xhe\0xhm\0xis\0xka\0xkc\0xkf\0xkj\0xkp\0xlc\0xld\0xly\0xmf\0"
+    "xmn\0xmr\0xna\0xnr\0xpg\0xpi\0xpm\0xpr\0xrm\0xrn\0xsa\0xsr\0xtq\0"
     "xub\0xuj\0xve\0xvi\0xwo\0xzh\0yai\0ybh\0ybi\0ydg\0yea\0yej\0yeu\0"
-    "ygp\0yhd\0yi\0yig\0yih\0yiv\0ykg\0yna\0ynk\0yoi\0yoy\0yrk\0ysd\0"
-    "ysn\0ysp\0ysr\0ysy\0yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0zau\0"
-    "zba\0zch\0zdj\0zeh\0zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0zh_BN\0"
-    "zh_GB\0zh_GF\0zh_HK\0zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0zh_SR\0"
-    "zh_TH\0zh_TW\0zh_US\0zh_VN\0zhd\0zhx\0zkb\0zko\0zkt\0zkz\0zlj\0"
-    "zln\0zlq\0zqe\0zrp\0zum\0zyg\0zyn\0zzj\0";
+    "ygp\0yhd\0yi\0yig\0yih\0yiv\0ykg\0ykh\0yna\0ynk\0yoi\0yoy\0yrk\0"
+    "ysd\0ysn\0ysp\0ysr\0ysy\0yud\0yue\0yue_CN\0yug\0yux\0ywq\0ywu\0"
+    "zau\0zba\0zch\0zdj\0zeh\0zen\0zgb\0zgh\0zgm\0zgn\0zh\0zh_AU\0"
+    "zh_BN\0zh_GB\0zh_GF\0zh_HK\0zh_ID\0zh_MO\0zh_PA\0zh_PF\0zh_PH\0"
+    "zh_SR\0zh_TH\0zh_TW\0zh_US\0zh_VN\0zhd\0zhx\0zko\0zkt\0zkz\0zlj\0"
+    "zln\0zlq\0zqe\0zrg\0zrp\0zum\0zwa\0zyg\0zyn\0zzj\0";
 
 const int32_t defaultScriptTable[] = {
-    0, 320,  // aaf -> Mlym
+    0, 330,  // aaf -> Mlym
     4, 10,  // aao -> Arab
     8, 150,  // aat -> Grek
     12, 100,  // ab -> Cyrl
     15, 10,  // abh -> Arab
-    19, 420,  // abl -> Rjng
+    19, 435,  // abl -> Rjng
     23, 10,  // abv -> Arab
     27, 10,  // acm -> Arab
     31, 10,  // acq -> Arab
@@ -119,7 +120,7 @@
     35, 10,  // acw -> Arab
     39, 10,  // acx -> Arab
     43, 10,  // adf -> Arab
-    47, 535,  // adx -> Tibt
+    47, 555,  // adx -> Tibt
     51, 100,  // ady -> Cyrl
     55, 25,  // ae -> Avst
     58, 10,  // aeb -> Arab
@@ -134,1000 +135,1022 @@
     94, 5,  // aho -> Ahom
     98, 105,  // ahr -> Deva
     102, 10,  // aib -> Arab
-    106, 185,  // aij -> Hebr
-    110, 220,  // ain -> Kana
-    114, 345,  // aio -> Mymr
-    118, 10,  // aiq -> Arab
-    122, 10,  // ajp -> Arab
-    126, 570,  // akk -> Xsux
+    106, 495,  // aii -> Syrc
+    110, 185,  // aij -> Hebr
+    114, 220,  // ain -> Kana
+    118, 355,  // aio -> Mymr
+    122, 10,  // aiq -> Arab
+    126, 590,  // akk -> Xsux
     130, 100,  // akv -> Cyrl
     134, 260,  // alk -> Laoo
-    138, 320,  // all -> Mlym
+    138, 330,  // all -> Mlym
     142, 100,  // alr -> Cyrl
     146, 100,  // alt -> Cyrl
     150, 120,  // alw -> Ethi
     154, 120,  // am -> Ethi
     157, 210,  // ams -> Jpan
-    161, 475,  // amw -> Syrc
+    161, 495,  // amw -> Syrc
     165, 100,  // ani -> Cyrl
     169, 105,  // anp -> Deva
-    173, 105,  // anr -> Deva
-    177, 120,  // anu -> Ethi
-    181, 45,  // aot -> Beng
-    185, 10,  // apc -> Arab
-    189, 10,  // apd -> Arab
-    193, 105,  // aph -> Deva
-    197, 100,  // aqc -> Cyrl
-    201, 10,  // ar -> Arab
-    204, 15,  // arc -> Armi
-    208, 10,  // arq -> Arab
-    212, 10,  // ars -> Arab
-    216, 10,  // ary -> Arab
-    220, 10,  // arz -> Arab
-    224, 45,  // as -> Beng
-    227, 450,  // ase -> Sgnw
-    231, 10,  // ask -> Arab
-    235, 10,  // atn -> Arab
-    239, 100,  // atv -> Cyrl
-    243, 10,  // auj -> Arab
-    247, 10,  // auz -> Arab
-    251, 100,  // av -> Cyrl
-    254, 10,  // avd -> Arab
-    258, 10,  // avl -> Arab
-    262, 105,  // awa -> Deva
-    266, 120,  // awn -> Ethi
-    270, 20,  // axm -> Armn
-    274, 10,  // ayh -> Arab
-    278, 10,  // ayl -> Arab
-    282, 10,  // ayn -> Arab
-    286, 10,  // ayp -> Arab
-    290, 10,  // az_IQ -> Arab
-    296, 10,  // az_IR -> Arab
-    302, 100,  // az_RU -> Cyrl
-    308, 10,  // azb -> Arab
-    312, 100,  // ba -> Cyrl
-    315, 10,  // bal -> Arab
-    319, 105,  // bap -> Deva
-    323, 30,  // bax -> Bamu
-    327, 125,  // bbl -> Geor
-    331, 120,  // bcq -> Ethi
-    335, 385,  // bdv -> Orya
-    339, 10,  // bdz -> Arab
-    343, 100,  // be -> Cyrl
-    346, 105,  // bee -> Deva
-    350, 10,  // bej -> Arab
-    354, 105,  // bfb -> Deva
-    358, 500,  // bfq -> Taml
-    362, 10,  // bft -> Arab
-    366, 535,  // bfu -> Tibt
-    370, 385,  // bfw -> Orya
-    374, 105,  // bfy -> Deva
-    378, 105,  // bfz -> Deva
-    382, 100,  // bg -> Cyrl
-    385, 105,  // bgc -> Deva
-    389, 105,  // bgd -> Deva
-    393, 10,  // bgn -> Arab
-    397, 10,  // bgp -> Arab
-    401, 105,  // bgq -> Deva
-    405, 105,  // bgw -> Deva
-    409, 150,  // bgx -> Grek
-    413, 105,  // bha -> Deva
-    417, 105,  // bhb -> Deva
-    421, 105,  // bhd -> Deva
-    425, 10,  // bhe -> Arab
-    429, 100,  // bhh -> Cyrl
-    433, 105,  // bhi -> Deva
-    437, 105,  // bhj -> Deva
-    441, 10,  // bhm -> Arab
-    445, 475,  // bhn -> Syrc
-    449, 105,  // bho -> Deva
-    453, 485,  // bht -> Takr
-    457, 105,  // bhu -> Deva
-    461, 105,  // biy -> Deva
-    465, 475,  // bjf -> Syrc
-    469, 105,  // bjj -> Deva
-    473, 10,  // bjm -> Arab
-    477, 345,  // blk -> Mymr
-    481, 510,  // blt -> Tavt
-    485, 105,  // bmj -> Deva
-    489, 45,  // bn -> Beng
-    492, 105,  // bns -> Deva
-    496, 535,  // bo -> Tibt
-    499, 100,  // bph -> Cyrl
-    503, 105,  // bpx -> Deva
-    507, 45,  // bpy -> Beng
-    511, 10,  // bqi -> Arab
-    515, 105,  // bra -> Deva
-    519, 235,  // brb -> Khmr
-    523, 105,  // brd -> Deva
-    527, 10,  // brh -> Arab
-    531, 10,  // brk -> Arab
-    535, 260,  // brv -> Laoo
-    539, 105,  // brx -> Deva
-    543, 10,  // bsh -> Arab
-    547, 10,  // bsk -> Arab
-    551, 35,  // bsq -> Bass
-    555, 120,  // bst -> Ethi
-    559, 40,  // btd -> Batk
-    563, 40,  // btm -> Batk
-    567, 105,  // btv -> Deva
-    571, 100,  // bua -> Cyrl
-    575, 345,  // bwe -> Mymr
-    579, 100,  // bxm -> Cyrl
-    583, 330,  // bxu -> Mong
-    587, 105,  // byh -> Deva
-    591, 120,  // byn -> Ethi
-    595, 105,  // byw -> Deva
-    599, 530,  // bzi -> Thai
-    603, 530,  // cbn -> Thai
-    607, 60,  // ccp -> Cakm
-    611, 515,  // cde -> Telu
-    615, 105,  // cdh -> Deva
-    619, 155,  // cdi -> Gujr
-    623, 105,  // cdj -> Deva
-    627, 105,  // cdm -> Deva
-    631, 175,  // cdo -> Hans
-    635, 45,  // cdz -> Beng
-    639, 100,  // ce -> Cyrl
-    642, 535,  // cgk -> Tibt
-    646, 10,  // chg -> Arab
-    650, 100,  // chm -> Cyrl
-    654, 80,  // chr -> Cher
-    658, 105,  // chx -> Deva
-    662, 105,  // cih -> Deva
-    666, 10,  // cja -> Arab
-    670, 100,  // cji -> Cyrl
-    674, 75,  // cjm -> Cham
-    678, 175,  // cjy -> Hans
-    682, 10,  // ckb -> Arab
-    686, 100,  // ckt -> Cyrl
-    690, 10,  // clh -> Arab
-    694, 100,  // clw -> Cyrl
-    698, 470,  // cmg -> Soyo
-    702, 535,  // cna -> Tibt
-    706, 175,  // cnp -> Hans
-    710, 530,  // cog -> Thai
-    714, 90,  // cop -> Copt
-    718, 150,  // cpg -> Grek
-    722, 65,  // cr -> Cans
-    725, 100,  // crh -> Cyrl
-    729, 65,  // crj -> Cans
-    733, 65,  // crk -> Cans
-    737, 65,  // crl -> Cans
-    741, 65,  // crm -> Cans
-    745, 345,  // csh -> Mymr
-    749, 175,  // csp -> Hans
-    753, 65,  // csw -> Cans
-    757, 395,  // ctd -> Pauc
-    761, 45,  // ctg -> Beng
-    765, 105,  // ctn -> Deva
-    769, 500,  // ctt -> Taml
-    773, 100,  // cu -> Cyrl
-    776, 255,  // cuu -> Lana
-    780, 100,  // cv -> Cyrl
-    783, 175,  // czh -> Hans
-    787, 185,  // czk -> Hebr
-    791, 105,  // daq -> Deva
-    795, 100,  // dar -> Cyrl
-    799, 10,  // dcc -> Arab
-    803, 100,  // ddo -> Cyrl
-    807, 10,  // def -> Arab
-    811, 10,  // deh -> Arab
-    815, 45,  // der -> Beng
-    819, 105,  // dhi -> Deva
-    823, 155,  // dhn -> Gujr
-    827, 105,  // dho -> Deva
-    831, 105,  // dhw -> Deva
-    835, 535,  // dka -> Tibt
-    839, 100,  // dlg -> Cyrl
-    843, 310,  // dmf -> Medf
-    847, 10,  // dmk -> Arab
-    851, 10,  // dml -> Arab
-    855, 100,  // dng -> Cyrl
-    859, 345,  // dnu -> Mymr
-    863, 345,  // dnv -> Mymr
-    867, 105,  // doi -> Deva
-    871, 120,  // dox -> Ethi
-    875, 535,  // dre -> Tibt
-    879, 105,  // drq -> Deva
-    883, 120,  // drs -> Ethi
-    887, 105,  // dry -> Deva
-    891, 385,  // dso -> Orya
-    895, 105,  // dty -> Deva
-    899, 155,  // dub -> Gujr
-    903, 105,  // duh -> Deva
-    907, 105,  // dus -> Deva
-    911, 525,  // dv -> Thaa
-    914, 385,  // dwk -> Orya
-    918, 105,  // dwz -> Deva
-    922, 535,  // dz -> Tibt
-    925, 535,  // dzl -> Tibt
-    929, 150,  // ecr -> Grek
-    933, 95,  // ecy -> Cprt
-    937, 110,  // egy -> Egyp
-    941, 215,  // eky -> Kali
-    945, 150,  // el -> Grek
-    948, 105,  // emg -> Deva
-    952, 105,  // emu -> Deva
-    956, 100,  // enf -> Cyrl
-    960, 100,  // enh -> Cyrl
-    964, 500,  // era -> Taml
-    968, 135,  // esg -> Gonm
-    972, 10,  // esh -> Arab
-    976, 200,  // ett -> Ital
-    980, 100,  // eve -> Cyrl
-    984, 100,  // evn -> Cyrl
-    988, 10,  // fa -> Arab
-    991, 10,  // fay -> Arab
-    995, 10,  // faz -> Arab
-    999, 10,  // fia -> Arab
-    1003, 105,  // fmu -> Deva
-    1007, 10,  // fub -> Arab
-    1011, 175,  // gan -> Hans
-    1015, 385,  // gaq -> Orya
-    1019, 155,  // gas -> Gujr
-    1023, 515,  // gau -> Telu
-    1027, 385,  // gbj -> Orya
-    1031, 105,  // gbk -> Deva
-    1035, 155,  // gbl -> Gujr
-    1039, 105,  // gbm -> Deva
-    1043, 10,  // gbz -> Arab
-    1047, 385,  // gdb -> Orya
-    1051, 100,  // gdo -> Cyrl
-    1055, 105,  // gdx -> Deva
-    1059, 120,  // gez -> Ethi
-    1063, 10,  // ggg -> Arab
-    1067, 10,  // gha -> Arab
-    1071, 105,  // ghe -> Deva
-    1075, 10,  // ghr -> Arab
-    1079, 535,  // ght -> Tibt
-    1083, 10,  // gig -> Arab
-    1087, 100,  // gin -> Cyrl
-    1091, 10,  // gjk -> Arab
-    1095, 10,  // gju -> Arab
-    1099, 100,  // gld -> Cyrl
-    1103, 10,  // glh -> Arab
-    1107, 10,  // glk -> Arab
-    1111, 120,  // gmv -> Ethi
-    1115, 275,  // gmy -> Linb
-    1119, 535,  // goe -> Tibt
-    1123, 120,  // gof -> Ethi
-    1127, 105,  // gok -> Deva
-    1131, 105,  // gom -> Deva
-    1135, 515,  // gon -> Telu
-    1139, 140,  // got -> Goth
-    1143, 105,  // gra -> Deva
-    1147, 95,  // grc -> Cprt
-    1151, 45,  // grt -> Beng
-    1155, 120,  // gru -> Ethi
-    1159, 155,  // gu -> Gujr
-    1162, 105,  // gvr -> Deva
-    1166, 10,  // gwc -> Arab
-    1170, 10,  // gwf -> Arab
-    1174, 10,  // gwt -> Arab
-    1178, 105,  // gyo -> Deva
-    1182, 10,  // gzi -> Arab
-    1186, 10,  // ha_CM -> Arab
-    1192, 10,  // ha_SD -> Arab
-    1198, 10,  // hac -> Arab
-    1202, 175,  // hak -> Hans
-    1206, 120,  // har -> Ethi
-    1210, 10,  // haz -> Arab
-    1214, 185,  // hbo -> Hebr
-    1218, 120,  // hdy -> Ethi
-    1222, 185,  // he -> Hebr
-    1225, 105,  // hi -> Deva
-    1228, 485,  // hii -> Takr
-    1232, 570,  // hit -> Xsux
-    1236, 10,  // hkh -> Arab
-    1240, 105,  // hlb -> Deva
-    1244, 190,  // hlu -> Hluw
-    1248, 410,  // hmd -> Plrd
-    1252, 50,  // hmj -> Bopo
-    1256, 50,  // hmq -> Bopo
-    1260, 10,  // hnd -> Arab
-    1264, 105,  // hne -> Deva
-    1268, 195,  // hnj -> Hmnp
-    1272, 260,  // hnj_AU -> Laoo
-    1279, 260,  // hnj_CN -> Laoo
-    1286, 260,  // hnj_FR -> Laoo
-    1293, 260,  // hnj_GF -> Laoo
-    1300, 260,  // hnj_LA -> Laoo
-    1307, 260,  // hnj_MM -> Laoo
-    1314, 260,  // hnj_SR -> Laoo
-    1321, 260,  // hnj_TH -> Laoo
-    1328, 260,  // hnj_VN -> Laoo
-    1335, 10,  // hno -> Arab
-    1339, 105,  // hoc -> Deva
-    1343, 10,  // hoh -> Arab
-    1347, 105,  // hoj -> Deva
-    1351, 170,  // how -> Hani
-    1355, 105,  // hoy -> Deva
-    1359, 345,  // hpo -> Mymr
-    1363, 475,  // hrt -> Syrc
-    1367, 10,  // hrz -> Arab
-    1371, 175,  // hsn -> Hans
-    1375, 10,  // hss -> Arab
-    1379, 570,  // htx -> Xsux
-    1383, 105,  // hut -> Deva
-    1387, 185,  // huy -> Hebr
-    1391, 100,  // huz -> Cyrl
-    1395, 20,  // hy -> Armn
-    1398, 20,  // hyw -> Armn
-    1402, 575,  // ii -> Yiii
-    1405, 285,  // imy -> Lyci
-    1409, 100,  // inh -> Cyrl
-    1413, 345,  // int -> Mymr
-    1417, 120,  // ior -> Ethi
-    1421, 500,  // iru -> Taml
-    1425, 10,  // isk -> Arab
-    1429, 185,  // itk -> Hebr
-    1433, 100,  // itl -> Cyrl
-    1437, 65,  // iu -> Cans
-    1440, 185,  // iw -> Hebr
-    1443, 210,  // ja -> Jpan
-    1446, 10,  // jad -> Arab
-    1450, 10,  // jat -> Arab
-    1454, 185,  // jbe -> Hebr
-    1458, 10,  // jbn -> Arab
-    1462, 100,  // jct -> Cyrl
-    1466, 535,  // jda -> Tibt
-    1470, 10,  // jdg -> Arab
-    1474, 100,  // jdt -> Cyrl
-    1478, 105,  // jee -> Deva
-    1482, 125,  // jge -> Geor
-    1486, 185,  // ji -> Hebr
-    1489, 165,  // jje -> Hang
-    1493, 345,  // jkm -> Mymr
-    1497, 105,  // jml -> Deva
-    1501, 485,  // jna -> Takr
-    1505, 10,  // jnd -> Arab
-    1509, 105,  // jnl -> Deva
-    1513, 105,  // jns -> Deva
-    1517, 10,  // jog -> Arab
-    1521, 185,  // jpa -> Hebr
-    1525, 185,  // jpr -> Hebr
-    1529, 185,  // jrb -> Hebr
-    1533, 10,  // jrb_MA -> Arab
-    1540, 105,  // jul -> Deva
-    1544, 385,  // jun -> Orya
-    1548, 385,  // juy -> Orya
-    1552, 535,  // jya -> Tibt
-    1556, 185,  // jye -> Hebr
-    1560, 125,  // ka -> Geor
-    1563, 100,  // kaa -> Cyrl
-    1567, 100,  // kap -> Cyrl
-    1571, 225,  // kaw -> Kawi
-    1575, 100,  // kbd -> Cyrl
-    1579, 10,  // kbu -> Arab
-    1583, 10,  // kby -> Arab
-    1587, 100,  // kca -> Cyrl
-    1591, 45,  // kdq -> Beng
-    1595, 530,  // kdt -> Thai
-    1599, 100,  // ket -> Cyrl
-    1603, 105,  // kex -> Deva
-    1607, 515,  // key -> Telu
-    1611, 245,  // kfa -> Knda
-    1615, 105,  // kfb -> Deva
-    1619, 515,  // kfc -> Telu
-    1623, 245,  // kfd -> Knda
-    1627, 500,  // kfe -> Taml
-    1631, 320,  // kfh -> Mlym
-    1635, 500,  // kfi -> Taml
-    1639, 105,  // kfk -> Deva
-    1643, 10,  // kfm -> Arab
-    1647, 105,  // kfp -> Deva
-    1651, 105,  // kfq -> Deva
-    1655, 105,  // kfr -> Deva
-    1659, 105,  // kfs -> Deva
-    1663, 105,  // kfx -> Deva
-    1667, 105,  // kfy -> Deva
-    1671, 105,  // kgj -> Deva
-    1675, 105,  // kgy -> Deva
-    1679, 495,  // khb -> Talu
-    1683, 530,  // khf -> Thai
-    1687, 535,  // khg -> Tibt
-    1691, 105,  // khn -> Deva
-    1695, 345,  // kht -> Mymr
-    1699, 100,  // khv -> Cyrl
-    1703, 10,  // khw -> Arab
-    1707, 105,  // kif -> Deva
-    1711, 100,  // kim -> Cyrl
-    1715, 105,  // kip -> Deva
-    1719, 260,  // kjg -> Laoo
-    1723, 100,  // kjh -> Cyrl
-    1727, 105,  // kjl -> Deva
-    1731, 105,  // kjo -> Deva
-    1735, 345,  // kjp -> Mymr
-    1739, 530,  // kjt -> Thai
-    1743, 100,  // kk -> Cyrl
-    1746, 10,  // kk_AF -> Arab
-    1752, 10,  // kk_CN -> Arab
-    1758, 10,  // kk_IR -> Arab
-    1764, 10,  // kk_MN -> Arab
-    1770, 535,  // kkf -> Tibt
-    1774, 255,  // kkh -> Lana
-    1778, 105,  // kkt -> Deva
-    1782, 105,  // kle -> Deva
-    1786, 10,  // klj -> Arab
-    1790, 105,  // klr -> Deva
-    1794, 235,  // km -> Khmr
-    1797, 105,  // kmj -> Deva
-    1801, 10,  // kmz -> Arab
-    1805, 245,  // kn -> Knda
-    1808, 250,  // ko -> Kore
-    1811, 100,  // koi -> Cyrl
-    1815, 105,  // kok -> Deva
-    1819, 100,  // kpt -> Cyrl
-    1823, 100,  // kpy -> Cyrl
-    1827, 475,  // kqd -> Syrc
-    1831, 120,  // kqy -> Ethi
-    1835, 105,  // kra -> Deva
-    1839, 100,  // krc -> Cyrl
-    1843, 100,  // krk -> Cyrl
-    1847, 235,  // krr -> Khmr
-    1851, 105,  // kru -> Deva
-    1855, 235,  // krv -> Khmr
-    1859, 10,  // ks -> Arab
-    1862, 345,  // ksu -> Mymr
-    1866, 345,  // ksw -> Mymr
-    1870, 105,  // ksz -> Deva
-    1874, 120,  // ktb -> Ethi
-    1878, 10,  // ktl -> Arab
-    1882, 410,  // ktp -> Plrd
-    1886, 10,  // ku_LB -> Arab
-    1892, 260,  // kuf -> Laoo
-    1896, 100,  // kum -> Cyrl
-    1900, 100,  // kv -> Cyrl
-    1903, 100,  // kva -> Cyrl
-    1907, 345,  // kvq -> Mymr
-    1911, 345,  // kvt -> Mymr
-    1915, 10,  // kvx -> Arab
-    1919, 215,  // kvy -> Kali
-    1923, 345,  // kxf -> Mymr
-    1927, 345,  // kxk -> Mymr
-    1931, 530,  // kxm -> Thai
-    1935, 10,  // kxp -> Arab
-    1939, 100,  // ky -> Cyrl
-    1942, 10,  // ky_CN -> Arab
-    1948, 215,  // kyu -> Kali
-    1952, 105,  // kyv -> Deva
-    1956, 105,  // kyw -> Deva
-    1960, 270,  // lab -> Lina
-    1964, 185,  // lad -> Hebr
-    1968, 105,  // lae -> Deva
-    1972, 10,  // lah -> Arab
-    1976, 280,  // lbc -> Lisu
-    1980, 100,  // lbe -> Cyrl
-    1984, 105,  // lbf -> Deva
-    1988, 535,  // lbj -> Tibt
-    1992, 105,  // lbm -> Deva
-    1996, 260,  // lbo -> Laoo
-    2000, 105,  // lbr -> Deva
-    2004, 530,  // lcp -> Thai
-    2008, 265,  // lep -> Lepc
-    2012, 100,  // lez -> Cyrl
-    2016, 105,  // lhm -> Deva
-    2020, 475,  // lhs -> Syrc
-    2024, 105,  // lif -> Deva
-    2028, 280,  // lis -> Lisu
-    2032, 535,  // lkh -> Tibt
-    2036, 10,  // lki -> Arab
-    2040, 105,  // lmh -> Deva
-    2044, 515,  // lmn -> Telu
-    2048, 260,  // lo -> Laoo
-    2051, 105,  // loy -> Deva
-    2055, 410,  // lpo -> Plrd
-    2059, 10,  // lrc -> Arab
-    2063, 10,  // lrk -> Arab
-    2067, 10,  // lrl -> Arab
-    2071, 10,  // lsa -> Arab
-    2075, 185,  // lsd -> Hebr
-    2079, 10,  // lss -> Arab
-    2083, 535,  // luk -> Tibt
-    2087, 105,  // luu -> Deva
-    2091, 10,  // luv -> Arab
-    2095, 10,  // luz -> Arab
-    2099, 530,  // lwl -> Thai
-    2103, 530,  // lwm -> Thai
-    2107, 535,  // lya -> Tibt
-    2111, 175,  // lzh -> Hans
-    2115, 105,  // mag -> Deva
-    2119, 105,  // mai -> Deva
-    2123, 360,  // man_GN -> Nkoo
-    2130, 10,  // mby -> Arab
-    2134, 10,  // mde -> Arab
-    2138, 100,  // mdf -> Cyrl
-    2142, 120,  // mdx -> Ethi
-    2146, 120,  // mdy -> Ethi
-    2150, 10,  // mfa -> Arab
-    2154, 10,  // mfi -> Arab
-    2158, 105,  // mgp -> Deva
-    2162, 10,  // mhj -> Arab
-    2166, 295,  // mid -> Mand
-    2170, 105,  // mjl -> Deva
-    2174, 320,  // mjq -> Mlym
-    2178, 320,  // mjr -> Mlym
-    2182, 105,  // mjt -> Deva
-    2186, 515,  // mju -> Telu
-    2190, 320,  // mjv -> Mlym
-    2194, 105,  // mjz -> Deva
-    2198, 100,  // mk -> Cyrl
-    2201, 105,  // mkb -> Deva
-    2205, 105,  // mke -> Deva
-    2209, 10,  // mki -> Arab
-    2213, 530,  // mkm -> Thai
-    2217, 320,  // ml -> Mlym
-    2220, 530,  // mlf -> Thai
-    2224, 100,  // mn -> Cyrl
-    2227, 330,  // mn_CN -> Mong
-    2233, 45,  // mni -> Beng
-    2237, 10,  // mnj -> Arab
-    2241, 100,  // mns -> Cyrl
-    2245, 345,  // mnw -> Mymr
-    2249, 530,  // mpz -> Thai
-    2253, 105,  // mr -> Deva
-    2256, 530,  // mra -> Thai
-    2260, 105,  // mrd -> Deva
-    2264, 100,  // mrj -> Cyrl
-    2268, 335,  // mro -> Mroo
-    2272, 105,  // mrr -> Deva
-    2276, 10,  // ms_CC -> Arab
-    2282, 100,  // mtm -> Cyrl
-    2286, 105,  // mtr -> Deva
-    2290, 100,  // mud -> Cyrl
-    2294, 535,  // muk -> Tibt
-    2298, 105,  // mut -> Deva
-    2302, 500,  // muv -> Taml
-    2306, 120,  // muz -> Ethi
-    2310, 330,  // mvf -> Mong
-    2314, 10,  // mvy -> Arab
-    2318, 120,  // mvz -> Ethi
-    2322, 105,  // mwr -> Deva
-    2326, 345,  // mwt -> Mymr
-    2330, 195,  // mww -> Hmnp
-    2334, 345,  // my -> Mymr
-    2337, 120,  // mym -> Ethi
-    2341, 100,  // myv -> Cyrl
-    2345, 295,  // myz -> Mand
-    2349, 10,  // mzn -> Arab
-    2353, 175,  // nan -> Hans
-    2357, 105,  // nao -> Deva
-    2361, 105,  // ncd -> Deva
-    2365, 260,  // ncq -> Laoo
-    2369, 100,  // ndf -> Cyrl
-    2373, 105,  // ne -> Deva
-    2376, 100,  // neg -> Cyrl
-    2380, 535,  // neh -> Tibt
-    2384, 570,  // nei -> Xsux
-    2388, 105,  // new -> Deva
-    2392, 260,  // ngt -> Laoo
-    2396, 100,  // nio -> Cyrl
-    2400, 515,  // nit -> Telu
-    2404, 100,  // niv -> Cyrl
-    2408, 10,  // nli -> Arab
-    2412, 10,  // nlm -> Arab
-    2416, 105,  // nlx -> Deva
-    2420, 105,  // nmm -> Deva
-    2424, 560,  // nnp -> Wcho
-    2428, 255,  // nod -> Lana
-    2432, 105,  // noe -> Deva
-    2436, 100,  // nog -> Cyrl
-    2440, 105,  // noi -> Deva
-    2444, 430,  // non -> Runr
-    2448, 575,  // nos -> Yiii
-    2452, 535,  // npb -> Tibt
-    2456, 360,  // nqo -> Nkoo
-    2460, 575,  // nsd -> Yiii
-    2464, 575,  // nsf -> Yiii
-    2468, 65,  // nsk -> Cans
-    2472, 540,  // nst -> Tnsa
-    2476, 575,  // nsv -> Yiii
-    2480, 575,  // nty -> Yiii
-    2484, 10,  // ntz -> Arab
-    2488, 355,  // nwc -> Newa
-    2492, 105,  // nwx -> Deva
-    2496, 530,  // nyl -> Thai
-    2500, 10,  // nyq -> Arab
-    2504, 100,  // oaa -> Cyrl
-    2508, 100,  // oac -> Cyrl
-    2512, 475,  // oar -> Syrc
-    2516, 125,  // oav -> Geor
-    2520, 405,  // obm -> Phnx
-    2524, 345,  // obr -> Mymr
-    2528, 10,  // odk -> Arab
-    2532, 570,  // oht -> Xsux
-    2536, 65,  // oj -> Cans
-    2539, 65,  // ojs -> Cans
-    2543, 165,  // okm -> Hang
-    2547, 170,  // oko -> Hani
-    2551, 235,  // okz -> Khmr
-    2555, 105,  // ola -> Deva
-    2559, 535,  // ole -> Tibt
-    2563, 100,  // omk -> Cyrl
-    2567, 340,  // omp -> Mtei
-    2571, 325,  // omr -> Modi
-    2575, 105,  // oon -> Deva
-    2579, 385,  // or -> Orya
-    2582, 515,  // ort -> Telu
-    2586, 10,  // oru -> Arab
-    2590, 100,  // orv -> Cyrl
-    2594, 100,  // os -> Cyrl
-    2597, 390,  // osa -> Osge
-    2601, 200,  // osc -> Ital
-    2605, 205,  // osi -> Java
-    2609, 10,  // ota -> Arab
-    2613, 535,  // otb -> Tibt
-    2617, 380,  // otk -> Orkh
-    2621, 145,  // oty -> Gran
-    2625, 160,  // pa -> Guru
-    2628, 10,  // pa_PK -> Arab
-    2634, 400,  // pal -> Phli
-    2638, 100,  // paq -> Cyrl
-    2642, 10,  // pbt -> Arab
-    2646, 235,  // pcb -> Khmr
-    2650, 345,  // pce -> Mymr
-    2654, 320,  // pcf -> Mlym
-    2658, 320,  // pcg -> Mlym
-    2662, 105,  // pch -> Deva
-    2666, 105,  // pci -> Deva
-    2670, 515,  // pcj -> Telu
-    2674, 385,  // peg -> Orya
-    2678, 565,  // peo -> Xpeo
-    2682, 230,  // pgd -> Khar
-    2686, 105,  // pgg -> Deva
-    2690, 370,  // pgl -> Ogam
-    2694, 200,  // pgn -> Ital
-    2698, 105,  // phd -> Deva
-    2702, 345,  // phk -> Mymr
-    2706, 10,  // phl -> Arab
-    2710, 405,  // phn -> Phnx
-    2714, 260,  // pho -> Laoo
-    2718, 10,  // phr -> Arab
-    2722, 530,  // pht -> Thai
-    2726, 10,  // phv -> Arab
-    2730, 105,  // phw -> Deva
-    2734, 455,  // pi -> Sinh
-    2737, 55,  // pka -> Brah
-    2741, 320,  // pkr -> Mlym
-    2745, 10,  // plk -> Arab
-    2749, 345,  // pll -> Mymr
-    2753, 55,  // pmh -> Brah
-    2757, 150,  // pnt -> Grek
-    2761, 230,  // pra -> Khar
-    2765, 10,  // prc -> Arab
-    2769, 10,  // prd -> Arab
-    2773, 155,  // prp -> Gujr
-    2777, 530,  // prt -> Thai
-    2781, 10,  // prx -> Arab
-    2785, 10,  // ps -> Arab
-    2788, 10,  // psh -> Arab
-    2792, 10,  // psi -> Arab
-    2796, 10,  // pst -> Arab
-    2800, 105,  // pum -> Deva
-    2804, 345,  // pwo -> Mymr
-    2808, 105,  // pwr -> Deva
-    2812, 530,  // pww -> Thai
-    2816, 345,  // pyx -> Mymr
-    2820, 10,  // qxq -> Arab
-    2824, 105,  // raa -> Deva
-    2828, 105,  // rab -> Deva
-    2832, 105,  // raf -> Deva
-    2836, 45,  // rah -> Beng
-    2840, 105,  // raj -> Deva
-    2844, 105,  // rav -> Deva
-    2848, 345,  // rbb -> Mymr
-    2852, 10,  // rdb -> Arab
-    2856, 385,  // rei -> Orya
-    2860, 425,  // rhg -> Rohg
-    2864, 105,  // rji -> Deva
-    2868, 105,  // rjs -> Deva
-    2872, 235,  // rka -> Khmr
-    2876, 345,  // rki -> Mymr
-    2880, 45,  // rkt -> Beng
-    2884, 20,  // rmi -> Armn
-    2888, 10,  // rmt -> Arab
-    2892, 345,  // rmz -> Mymr
-    2896, 100,  // rom_BG -> Cyrl
-    2903, 100,  // rsk -> Cyrl
-    2907, 105,  // rtw -> Deva
-    2911, 100,  // ru -> Cyrl
-    2914, 100,  // rue -> Cyrl
-    2918, 100,  // rut -> Cyrl
-    2922, 105,  // rwr -> Deva
-    2926, 220,  // ryu -> Kana
-    2930, 105,  // sa -> Deva
-    2933, 100,  // sah -> Cyrl
-    2937, 435,  // sam -> Samr
-    2941, 375,  // sat -> Olck
-    2945, 445,  // saz -> Saur
-    2949, 10,  // sbn -> Arab
-    2953, 535,  // sbu -> Tibt
-    2957, 105,  // sck -> Deva
-    2961, 10,  // scl -> Arab
-    2965, 10,  // scl_IN -> Arab
-    2972, 105,  // scp -> Deva
-    2976, 260,  // sct -> Laoo
-    2980, 485,  // scu -> Takr
-    2984, 150,  // scx -> Grek
-    2988, 10,  // sd -> Arab
-    2991, 105,  // sd_IN -> Deva
-    2997, 10,  // sdb -> Arab
-    3001, 10,  // sdf -> Arab
-    3005, 10,  // sdg -> Arab
-    3009, 10,  // sdh -> Arab
-    3013, 10,  // sds -> Arab
-    3017, 100,  // sel -> Cyrl
-    3021, 410,  // sfm -> Plrd
-    3025, 370,  // sga -> Ogam
-    3029, 100,  // sgh -> Cyrl
-    3033, 105,  // sgj -> Deva
-    3037, 10,  // sgr -> Arab
-    3041, 535,  // sgt -> Tibt
-    3045, 120,  // sgw -> Ethi
-    3049, 10,  // sgy -> Arab
-    3053, 10,  // shd -> Arab
-    3057, 520,  // shi -> Tfng
-    3061, 10,  // shm -> Arab
-    3065, 345,  // shn -> Mymr
-    3069, 10,  // shu -> Arab
-    3073, 10,  // shv -> Arab
-    3077, 455,  // si -> Sinh
-    3080, 100,  // sia -> Cyrl
-    3084, 535,  // sip -> Tibt
-    3088, 10,  // siy -> Arab
-    3092, 10,  // siz -> Arab
-    3096, 100,  // sjd -> Cyrl
-    3100, 105,  // sjp -> Deva
-    3104, 100,  // sjt -> Cyrl
-    3108, 530,  // skb -> Thai
-    3112, 105,  // skj -> Deva
-    3116, 10,  // skr -> Arab
-    3120, 10,  // slq -> Arab
-    3124, 575,  // smh -> Yiii
-    3128, 435,  // smp -> Samr
-    3132, 235,  // smu -> Khmr
-    3136, 10,  // smy -> Arab
-    3140, 510,  // soa -> Tavt
-    3144, 460,  // sog -> Sogd
-    3148, 105,  // soi -> Deva
-    3152, 530,  // sou -> Thai
-    3156, 535,  // spt -> Tibt
-    3160, 385,  // spv -> Orya
-    3164, 10,  // sqo -> Arab
-    3168, 260,  // sqq -> Laoo
-    3172, 10,  // sqt -> Arab
-    3176, 100,  // sr -> Cyrl
-    3179, 465,  // srb -> Sora
-    3183, 10,  // srh -> Arab
-    3187, 105,  // srx -> Deva
-    3191, 10,  // srz -> Arab
-    3195, 10,  // ssh -> Arab
-    3199, 260,  // sss -> Laoo
-    3203, 10,  // sts -> Arab
-    3207, 120,  // stv -> Ethi
-    3211, 100,  // sty -> Cyrl
-    3215, 105,  // suz -> Deva
-    3219, 125,  // sva -> Geor
-    3223, 10,  // swb -> Arab
-    3227, 170,  // swi -> Hani
-    3231, 105,  // swv -> Deva
-    3235, 475,  // syc -> Syrc
-    3239, 45,  // syl -> Beng
-    3243, 475,  // syn -> Syrc
-    3247, 475,  // syr -> Syrc
-    3251, 105,  // syw -> Deva
-    3255, 500,  // ta -> Taml
-    3258, 100,  // tab -> Cyrl
-    3262, 105,  // taj -> Deva
-    3266, 480,  // tbk -> Tagb
-    3270, 535,  // tcn -> Tibt
-    3274, 345,  // tco -> Mymr
-    3278, 500,  // tcx -> Taml
-    3282, 245,  // tcy -> Knda
-    3286, 520,  // tda -> Tfng
-    3290, 105,  // tdb -> Deva
-    3294, 490,  // tdd -> Tale
-    3298, 105,  // tdg -> Deva
-    3302, 105,  // tdh -> Deva
-    3306, 515,  // te -> Telu
-    3309, 205,  // tes -> Java
-    3313, 100,  // tg -> Cyrl
-    3316, 10,  // tg_PK -> Arab
-    3322, 105,  // tge -> Deva
-    3326, 535,  // tgf -> Tibt
-    3330, 530,  // th -> Thai
-    3333, 105,  // the -> Deva
-    3337, 105,  // thf -> Deva
-    3341, 490,  // thi -> Tale
-    3345, 105,  // thl -> Deva
-    3349, 530,  // thm -> Thai
-    3353, 105,  // thq -> Deva
-    3357, 105,  // thr -> Deva
-    3361, 105,  // ths -> Deva
-    3365, 120,  // ti -> Ethi
-    3368, 120,  // tig -> Ethi
-    3372, 105,  // tij -> Deva
-    3376, 100,  // tin -> Cyrl
-    3380, 345,  // tjl -> Mymr
-    3384, 10,  // tjo -> Arab
-    3388, 105,  // tkb -> Deva
-    3392, 10,  // tks -> Arab
-    3396, 105,  // tkt -> Deva
-    3400, 105,  // tmk -> Deva
-    3404, 475,  // tmr -> Syrc
-    3408, 60,  // tnv -> Cakm
-    3412, 10,  // tov -> Arab
-    3416, 235,  // tpu -> Khmr
-    3420, 10,  // tra -> Arab
-    3424, 185,  // trg -> Hebr
-    3428, 10,  // trm -> Arab
-    3432, 10,  // trw -> Arab
-    3436, 150,  // tsd -> Grek
-    3440, 535,  // tsj -> Tibt
-    3444, 100,  // tt -> Cyrl
-    3447, 260,  // tth -> Laoo
-    3451, 260,  // tto -> Laoo
-    3455, 530,  // tts -> Thai
-    3459, 345,  // tvn -> Mymr
-    3463, 105,  // twm -> Deva
-    3467, 505,  // txg -> Tang
-    3471, 545,  // txo -> Toto
-    3475, 510,  // tyr -> Tavt
-    3479, 100,  // tyv -> Cyrl
-    3483, 100,  // ude -> Cyrl
-    3487, 320,  // udg -> Mlym
-    3491, 0,  // udi -> Aghb
-    3495, 100,  // udm -> Cyrl
-    3499, 10,  // ug -> Arab
-    3502, 100,  // ug_KZ -> Cyrl
-    3508, 100,  // ug_MN -> Cyrl
-    3514, 550,  // uga -> Ugar
-    3518, 100,  // ugh -> Cyrl
-    3522, 530,  // ugo -> Thai
-    3526, 100,  // uk -> Cyrl
-    3529, 385,  // uki -> Orya
-    3533, 100,  // ulc -> Cyrl
-    3537, 45,  // unr -> Beng
-    3541, 105,  // unr_NP -> Deva
-    3548, 45,  // unx -> Beng
-    3552, 10,  // ur -> Arab
-    3555, 530,  // urk -> Thai
-    3559, 10,  // ush -> Arab
-    3563, 150,  // uum -> Grek
-    3567, 10,  // uz_AF -> Arab
-    3573, 100,  // uz_CN -> Cyrl
-    3579, 10,  // uzs -> Arab
-    3583, 500,  // vaa -> Taml
-    3587, 10,  // vaf -> Arab
-    3591, 105,  // vah -> Deva
-    3595, 555,  // vai -> Vaii
-    3599, 105,  // vas -> Deva
-    3603, 105,  // vav -> Deva
-    3607, 105,  // vay -> Deva
-    3611, 10,  // vgr -> Arab
-    3615, 245,  // vmd -> Knda
-    3619, 10,  // vmh -> Arab
-    3623, 120,  // wal -> Ethi
-    3627, 10,  // wbk -> Arab
-    3631, 515,  // wbq -> Telu
-    3635, 105,  // wbr -> Deva
-    3639, 10,  // wlo -> Arab
-    3643, 105,  // wme -> Deva
-    3647, 10,  // wne -> Arab
-    3651, 10,  // wni -> Arab
-    3655, 130,  // wsg -> Gong
-    3659, 10,  // wsv -> Arab
-    3663, 105,  // wtm -> Deva
-    3667, 175,  // wuu -> Hans
-    3671, 100,  // xal -> Cyrl
-    3675, 120,  // xan -> Ethi
-    3679, 100,  // xas -> Cyrl
-    3683, 85,  // xco -> Chrs
-    3687, 70,  // xcr -> Cari
-    3691, 100,  // xdq -> Cyrl
-    3695, 10,  // xhe -> Arab
-    3699, 235,  // xhm -> Khmr
-    3703, 385,  // xis -> Orya
-    3707, 10,  // xka -> Arab
-    3711, 10,  // xkc -> Arab
-    3715, 10,  // xkj -> Arab
-    3719, 10,  // xkp -> Arab
-    3723, 285,  // xlc -> Lyci
-    3727, 290,  // xld -> Lydi
-    3731, 115,  // xly -> Elym
-    3735, 125,  // xmf -> Geor
-    3739, 300,  // xmn -> Mani
-    3743, 315,  // xmr -> Merc
-    3747, 350,  // xna -> Narb
-    3751, 105,  // xnr -> Deva
-    3755, 150,  // xpg -> Grek
-    3759, 370,  // xpi -> Ogam
-    3763, 100,  // xpm -> Cyrl
-    3767, 415,  // xpr -> Prti
-    3771, 100,  // xrm -> Cyrl
-    3775, 100,  // xrn -> Cyrl
-    3779, 440,  // xsa -> Sarb
-    3783, 105,  // xsr -> Deva
-    3787, 100,  // xss -> Cyrl
-    3791, 500,  // xub -> Taml
-    3795, 500,  // xuj -> Taml
-    3799, 200,  // xve -> Ital
-    3803, 10,  // xvi -> Arab
-    3807, 100,  // xwo -> Cyrl
-    3811, 305,  // xzh -> Marc
-    3815, 100,  // yai -> Cyrl
-    3819, 105,  // ybh -> Deva
-    3823, 105,  // ybi -> Deva
-    3827, 10,  // ydg -> Arab
-    3831, 320,  // yea -> Mlym
-    3835, 150,  // yej -> Grek
-    3839, 515,  // yeu -> Telu
-    3843, 410,  // ygp -> Plrd
-    3847, 185,  // yhd -> Hebr
-    3851, 185,  // yi -> Hebr
-    3854, 575,  // yig -> Yiii
-    3858, 185,  // yih -> Hebr
-    3862, 575,  // yiv -> Yiii
-    3866, 100,  // ykg -> Cyrl
-    3870, 410,  // yna -> Plrd
-    3874, 100,  // ynk -> Cyrl
-    3878, 210,  // yoi -> Jpan
-    3882, 530,  // yoy -> Thai
-    3886, 100,  // yrk -> Cyrl
-    3890, 575,  // ysd -> Yiii
-    3894, 575,  // ysn -> Yiii
-    3898, 575,  // ysp -> Yiii
-    3902, 100,  // ysr -> Cyrl
-    3906, 410,  // ysy -> Plrd
-    3910, 185,  // yud -> Hebr
-    3914, 180,  // yue -> Hant
-    3918, 175,  // yue_CN -> Hans
-    3925, 100,  // yug -> Cyrl
-    3929, 100,  // yux -> Cyrl
-    3933, 410,  // ywq -> Plrd
-    3937, 410,  // ywu -> Plrd
-    3941, 535,  // zau -> Tibt
-    3945, 10,  // zba -> Arab
-    3949, 170,  // zch -> Hani
-    3953, 10,  // zdj -> Arab
-    3957, 170,  // zeh -> Hani
-    3961, 520,  // zen -> Tfng
-    3965, 170,  // zgb -> Hani
-    3969, 520,  // zgh -> Tfng
-    3973, 170,  // zgm -> Hani
-    3977, 170,  // zgn -> Hani
-    3981, 175,  // zh -> Hans
-    3984, 180,  // zh_AU -> Hant
-    3990, 180,  // zh_BN -> Hant
-    3996, 180,  // zh_GB -> Hant
-    4002, 180,  // zh_GF -> Hant
-    4008, 180,  // zh_HK -> Hant
-    4014, 180,  // zh_ID -> Hant
-    4020, 180,  // zh_MO -> Hant
-    4026, 180,  // zh_PA -> Hant
-    4032, 180,  // zh_PF -> Hant
-    4038, 180,  // zh_PH -> Hant
-    4044, 180,  // zh_SR -> Hant
-    4050, 180,  // zh_TH -> Hant
-    4056, 180,  // zh_TW -> Hant
-    4062, 180,  // zh_US -> Hant
-    4068, 180,  // zh_VN -> Hant
-    4074, 170,  // zhd -> Hani
-    4078, 365,  // zhx -> Nshu
-    4082, 100,  // zkb -> Cyrl
-    4086, 100,  // zko -> Cyrl
-    4090, 240,  // zkt -> Kits
-    4094, 100,  // zkz -> Cyrl
-    4098, 170,  // zlj -> Hani
-    4102, 170,  // zln -> Hani
-    4106, 170,  // zlq -> Hani
-    4110, 170,  // zqe -> Hani
-    4114, 185,  // zrp -> Hebr
-    4118, 10,  // zum -> Arab
-    4122, 170,  // zyg -> Hani
-    4126, 170,  // zyn -> Hani
-    4130, 170,  // zzj -> Hani
+    173, 105,  // anq -> Deva
+    177, 105,  // anr -> Deva
+    181, 120,  // anu -> Ethi
+    185, 45,  // aot -> Beng
+    189, 10,  // apc -> Arab
+    193, 10,  // apd -> Arab
+    197, 105,  // aph -> Deva
+    201, 100,  // aqc -> Cyrl
+    205, 10,  // ar -> Arab
+    208, 15,  // arc -> Armi
+    212, 10,  // arq -> Arab
+    216, 10,  // ars -> Arab
+    220, 10,  // ary -> Arab
+    224, 10,  // arz -> Arab
+    228, 45,  // as -> Beng
+    231, 465,  // ase -> Sgnw
+    235, 10,  // ask -> Arab
+    239, 105,  // asr -> Deva
+    243, 10,  // atn -> Arab
+    247, 100,  // atv -> Cyrl
+    251, 10,  // auj -> Arab
+    255, 10,  // auz -> Arab
+    259, 100,  // av -> Cyrl
+    262, 10,  // avd -> Arab
+    266, 10,  // avl -> Arab
+    270, 105,  // awa -> Deva
+    274, 120,  // awn -> Ethi
+    278, 20,  // axm -> Armn
+    282, 10,  // ayh -> Arab
+    286, 10,  // ayl -> Arab
+    290, 10,  // ayn -> Arab
+    294, 10,  // ayp -> Arab
+    298, 10,  // az_IQ -> Arab
+    304, 10,  // az_IR -> Arab
+    310, 100,  // az_RU -> Cyrl
+    316, 10,  // azb -> Arab
+    320, 100,  // ba -> Cyrl
+    323, 10,  // bal -> Arab
+    327, 105,  // bap -> Deva
+    331, 30,  // bax -> Bamu
+    335, 125,  // bbl -> Geor
+    339, 120,  // bcq -> Ethi
+    343, 395,  // bdv -> Orya
+    347, 10,  // bdz -> Arab
+    351, 100,  // be -> Cyrl
+    354, 105,  // bee -> Deva
+    358, 10,  // bej -> Arab
+    362, 105,  // bfb -> Deva
+    366, 520,  // bfq -> Taml
+    370, 10,  // bft -> Arab
+    374, 555,  // bfu -> Tibt
+    378, 395,  // bfw -> Orya
+    382, 105,  // bfy -> Deva
+    386, 105,  // bfz -> Deva
+    390, 100,  // bg -> Cyrl
+    393, 105,  // bgc -> Deva
+    397, 105,  // bgd -> Deva
+    401, 10,  // bgn -> Arab
+    405, 10,  // bgp -> Arab
+    409, 105,  // bgq -> Deva
+    413, 105,  // bgw -> Deva
+    417, 150,  // bgx -> Grek
+    421, 105,  // bha -> Deva
+    425, 105,  // bhb -> Deva
+    429, 105,  // bhd -> Deva
+    433, 10,  // bhe -> Arab
+    437, 100,  // bhh -> Cyrl
+    441, 105,  // bhi -> Deva
+    445, 105,  // bhj -> Deva
+    449, 10,  // bhm -> Arab
+    453, 495,  // bhn -> Syrc
+    457, 105,  // bho -> Deva
+    461, 105,  // bht -> Deva
+    465, 105,  // bhu -> Deva
+    469, 105,  // biy -> Deva
+    473, 495,  // bjf -> Syrc
+    477, 105,  // bjj -> Deva
+    481, 10,  // bjm -> Arab
+    485, 555,  // bkk -> Tibt
+    489, 355,  // blk -> Mymr
+    493, 530,  // blt -> Tavt
+    497, 105,  // bmj -> Deva
+    501, 45,  // bn -> Beng
+    504, 105,  // bns -> Deva
+    508, 555,  // bo -> Tibt
+    511, 100,  // bph -> Cyrl
+    515, 105,  // bpx -> Deva
+    519, 45,  // bpy -> Beng
+    523, 10,  // bqi -> Arab
+    527, 105,  // bra -> Deva
+    531, 235,  // brb -> Khmr
+    535, 105,  // brd -> Deva
+    539, 10,  // brh -> Arab
+    543, 10,  // brk -> Arab
+    547, 555,  // bro -> Tibt
+    551, 260,  // brv -> Laoo
+    555, 245,  // brw -> Knda
+    559, 105,  // brx -> Deva
+    563, 10,  // bsh -> Arab
+    567, 10,  // bsk -> Arab
+    571, 35,  // bsq -> Bass
+    575, 120,  // bst -> Ethi
+    579, 40,  // btd -> Batk
+    583, 40,  // btm -> Batk
+    587, 105,  // btv -> Deva
+    591, 100,  // bua -> Cyrl
+    595, 355,  // bwe -> Mymr
+    599, 100,  // bxm -> Cyrl
+    603, 340,  // bxu -> Mong
+    607, 105,  // byh -> Deva
+    611, 120,  // byn -> Ethi
+    615, 105,  // byw -> Deva
+    619, 550,  // bzi -> Thai
+    623, 550,  // cbn -> Thai
+    627, 60,  // ccp -> Cakm
+    631, 535,  // cde -> Telu
+    635, 105,  // cdh -> Deva
+    639, 155,  // cdi -> Gujr
+    643, 105,  // cdj -> Deva
+    647, 105,  // cdm -> Deva
+    651, 175,  // cdo -> Hans
+    655, 45,  // cdz -> Beng
+    659, 100,  // ce -> Cyrl
+    662, 555,  // cgk -> Tibt
+    666, 10,  // chg -> Arab
+    670, 100,  // chm -> Cyrl
+    674, 80,  // chr -> Cher
+    678, 105,  // chx -> Deva
+    682, 105,  // cih -> Deva
+    686, 10,  // cja -> Arab
+    690, 100,  // cji -> Cyrl
+    694, 75,  // cjm -> Cham
+    698, 175,  // cjy -> Hans
+    702, 10,  // ckb -> Arab
+    706, 100,  // ckt -> Cyrl
+    710, 10,  // clh -> Arab
+    714, 100,  // clw -> Cyrl
+    718, 485,  // cmg -> Soyo
+    722, 555,  // cna -> Tibt
+    726, 175,  // cnp -> Hans
+    730, 550,  // cog -> Thai
+    734, 90,  // cop -> Copt
+    738, 150,  // cpg -> Grek
+    742, 65,  // cr -> Cans
+    745, 100,  // crh -> Cyrl
+    749, 65,  // crj -> Cans
+    753, 65,  // crk -> Cans
+    757, 65,  // crl -> Cans
+    761, 65,  // crm -> Cans
+    765, 355,  // csh -> Mymr
+    769, 175,  // csp -> Hans
+    773, 65,  // csw -> Cans
+    777, 410,  // ctd -> Pauc
+    781, 45,  // ctg -> Beng
+    785, 105,  // ctn -> Deva
+    789, 520,  // ctt -> Taml
+    793, 520,  // cty -> Taml
+    797, 100,  // cu -> Cyrl
+    800, 255,  // cuu -> Lana
+    804, 100,  // cv -> Cyrl
+    807, 175,  // czh -> Hans
+    811, 185,  // czk -> Hebr
+    815, 105,  // daq -> Deva
+    819, 100,  // dar -> Cyrl
+    823, 10,  // dcc -> Arab
+    827, 100,  // ddo -> Cyrl
+    831, 10,  // def -> Arab
+    835, 10,  // deh -> Arab
+    839, 45,  // der -> Beng
+    843, 10,  // dgl -> Arab
+    847, 105,  // dhi -> Deva
+    851, 155,  // dhn -> Gujr
+    855, 105,  // dho -> Deva
+    859, 105,  // dhw -> Deva
+    863, 555,  // dka -> Tibt
+    867, 100,  // dlg -> Cyrl
+    871, 320,  // dmf -> Medf
+    875, 10,  // dmk -> Arab
+    879, 10,  // dml -> Arab
+    883, 100,  // dng -> Cyrl
+    887, 355,  // dnu -> Mymr
+    891, 355,  // dnv -> Mymr
+    895, 105,  // doi -> Deva
+    899, 120,  // dox -> Ethi
+    903, 555,  // dre -> Tibt
+    907, 105,  // drq -> Deva
+    911, 120,  // drs -> Ethi
+    915, 105,  // dry -> Deva
+    919, 395,  // dso -> Orya
+    923, 105,  // dty -> Deva
+    927, 155,  // dub -> Gujr
+    931, 105,  // duh -> Deva
+    935, 105,  // dus -> Deva
+    939, 545,  // dv -> Thaa
+    942, 395,  // dwk -> Orya
+    946, 105,  // dwz -> Deva
+    950, 555,  // dz -> Tibt
+    953, 555,  // dzl -> Tibt
+    957, 150,  // ecr -> Grek
+    961, 95,  // ecy -> Cprt
+    965, 110,  // egy -> Egyp
+    969, 215,  // eky -> Kali
+    973, 150,  // el -> Grek
+    976, 105,  // emg -> Deva
+    980, 105,  // emu -> Deva
+    984, 100,  // enf -> Cyrl
+    988, 100,  // enh -> Cyrl
+    992, 520,  // era -> Taml
+    996, 135,  // esg -> Gonm
+    1000, 10,  // esh -> Arab
+    1004, 200,  // ett -> Ital
+    1008, 100,  // eve -> Cyrl
+    1012, 100,  // evn -> Cyrl
+    1016, 10,  // fa -> Arab
+    1019, 10,  // fay -> Arab
+    1023, 10,  // faz -> Arab
+    1027, 10,  // fia -> Arab
+    1031, 105,  // fmu -> Deva
+    1035, 10,  // fub -> Arab
+    1039, 175,  // gan -> Hans
+    1043, 395,  // gaq -> Orya
+    1047, 155,  // gas -> Gujr
+    1051, 535,  // gau -> Telu
+    1055, 395,  // gbj -> Orya
+    1059, 105,  // gbk -> Deva
+    1063, 155,  // gbl -> Gujr
+    1067, 105,  // gbm -> Deva
+    1071, 10,  // gbz -> Arab
+    1075, 395,  // gdb -> Orya
+    1079, 100,  // gdo -> Cyrl
+    1083, 105,  // gdx -> Deva
+    1087, 120,  // gez -> Ethi
+    1091, 10,  // ggg -> Arab
+    1095, 10,  // gha -> Arab
+    1099, 105,  // ghe -> Deva
+    1103, 540,  // gho -> Tfng
+    1107, 10,  // ghr -> Arab
+    1111, 555,  // ght -> Tibt
+    1115, 10,  // gig -> Arab
+    1119, 100,  // gin -> Cyrl
+    1123, 10,  // gjk -> Arab
+    1127, 10,  // gju -> Arab
+    1131, 100,  // gld -> Cyrl
+    1135, 10,  // glh -> Arab
+    1139, 10,  // glk -> Arab
+    1143, 265,  // gml -> Latf
+    1147, 120,  // gmv -> Ethi
+    1151, 285,  // gmy -> Linb
+    1155, 555,  // goe -> Tibt
+    1159, 120,  // gof -> Ethi
+    1163, 105,  // goj -> Deva
+    1167, 105,  // gok -> Deva
+    1171, 105,  // gon -> Deva
+    1175, 140,  // got -> Goth
+    1179, 105,  // gra -> Deva
+    1183, 95,  // grc -> Cprt
+    1187, 45,  // grt -> Beng
+    1191, 120,  // gru -> Ethi
+    1195, 155,  // gu -> Gujr
+    1198, 105,  // gvr -> Deva
+    1202, 10,  // gwc -> Arab
+    1206, 10,  // gwf -> Arab
+    1210, 10,  // gwt -> Arab
+    1214, 105,  // gyo -> Deva
+    1218, 10,  // gzi -> Arab
+    1222, 10,  // ha_CM -> Arab
+    1228, 10,  // ha_SD -> Arab
+    1234, 10,  // hac -> Arab
+    1238, 175,  // hak -> Hans
+    1242, 120,  // har -> Ethi
+    1246, 10,  // haz -> Arab
+    1250, 185,  // hbo -> Hebr
+    1254, 120,  // hdy -> Ethi
+    1258, 185,  // he -> Hebr
+    1261, 105,  // hi -> Deva
+    1264, 105,  // hif -> Deva
+    1268, 505,  // hii -> Takr
+    1272, 590,  // hit -> Xsux
+    1276, 10,  // hkh -> Arab
+    1280, 105,  // hlb -> Deva
+    1284, 190,  // hlu -> Hluw
+    1288, 425,  // hmd -> Plrd
+    1292, 50,  // hmj -> Bopo
+    1296, 50,  // hmq -> Bopo
+    1300, 10,  // hnd -> Arab
+    1304, 105,  // hne -> Deva
+    1308, 195,  // hnj -> Hmnp
+    1312, 10,  // hno -> Arab
+    1316, 105,  // hoc -> Deva
+    1320, 10,  // hoh -> Arab
+    1324, 105,  // hoj -> Deva
+    1328, 170,  // how -> Hani
+    1332, 105,  // hoy -> Deva
+    1336, 355,  // hpo -> Mymr
+    1340, 495,  // hrt -> Syrc
+    1344, 10,  // hrz -> Arab
+    1348, 175,  // hsn -> Hans
+    1352, 10,  // hss -> Arab
+    1356, 590,  // htx -> Xsux
+    1360, 105,  // hut -> Deva
+    1364, 185,  // huy -> Hebr
+    1368, 100,  // huz -> Cyrl
+    1372, 20,  // hy -> Armn
+    1375, 20,  // hyw -> Armn
+    1379, 595,  // ii -> Yiii
+    1382, 295,  // imy -> Lyci
+    1386, 100,  // inh -> Cyrl
+    1390, 355,  // int -> Mymr
+    1394, 120,  // ior -> Ethi
+    1398, 520,  // iru -> Taml
+    1402, 10,  // isk -> Arab
+    1406, 185,  // itk -> Hebr
+    1410, 100,  // itl -> Cyrl
+    1414, 65,  // iu -> Cans
+    1417, 185,  // iw -> Hebr
+    1420, 210,  // ja -> Jpan
+    1423, 10,  // jad -> Arab
+    1427, 10,  // jat -> Arab
+    1431, 185,  // jbe -> Hebr
+    1435, 10,  // jbn -> Arab
+    1439, 100,  // jct -> Cyrl
+    1443, 555,  // jda -> Tibt
+    1447, 10,  // jdg -> Arab
+    1451, 100,  // jdt -> Cyrl
+    1455, 105,  // jee -> Deva
+    1459, 125,  // jge -> Geor
+    1463, 185,  // ji -> Hebr
+    1466, 165,  // jje -> Hang
+    1470, 355,  // jkm -> Mymr
+    1474, 105,  // jml -> Deva
+    1478, 505,  // jna -> Takr
+    1482, 10,  // jnd -> Arab
+    1486, 105,  // jnl -> Deva
+    1490, 105,  // jns -> Deva
+    1494, 10,  // jog -> Arab
+    1498, 185,  // jpa -> Hebr
+    1502, 185,  // jpr -> Hebr
+    1506, 185,  // jrb -> Hebr
+    1510, 105,  // jul -> Deva
+    1514, 395,  // jun -> Orya
+    1518, 395,  // juy -> Orya
+    1522, 555,  // jya -> Tibt
+    1526, 185,  // jye -> Hebr
+    1530, 125,  // ka -> Geor
+    1533, 100,  // kaa -> Cyrl
+    1537, 100,  // kap -> Cyrl
+    1541, 225,  // kaw -> Kawi
+    1545, 100,  // kbd -> Cyrl
+    1549, 555,  // kbg -> Tibt
+    1553, 10,  // kbu -> Arab
+    1557, 10,  // kby -> Arab
+    1561, 100,  // kca -> Cyrl
+    1565, 10,  // kcy -> Arab
+    1569, 45,  // kdq -> Beng
+    1573, 550,  // kdt -> Thai
+    1577, 100,  // ket -> Cyrl
+    1581, 330,  // kev -> Mlym
+    1585, 105,  // kex -> Deva
+    1589, 535,  // key -> Telu
+    1593, 245,  // kfa -> Knda
+    1597, 105,  // kfb -> Deva
+    1601, 535,  // kfc -> Telu
+    1605, 245,  // kfd -> Knda
+    1609, 520,  // kfe -> Taml
+    1613, 245,  // kfg -> Knda
+    1617, 330,  // kfh -> Mlym
+    1621, 520,  // kfi -> Taml
+    1625, 105,  // kfk -> Deva
+    1629, 10,  // kfm -> Arab
+    1633, 105,  // kfp -> Deva
+    1637, 105,  // kfq -> Deva
+    1641, 105,  // kfr -> Deva
+    1645, 105,  // kfs -> Deva
+    1649, 105,  // kfu -> Deva
+    1653, 105,  // kfx -> Deva
+    1657, 105,  // kfy -> Deva
+    1661, 105,  // kgj -> Deva
+    1665, 105,  // kgy -> Deva
+    1669, 515,  // khb -> Talu
+    1673, 550,  // khf -> Thai
+    1677, 555,  // khg -> Tibt
+    1681, 105,  // khn -> Deva
+    1685, 55,  // kho -> Brah
+    1689, 355,  // kht -> Mymr
+    1693, 100,  // khv -> Cyrl
+    1697, 10,  // khw -> Arab
+    1701, 105,  // kif -> Deva
+    1705, 100,  // kim -> Cyrl
+    1709, 105,  // kip -> Deva
+    1713, 260,  // kjg -> Laoo
+    1717, 100,  // kjh -> Cyrl
+    1721, 105,  // kjl -> Deva
+    1725, 105,  // kjo -> Deva
+    1729, 355,  // kjp -> Mymr
+    1733, 550,  // kjt -> Thai
+    1737, 555,  // kjz -> Tibt
+    1741, 100,  // kk -> Cyrl
+    1744, 10,  // kk_AF -> Arab
+    1750, 10,  // kk_CN -> Arab
+    1756, 10,  // kk_IR -> Arab
+    1762, 10,  // kk_MN -> Arab
+    1768, 555,  // kkf -> Tibt
+    1772, 255,  // kkh -> Lana
+    1776, 105,  // kkt -> Deva
+    1780, 105,  // kle -> Deva
+    1784, 10,  // klj -> Arab
+    1788, 105,  // klr -> Deva
+    1792, 235,  // km -> Khmr
+    1795, 105,  // kmj -> Deva
+    1799, 10,  // kmz -> Arab
+    1803, 245,  // kn -> Knda
+    1806, 105,  // knn -> Deva
+    1810, 250,  // ko -> Kore
+    1813, 100,  // koi -> Cyrl
+    1817, 105,  // kok -> Deva
+    1821, 100,  // kpt -> Cyrl
+    1825, 100,  // kpy -> Cyrl
+    1829, 495,  // kqd -> Syrc
+    1833, 120,  // kqy -> Ethi
+    1837, 105,  // kra -> Deva
+    1841, 100,  // krc -> Cyrl
+    1845, 100,  // krk -> Cyrl
+    1849, 235,  // krr -> Khmr
+    1853, 105,  // kru -> Deva
+    1857, 235,  // krv -> Khmr
+    1861, 10,  // ks -> Arab
+    1864, 355,  // ksu -> Mymr
+    1868, 355,  // ksw -> Mymr
+    1872, 105,  // ksz -> Deva
+    1876, 120,  // ktb -> Ethi
+    1880, 105,  // kte -> Deva
+    1884, 10,  // ktl -> Arab
+    1888, 425,  // ktp -> Plrd
+    1892, 10,  // ku_LB -> Arab
+    1898, 260,  // kuf -> Laoo
+    1902, 100,  // kum -> Cyrl
+    1906, 100,  // kv -> Cyrl
+    1909, 100,  // kva -> Cyrl
+    1913, 355,  // kvq -> Mymr
+    1917, 355,  // kvt -> Mymr
+    1921, 10,  // kvx -> Arab
+    1925, 215,  // kvy -> Kali
+    1929, 355,  // kxf -> Mymr
+    1933, 355,  // kxk -> Mymr
+    1937, 550,  // kxm -> Thai
+    1941, 10,  // kxp -> Arab
+    1945, 100,  // ky -> Cyrl
+    1948, 10,  // ky_CN -> Arab
+    1954, 215,  // kyu -> Kali
+    1958, 105,  // kyv -> Deva
+    1962, 105,  // kyw -> Deva
+    1966, 280,  // lab -> Lina
+    1970, 185,  // lad -> Hebr
+    1974, 105,  // lae -> Deva
+    1978, 10,  // lah -> Arab
+    1982, 100,  // lbe -> Cyrl
+    1986, 105,  // lbf -> Deva
+    1990, 555,  // lbj -> Tibt
+    1994, 105,  // lbm -> Deva
+    1998, 260,  // lbo -> Laoo
+    2002, 105,  // lbr -> Deva
+    2006, 550,  // lcp -> Thai
+    2010, 275,  // lep -> Lepc
+    2014, 100,  // lez -> Cyrl
+    2018, 105,  // lhm -> Deva
+    2022, 495,  // lhs -> Syrc
+    2026, 105,  // lif -> Deva
+    2030, 290,  // lis -> Lisu
+    2034, 555,  // lkh -> Tibt
+    2038, 10,  // lki -> Arab
+    2042, 105,  // lmh -> Deva
+    2046, 535,  // lmn -> Telu
+    2050, 260,  // lo -> Laoo
+    2053, 105,  // loy -> Deva
+    2057, 425,  // lpo -> Plrd
+    2061, 10,  // lrc -> Arab
+    2065, 10,  // lrk -> Arab
+    2069, 10,  // lrl -> Arab
+    2073, 10,  // lsa -> Arab
+    2077, 185,  // lsd -> Hebr
+    2081, 10,  // lss -> Arab
+    2085, 180,  // ltc -> Hant
+    2089, 555,  // luk -> Tibt
+    2093, 105,  // luu -> Deva
+    2097, 10,  // luv -> Arab
+    2101, 10,  // luz -> Arab
+    2105, 550,  // lwl -> Thai
+    2109, 550,  // lwm -> Thai
+    2113, 555,  // lya -> Tibt
+    2117, 175,  // lzh -> Hans
+    2121, 105,  // mag -> Deva
+    2125, 105,  // mai -> Deva
+    2129, 370,  // man_GN -> Nkoo
+    2136, 10,  // mby -> Arab
+    2140, 10,  // mde -> Arab
+    2144, 100,  // mdf -> Cyrl
+    2148, 120,  // mdx -> Ethi
+    2152, 120,  // mdy -> Ethi
+    2156, 10,  // mfa -> Arab
+    2160, 10,  // mfi -> Arab
+    2164, 270,  // mga -> Latg
+    2168, 105,  // mgp -> Deva
+    2172, 10,  // mhj -> Arab
+    2176, 305,  // mid -> Mand
+    2180, 105,  // mjl -> Deva
+    2184, 330,  // mjq -> Mlym
+    2188, 330,  // mjr -> Mlym
+    2192, 105,  // mjt -> Deva
+    2196, 535,  // mju -> Telu
+    2200, 330,  // mjv -> Mlym
+    2204, 105,  // mjz -> Deva
+    2208, 100,  // mk -> Cyrl
+    2211, 105,  // mkb -> Deva
+    2215, 105,  // mke -> Deva
+    2219, 10,  // mki -> Arab
+    2223, 550,  // mkm -> Thai
+    2227, 330,  // ml -> Mlym
+    2230, 550,  // mlf -> Thai
+    2234, 100,  // mn -> Cyrl
+    2237, 340,  // mn_CN -> Mong
+    2243, 340,  // mnc -> Mong
+    2247, 45,  // mni -> Beng
+    2251, 10,  // mnj -> Arab
+    2255, 100,  // mns -> Cyrl
+    2259, 355,  // mnw -> Mymr
+    2263, 550,  // mpz -> Thai
+    2267, 105,  // mr -> Deva
+    2270, 550,  // mra -> Thai
+    2274, 105,  // mrd -> Deva
+    2278, 100,  // mrj -> Cyrl
+    2282, 345,  // mro -> Mroo
+    2286, 105,  // mrr -> Deva
+    2290, 10,  // ms_CC -> Arab
+    2296, 100,  // mtm -> Cyrl
+    2300, 105,  // mtr -> Deva
+    2304, 100,  // mud -> Cyrl
+    2308, 555,  // muk -> Tibt
+    2312, 105,  // mut -> Deva
+    2316, 520,  // muv -> Taml
+    2320, 120,  // muz -> Ethi
+    2324, 10,  // mve -> Arab
+    2328, 340,  // mvf -> Mong
+    2332, 10,  // mvy -> Arab
+    2336, 120,  // mvz -> Ethi
+    2340, 105,  // mwr -> Deva
+    2344, 355,  // mwt -> Mymr
+    2348, 195,  // mww -> Hmnp
+    2352, 355,  // my -> Mymr
+    2355, 120,  // mym -> Ethi
+    2359, 100,  // myv -> Cyrl
+    2363, 305,  // myz -> Mand
+    2367, 10,  // mzn -> Arab
+    2371, 175,  // nan -> Hans
+    2375, 105,  // nao -> Deva
+    2379, 105,  // ncd -> Deva
+    2383, 260,  // ncq -> Laoo
+    2387, 100,  // ndf -> Cyrl
+    2391, 105,  // ne -> Deva
+    2394, 100,  // neg -> Cyrl
+    2398, 555,  // neh -> Tibt
+    2402, 590,  // nei -> Xsux
+    2406, 105,  // new -> Deva
+    2410, 260,  // ngt -> Laoo
+    2414, 100,  // nio -> Cyrl
+    2418, 535,  // nit -> Telu
+    2422, 100,  // niv -> Cyrl
+    2426, 10,  // nli -> Arab
+    2430, 10,  // nlm -> Arab
+    2434, 105,  // nlx -> Deva
+    2438, 105,  // nmm -> Deva
+    2442, 580,  // nnp -> Wcho
+    2446, 255,  // nod -> Lana
+    2450, 105,  // noe -> Deva
+    2454, 100,  // nog -> Cyrl
+    2458, 105,  // noi -> Deva
+    2462, 445,  // non -> Runr
+    2466, 595,  // nos -> Yiii
+    2470, 555,  // npb -> Tibt
+    2474, 370,  // nqo -> Nkoo
+    2478, 445,  // nrn -> Runr
+    2482, 595,  // nsd -> Yiii
+    2486, 595,  // nsf -> Yiii
+    2490, 65,  // nsk -> Cans
+    2494, 560,  // nst -> Tnsa
+    2498, 595,  // nsv -> Yiii
+    2502, 595,  // nty -> Yiii
+    2506, 10,  // ntz -> Arab
+    2510, 365,  // nwc -> Newa
+    2514, 105,  // nwx -> Deva
+    2518, 550,  // nyl -> Thai
+    2522, 10,  // nyq -> Arab
+    2526, 550,  // nyw -> Thai
+    2530, 100,  // oaa -> Cyrl
+    2534, 100,  // oac -> Cyrl
+    2538, 495,  // oar -> Syrc
+    2542, 125,  // oav -> Geor
+    2546, 420,  // obm -> Phnx
+    2550, 355,  // obr -> Mymr
+    2554, 10,  // odk -> Arab
+    2558, 590,  // oht -> Xsux
+    2562, 65,  // oj -> Cans
+    2565, 65,  // ojs -> Cans
+    2569, 165,  // okm -> Hang
+    2573, 170,  // oko -> Hani
+    2577, 235,  // okz -> Khmr
+    2581, 105,  // ola -> Deva
+    2585, 555,  // ole -> Tibt
+    2589, 100,  // omk -> Cyrl
+    2593, 350,  // omp -> Mtei
+    2597, 335,  // omr -> Modi
+    2601, 355,  // omx -> Mymr
+    2605, 105,  // oon -> Deva
+    2609, 395,  // or -> Orya
+    2612, 535,  // ort -> Telu
+    2616, 10,  // oru -> Arab
+    2620, 100,  // orv -> Cyrl
+    2624, 100,  // os -> Cyrl
+    2627, 400,  // osa -> Osge
+    2631, 200,  // osc -> Ital
+    2635, 205,  // osi -> Java
+    2639, 10,  // ota -> Arab
+    2643, 555,  // otb -> Tibt
+    2647, 390,  // otk -> Orkh
+    2651, 145,  // oty -> Gran
+    2655, 405,  // oui -> Ougr
+    2659, 160,  // pa -> Guru
+    2662, 10,  // pa_PK -> Arab
+    2668, 415,  // pal -> Phli
+    2672, 100,  // paq -> Cyrl
+    2676, 10,  // pbt -> Arab
+    2680, 235,  // pcb -> Khmr
+    2684, 355,  // pce -> Mymr
+    2688, 330,  // pcf -> Mlym
+    2692, 330,  // pcg -> Mlym
+    2696, 105,  // pch -> Deva
+    2700, 105,  // pci -> Deva
+    2704, 535,  // pcj -> Telu
+    2708, 395,  // peg -> Orya
+    2712, 585,  // peo -> Xpeo
+    2716, 230,  // pgd -> Khar
+    2720, 105,  // pgg -> Deva
+    2724, 380,  // pgl -> Ogam
+    2728, 200,  // pgn -> Ital
+    2732, 105,  // phd -> Deva
+    2736, 355,  // phk -> Mymr
+    2740, 10,  // phl -> Arab
+    2744, 420,  // phn -> Phnx
+    2748, 260,  // pho -> Laoo
+    2752, 10,  // phr -> Arab
+    2756, 550,  // pht -> Thai
+    2760, 550,  // phu -> Thai
+    2764, 10,  // phv -> Arab
+    2768, 105,  // phw -> Deva
+    2772, 470,  // pi -> Sinh
+    2775, 55,  // pka -> Brah
+    2779, 330,  // pkr -> Mlym
+    2783, 10,  // plk -> Arab
+    2787, 355,  // pll -> Mymr
+    2791, 55,  // pmh -> Brah
+    2795, 150,  // pnt -> Grek
+    2799, 230,  // pra -> Khar
+    2803, 10,  // prc -> Arab
+    2807, 10,  // prd -> Arab
+    2811, 550,  // prt -> Thai
+    2815, 10,  // prx -> Arab
+    2819, 10,  // ps -> Arab
+    2822, 10,  // psh -> Arab
+    2826, 10,  // psi -> Arab
+    2830, 10,  // pst -> Arab
+    2834, 55,  // psu -> Brah
+    2838, 105,  // pum -> Deva
+    2842, 355,  // pwo -> Mymr
+    2846, 105,  // pwr -> Deva
+    2850, 550,  // pww -> Thai
+    2854, 355,  // pyx -> Mymr
+    2858, 10,  // qxq -> Arab
+    2862, 105,  // raa -> Deva
+    2866, 105,  // rab -> Deva
+    2870, 105,  // raf -> Deva
+    2874, 45,  // rah -> Beng
+    2878, 105,  // raj -> Deva
+    2882, 105,  // rav -> Deva
+    2886, 355,  // rbb -> Mymr
+    2890, 10,  // rdb -> Arab
+    2894, 395,  // rei -> Orya
+    2898, 440,  // rhg -> Rohg
+    2902, 105,  // rji -> Deva
+    2906, 105,  // rjs -> Deva
+    2910, 235,  // rka -> Khmr
+    2914, 355,  // rki -> Mymr
+    2918, 45,  // rkt -> Beng
+    2922, 20,  // rmi -> Armn
+    2926, 10,  // rmt -> Arab
+    2930, 355,  // rmz -> Mymr
+    2934, 100,  // rsk -> Cyrl
+    2938, 105,  // rtw -> Deva
+    2942, 100,  // ru -> Cyrl
+    2945, 100,  // rue -> Cyrl
+    2949, 100,  // rut -> Cyrl
+    2953, 105,  // rwr -> Deva
+    2957, 220,  // ryu -> Kana
+    2961, 105,  // sa -> Deva
+    2964, 100,  // sah -> Cyrl
+    2968, 450,  // sam -> Samr
+    2972, 385,  // sat -> Olck
+    2976, 460,  // saz -> Saur
+    2980, 10,  // sbn -> Arab
+    2984, 555,  // sbu -> Tibt
+    2988, 105,  // sck -> Deva
+    2992, 10,  // scl -> Arab
+    2996, 105,  // scp -> Deva
+    3000, 260,  // sct -> Laoo
+    3004, 505,  // scu -> Takr
+    3008, 150,  // scx -> Grek
+    3012, 10,  // sd -> Arab
+    3015, 105,  // sd_IN -> Deva
+    3021, 10,  // sdb -> Arab
+    3025, 10,  // sdf -> Arab
+    3029, 10,  // sdg -> Arab
+    3033, 10,  // sdh -> Arab
+    3037, 45,  // sdr -> Beng
+    3041, 10,  // sds -> Arab
+    3045, 100,  // sel -> Cyrl
+    3049, 425,  // sfm -> Plrd
+    3053, 380,  // sga -> Ogam
+    3057, 100,  // sgh -> Cyrl
+    3061, 105,  // sgj -> Deva
+    3065, 10,  // sgr -> Arab
+    3069, 555,  // sgt -> Tibt
+    3073, 120,  // sgw -> Ethi
+    3077, 10,  // sgy -> Arab
+    3081, 10,  // shd -> Arab
+    3085, 540,  // shi -> Tfng
+    3089, 10,  // shm -> Arab
+    3093, 355,  // shn -> Mymr
+    3097, 10,  // shu -> Arab
+    3101, 10,  // shv -> Arab
+    3105, 470,  // si -> Sinh
+    3108, 100,  // sia -> Cyrl
+    3112, 555,  // sip -> Tibt
+    3116, 10,  // siy -> Arab
+    3120, 10,  // siz -> Arab
+    3124, 100,  // sjd -> Cyrl
+    3128, 105,  // sjp -> Deva
+    3132, 100,  // sjt -> Cyrl
+    3136, 550,  // skb -> Thai
+    3140, 105,  // skj -> Deva
+    3144, 10,  // skr -> Arab
+    3148, 595,  // smh -> Yiii
+    3152, 450,  // smp -> Samr
+    3156, 235,  // smu -> Khmr
+    3160, 10,  // smy -> Arab
+    3164, 530,  // soa -> Tavt
+    3168, 475,  // sog -> Sogd
+    3172, 105,  // soi -> Deva
+    3176, 550,  // sou -> Thai
+    3180, 555,  // spt -> Tibt
+    3184, 395,  // spv -> Orya
+    3188, 10,  // sqo -> Arab
+    3192, 260,  // sqq -> Laoo
+    3196, 10,  // sqt -> Arab
+    3200, 100,  // sr -> Cyrl
+    3203, 480,  // srb -> Sora
+    3207, 10,  // srh -> Arab
+    3211, 105,  // srx -> Deva
+    3215, 10,  // srz -> Arab
+    3219, 10,  // ssh -> Arab
+    3223, 260,  // sss -> Laoo
+    3227, 10,  // sts -> Arab
+    3231, 120,  // stv -> Ethi
+    3235, 100,  // sty -> Cyrl
+    3239, 490,  // suz -> Sunu
+    3243, 125,  // sva -> Geor
+    3247, 10,  // swb -> Arab
+    3251, 170,  // swi -> Hani
+    3255, 105,  // swv -> Deva
+    3259, 445,  // sxu -> Runr
+    3263, 495,  // syc -> Syrc
+    3267, 45,  // syl -> Beng
+    3271, 495,  // syn -> Syrc
+    3275, 495,  // syr -> Syrc
+    3279, 105,  // syw -> Deva
+    3283, 520,  // ta -> Taml
+    3286, 100,  // tab -> Cyrl
+    3290, 105,  // taj -> Deva
+    3294, 500,  // tbk -> Tagb
+    3298, 555,  // tcn -> Tibt
+    3302, 355,  // tco -> Mymr
+    3306, 520,  // tcx -> Taml
+    3310, 245,  // tcy -> Knda
+    3314, 540,  // tda -> Tfng
+    3318, 105,  // tdb -> Deva
+    3322, 510,  // tdd -> Tale
+    3326, 105,  // tdg -> Deva
+    3330, 105,  // tdh -> Deva
+    3334, 535,  // te -> Telu
+    3337, 205,  // tes -> Java
+    3341, 100,  // tg -> Cyrl
+    3344, 10,  // tg_PK -> Arab
+    3350, 105,  // tge -> Deva
+    3354, 555,  // tgf -> Tibt
+    3358, 550,  // th -> Thai
+    3361, 105,  // the -> Deva
+    3365, 105,  // thf -> Deva
+    3369, 510,  // thi -> Tale
+    3373, 105,  // thl -> Deva
+    3377, 550,  // thm -> Thai
+    3381, 105,  // thq -> Deva
+    3385, 105,  // thr -> Deva
+    3389, 105,  // ths -> Deva
+    3393, 120,  // ti -> Ethi
+    3396, 120,  // tig -> Ethi
+    3400, 105,  // tij -> Deva
+    3404, 100,  // tin -> Cyrl
+    3408, 355,  // tjl -> Mymr
+    3412, 10,  // tjo -> Arab
+    3416, 105,  // tkb -> Deva
+    3420, 10,  // tks -> Arab
+    3424, 105,  // tkt -> Deva
+    3428, 495,  // tmr -> Syrc
+    3432, 60,  // tnv -> Cakm
+    3436, 10,  // tov -> Arab
+    3440, 235,  // tpu -> Khmr
+    3444, 10,  // tra -> Arab
+    3448, 185,  // trg -> Hebr
+    3452, 10,  // trm -> Arab
+    3456, 10,  // trw -> Arab
+    3460, 150,  // tsd -> Grek
+    3464, 555,  // tsj -> Tibt
+    3468, 100,  // tt -> Cyrl
+    3471, 260,  // tth -> Laoo
+    3475, 260,  // tto -> Laoo
+    3479, 550,  // tts -> Thai
+    3483, 105,  // ttz -> Deva
+    3487, 355,  // tvn -> Mymr
+    3491, 105,  // twm -> Deva
+    3495, 525,  // txg -> Tang
+    3499, 565,  // txo -> Toto
+    3503, 530,  // tyr -> Tavt
+    3507, 100,  // tyv -> Cyrl
+    3511, 100,  // ude -> Cyrl
+    3515, 330,  // udg -> Mlym
+    3519, 100,  // udi -> Cyrl
+    3523, 100,  // udm -> Cyrl
+    3527, 10,  // ug -> Arab
+    3530, 100,  // ug_KZ -> Cyrl
+    3536, 100,  // ug_MN -> Cyrl
+    3542, 570,  // uga -> Ugar
+    3546, 100,  // ugh -> Cyrl
+    3550, 550,  // ugo -> Thai
+    3554, 100,  // uk -> Cyrl
+    3557, 395,  // uki -> Orya
+    3561, 100,  // ulc -> Cyrl
+    3565, 45,  // unr -> Beng
+    3569, 105,  // unr_NP -> Deva
+    3576, 45,  // unx -> Beng
+    3580, 10,  // ur -> Arab
+    3583, 550,  // urk -> Thai
+    3587, 10,  // ush -> Arab
+    3591, 150,  // uum -> Grek
+    3595, 10,  // uz_AF -> Arab
+    3601, 100,  // uz_CN -> Cyrl
+    3607, 10,  // uzs -> Arab
+    3611, 520,  // vaa -> Taml
+    3615, 10,  // vaf -> Arab
+    3619, 105,  // vah -> Deva
+    3623, 575,  // vai -> Vaii
+    3627, 105,  // vas -> Deva
+    3631, 105,  // vav -> Deva
+    3635, 105,  // vay -> Deva
+    3639, 10,  // vgr -> Arab
+    3643, 105,  // vjk -> Deva
+    3647, 245,  // vmd -> Knda
+    3651, 10,  // vmh -> Arab
+    3655, 120,  // wal -> Ethi
+    3659, 10,  // wbk -> Arab
+    3663, 535,  // wbq -> Telu
+    3667, 105,  // wbr -> Deva
+    3671, 120,  // wle -> Ethi
+    3675, 10,  // wlo -> Arab
+    3679, 105,  // wme -> Deva
+    3683, 10,  // wne -> Arab
+    3687, 10,  // wni -> Arab
+    3691, 130,  // wsg -> Gong
+    3695, 10,  // wsv -> Arab
+    3699, 105,  // wtm -> Deva
+    3703, 175,  // wuu -> Hans
+    3707, 0,  // xag -> Aghb
+    3711, 100,  // xal -> Cyrl
+    3715, 120,  // xan -> Ethi
+    3719, 100,  // xas -> Cyrl
+    3723, 85,  // xco -> Chrs
+    3727, 70,  // xcr -> Cari
+    3731, 100,  // xdq -> Cyrl
+    3735, 10,  // xhe -> Arab
+    3739, 235,  // xhm -> Khmr
+    3743, 395,  // xis -> Orya
+    3747, 10,  // xka -> Arab
+    3751, 10,  // xkc -> Arab
+    3755, 555,  // xkf -> Tibt
+    3759, 10,  // xkj -> Arab
+    3763, 10,  // xkp -> Arab
+    3767, 295,  // xlc -> Lyci
+    3771, 300,  // xld -> Lydi
+    3775, 115,  // xly -> Elym
+    3779, 125,  // xmf -> Geor
+    3783, 310,  // xmn -> Mani
+    3787, 325,  // xmr -> Merc
+    3791, 360,  // xna -> Narb
+    3795, 105,  // xnr -> Deva
+    3799, 150,  // xpg -> Grek
+    3803, 380,  // xpi -> Ogam
+    3807, 100,  // xpm -> Cyrl
+    3811, 430,  // xpr -> Prti
+    3815, 100,  // xrm -> Cyrl
+    3819, 100,  // xrn -> Cyrl
+    3823, 455,  // xsa -> Sarb
+    3827, 105,  // xsr -> Deva
+    3831, 55,  // xtq -> Brah
+    3835, 520,  // xub -> Taml
+    3839, 520,  // xuj -> Taml
+    3843, 200,  // xve -> Ital
+    3847, 10,  // xvi -> Arab
+    3851, 100,  // xwo -> Cyrl
+    3855, 315,  // xzh -> Marc
+    3859, 100,  // yai -> Cyrl
+    3863, 105,  // ybh -> Deva
+    3867, 105,  // ybi -> Deva
+    3871, 10,  // ydg -> Arab
+    3875, 330,  // yea -> Mlym
+    3879, 150,  // yej -> Grek
+    3883, 535,  // yeu -> Telu
+    3887, 425,  // ygp -> Plrd
+    3891, 185,  // yhd -> Hebr
+    3895, 185,  // yi -> Hebr
+    3898, 595,  // yig -> Yiii
+    3902, 185,  // yih -> Hebr
+    3906, 595,  // yiv -> Yiii
+    3910, 100,  // ykg -> Cyrl
+    3914, 100,  // ykh -> Cyrl
+    3918, 425,  // yna -> Plrd
+    3922, 100,  // ynk -> Cyrl
+    3926, 210,  // yoi -> Jpan
+    3930, 550,  // yoy -> Thai
+    3934, 100,  // yrk -> Cyrl
+    3938, 595,  // ysd -> Yiii
+    3942, 595,  // ysn -> Yiii
+    3946, 595,  // ysp -> Yiii
+    3950, 100,  // ysr -> Cyrl
+    3954, 425,  // ysy -> Plrd
+    3958, 185,  // yud -> Hebr
+    3962, 180,  // yue -> Hant
+    3966, 175,  // yue_CN -> Hans
+    3973, 100,  // yug -> Cyrl
+    3977, 100,  // yux -> Cyrl
+    3981, 425,  // ywq -> Plrd
+    3985, 425,  // ywu -> Plrd
+    3989, 555,  // zau -> Tibt
+    3993, 10,  // zba -> Arab
+    3997, 170,  // zch -> Hani
+    4001, 10,  // zdj -> Arab
+    4005, 170,  // zeh -> Hani
+    4009, 540,  // zen -> Tfng
+    4013, 170,  // zgb -> Hani
+    4017, 540,  // zgh -> Tfng
+    4021, 170,  // zgm -> Hani
+    4025, 170,  // zgn -> Hani
+    4029, 175,  // zh -> Hans
+    4032, 180,  // zh_AU -> Hant
+    4038, 180,  // zh_BN -> Hant
+    4044, 180,  // zh_GB -> Hant
+    4050, 180,  // zh_GF -> Hant
+    4056, 180,  // zh_HK -> Hant
+    4062, 180,  // zh_ID -> Hant
+    4068, 180,  // zh_MO -> Hant
+    4074, 180,  // zh_PA -> Hant
+    4080, 180,  // zh_PF -> Hant
+    4086, 180,  // zh_PH -> Hant
+    4092, 180,  // zh_SR -> Hant
+    4098, 180,  // zh_TH -> Hant
+    4104, 180,  // zh_TW -> Hant
+    4110, 180,  // zh_US -> Hant
+    4116, 180,  // zh_VN -> Hant
+    4122, 170,  // zhd -> Hani
+    4126, 375,  // zhx -> Nshu
+    4130, 100,  // zko -> Cyrl
+    4134, 240,  // zkt -> Kits
+    4138, 100,  // zkz -> Cyrl
+    4142, 170,  // zlj -> Hani
+    4146, 170,  // zln -> Hani
+    4150, 170,  // zlq -> Hani
+    4154, 170,  // zqe -> Hani
+    4158, 395,  // zrg -> Orya
+    4162, 185,  // zrp -> Hebr
+    4166, 10,  // zum -> Arab
+    4170, 120,  // zwa -> Ethi
+    4174, 170,  // zyg -> Hani
+    4178, 170,  // zyn -> Hani
+    4182, 170,  // zzj -> Hani
 };
 
 //======================================================================
@@ -1148,26 +1171,26 @@
     "en_ZM\0en_ZW\0es_419\0es_AR\0es_BO\0es_BR\0es_BZ\0es_CL\0es_CO\0"
     "es_CR\0es_CU\0es_DO\0es_EC\0es_GT\0es_HN\0es_JP\0es_MX\0es_NI\0"
     "es_PA\0es_PE\0es_PR\0es_PY\0es_SV\0es_US\0es_UY\0es_VE\0ff_Adlm\0"
-    "ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0kk_Arab\0ks_Deva\0"
-    "ku_Arab\0kxv_Deva\0kxv_Orya\0kxv_Telu\0ky_Arab\0ky_Latn\0ml_Arab\0"
-    "mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0no_NO\0pa_Arab\0pt_AO\0"
-    "pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0pt_MZ\0pt_PT\0"
-    "pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0sd_Sind\0shi_Latn\0"
-    "so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0uz_Arab\0uz_Cyrl\0"
-    "vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0zh_Hant_HK\0zh_Hant_MO\0"
-    "";
+    "ff_Arab\0fr_HT\0ha_Arab\0hi_Latn\0ht\0iu_Latn\0kaa_Latn\0kk_Arab\0"
+    "kok_Latn\0ks_Deva\0ku_Arab\0kxv_Deva\0kxv_Orya\0kxv_Telu\0ky_Arab\0"
+    "ky_Latn\0ml_Arab\0mn_Mong\0mni_Mtei\0ms_Arab\0nb\0nn\0no\0no_NO\0"
+    "pa_Arab\0pt_AO\0pt_CH\0pt_CV\0pt_FR\0pt_GQ\0pt_GW\0pt_LU\0pt_MO\0"
+    "pt_MZ\0pt_PT\0pt_ST\0pt_TL\0root\0sat_Deva\0sd_Deva\0sd_Khoj\0"
+    "sd_Sind\0shi_Latn\0so_Arab\0sr_Latn\0sw_Arab\0tg_Arab\0ug_Cyrl\0"
+    "uz_Arab\0uz_Cyrl\0vai_Latn\0wo_Arab\0yo_Arab\0yue_Hans\0zh_Hant\0"
+    "zh_Hant_HK\0zh_Hant_MO\0";
 
 const int32_t parentLocaleTable[] = {
-    0, 1062,  // az_Arab -> root
-    8, 1062,  // az_Cyrl -> root
-    16, 1062,  // bal_Latn -> root
-    25, 1062,  // blt_Latn -> root
-    34, 1062,  // bm_Nkoo -> root
-    42, 1062,  // bs_Cyrl -> root
-    50, 1062,  // byn_Latn -> root
-    59, 1062,  // cu_Glag -> root
-    67, 1062,  // dje_Arab -> root
-    76, 1062,  // dyo_Arab -> root
+    0, 1080,  // az_Arab -> root
+    8, 1080,  // az_Cyrl -> root
+    16, 1080,  // bal_Latn -> root
+    25, 1080,  // blt_Latn -> root
+    34, 1080,  // bm_Nkoo -> root
+    42, 1080,  // bs_Cyrl -> root
+    50, 1080,  // byn_Latn -> root
+    59, 1080,  // cu_Glag -> root
+    67, 1080,  // dje_Arab -> root
+    76, 1080,  // dyo_Arab -> root
     92, 85,  // en_150 -> en_001
     99, 85,  // en_AG -> en_001
     105, 85,  // en_AI -> en_001
@@ -1189,7 +1212,7 @@
     201, 85,  // en_DG -> en_001
     207, 92,  // en_DK -> en_150
     213, 85,  // en_DM -> en_001
-    219, 1062,  // en_Dsrt -> root
+    219, 1080,  // en_Dsrt -> root
     227, 85,  // en_ER -> en_001
     233, 92,  // en_FI -> en_150
     239, 85,  // en_FJ -> en_001
@@ -1249,7 +1272,7 @@
     563, 85,  // en_SS -> en_001
     569, 85,  // en_SX -> en_001
     575, 85,  // en_SZ -> en_001
-    581, 1062,  // en_Shaw -> root
+    581, 1080,  // en_Shaw -> root
     589, 85,  // en_TC -> en_001
     595, 85,  // en_TK -> en_001
     601, 85,  // en_TO -> en_001
@@ -1287,57 +1310,59 @@
     800, 673,  // es_US -> es_419
     806, 673,  // es_UY -> es_419
     812, 673,  // es_VE -> es_419
-    818, 1062,  // ff_Adlm -> root
-    826, 1062,  // ff_Arab -> root
-    840, 1062,  // ha_Arab -> root
+    818, 1080,  // ff_Adlm -> root
+    826, 1080,  // ff_Arab -> root
+    840, 1080,  // ha_Arab -> root
     848, 329,  // hi_Latn -> en_IN
     856, 834,  // ht -> fr_HT
-    859, 1062,  // iu_Latn -> root
-    867, 1062,  // kk_Arab -> root
-    875, 1062,  // ks_Deva -> root
-    883, 1062,  // ku_Arab -> root
-    891, 1062,  // kxv_Deva -> root
-    900, 1062,  // kxv_Orya -> root
-    909, 1062,  // kxv_Telu -> root
-    918, 1062,  // ky_Arab -> root
-    926, 1062,  // ky_Latn -> root
-    934, 1062,  // ml_Arab -> root
-    942, 1062,  // mn_Mong -> root
-    950, 1062,  // mni_Mtei -> root
-    959, 1062,  // ms_Arab -> root
-    967, 973,  // nb -> no
-    970, 973,  // nn -> no
-    976, 973,  // no_NO -> no
-    982, 1062,  // pa_Arab -> root
-    990, 1044,  // pt_AO -> pt_PT
-    996, 1044,  // pt_CH -> pt_PT
-    1002, 1044,  // pt_CV -> pt_PT
-    1008, 1044,  // pt_FR -> pt_PT
-    1014, 1044,  // pt_GQ -> pt_PT
-    1020, 1044,  // pt_GW -> pt_PT
-    1026, 1044,  // pt_LU -> pt_PT
-    1032, 1044,  // pt_MO -> pt_PT
-    1038, 1044,  // pt_MZ -> pt_PT
-    1050, 1044,  // pt_ST -> pt_PT
-    1056, 1044,  // pt_TL -> pt_PT
-    1067, 1062,  // sat_Deva -> root
-    1076, 1062,  // sd_Deva -> root
-    1084, 1062,  // sd_Khoj -> root
-    1092, 1062,  // sd_Sind -> root
-    1100, 1062,  // shi_Latn -> root
-    1109, 1062,  // so_Arab -> root
-    1117, 1062,  // sr_Latn -> root
-    1125, 1062,  // sw_Arab -> root
-    1133, 1062,  // tg_Arab -> root
-    1141, 1062,  // ug_Cyrl -> root
-    1149, 1062,  // uz_Arab -> root
-    1157, 1062,  // uz_Cyrl -> root
-    1165, 1062,  // vai_Latn -> root
-    1174, 1062,  // wo_Arab -> root
-    1182, 1062,  // yo_Arab -> root
-    1190, 1062,  // yue_Hans -> root
-    1199, 1062,  // zh_Hant -> root
-    1218, 1207,  // zh_Hant_MO -> zh_Hant_HK
+    859, 1080,  // iu_Latn -> root
+    867, 1080,  // kaa_Latn -> root
+    876, 1080,  // kk_Arab -> root
+    884, 1080,  // kok_Latn -> root
+    893, 1080,  // ks_Deva -> root
+    901, 1080,  // ku_Arab -> root
+    909, 1080,  // kxv_Deva -> root
+    918, 1080,  // kxv_Orya -> root
+    927, 1080,  // kxv_Telu -> root
+    936, 1080,  // ky_Arab -> root
+    944, 1080,  // ky_Latn -> root
+    952, 1080,  // ml_Arab -> root
+    960, 1080,  // mn_Mong -> root
+    968, 1080,  // mni_Mtei -> root
+    977, 1080,  // ms_Arab -> root
+    985, 991,  // nb -> no
+    988, 991,  // nn -> no
+    994, 991,  // no_NO -> no
+    1000, 1080,  // pa_Arab -> root
+    1008, 1062,  // pt_AO -> pt_PT
+    1014, 1062,  // pt_CH -> pt_PT
+    1020, 1062,  // pt_CV -> pt_PT
+    1026, 1062,  // pt_FR -> pt_PT
+    1032, 1062,  // pt_GQ -> pt_PT
+    1038, 1062,  // pt_GW -> pt_PT
+    1044, 1062,  // pt_LU -> pt_PT
+    1050, 1062,  // pt_MO -> pt_PT
+    1056, 1062,  // pt_MZ -> pt_PT
+    1068, 1062,  // pt_ST -> pt_PT
+    1074, 1062,  // pt_TL -> pt_PT
+    1085, 1080,  // sat_Deva -> root
+    1094, 1080,  // sd_Deva -> root
+    1102, 1080,  // sd_Khoj -> root
+    1110, 1080,  // sd_Sind -> root
+    1118, 1080,  // shi_Latn -> root
+    1127, 1080,  // so_Arab -> root
+    1135, 1080,  // sr_Latn -> root
+    1143, 1080,  // sw_Arab -> root
+    1151, 1080,  // tg_Arab -> root
+    1159, 1080,  // ug_Cyrl -> root
+    1167, 1080,  // uz_Arab -> root
+    1175, 1080,  // uz_Cyrl -> root
+    1183, 1080,  // vai_Latn -> root
+    1192, 1080,  // wo_Arab -> root
+    1200, 1080,  // yo_Arab -> root
+    1208, 1080,  // yue_Hans -> root
+    1217, 1080,  // zh_Hant -> root
+    1236, 1225,  // zh_Hant_MO -> zh_Hant_HK
 };
 
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/localematcher.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/localematcher.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/localematcher.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -4,6 +4,8 @@
 // localematcher.cpp
 // created: 2019may08 Markus W. Scherer
 
+#include <optional>
+
 #include "unicode/utypes.h"
 #include "unicode/localebuilder.h"
 #include "unicode/localematcher.h"
@@ -302,7 +304,7 @@
 
 namespace {
 
-LSR getMaximalLsrOrUnd(const XLikelySubtags &likelySubtags, const Locale &locale,
+LSR getMaximalLsrOrUnd(const LikelySubtags &likelySubtags, const Locale &locale,
                        UErrorCode &errorCode) {
     if (U_FAILURE(errorCode) || locale.isBogus() || *locale.getName() == 0 /* "und" */) {
         return UND_LSR;
@@ -338,7 +340,7 @@
 }
 
 LocaleMatcher::LocaleMatcher(const Builder &builder, UErrorCode &errorCode) :
-        likelySubtags(*XLikelySubtags::getSingleton(errorCode)),
+        likelySubtags(*LikelySubtags::getSingleton(errorCode)),
         localeDistance(*LocaleDistance::getSingleton(errorCode)),
         thresholdDistance(builder.thresholdDistance_),
         demotionPerDesiredLocale(0),
@@ -551,7 +553,7 @@
 
 class LocaleLsrIterator {
 public:
-    LocaleLsrIterator(const XLikelySubtags &likelySubtags, Locale::Iterator &locales,
+    LocaleLsrIterator(const LikelySubtags &likelySubtags, Locale::Iterator &locales,
                       ULocMatchLifetime lifetime) :
             likelySubtags(likelySubtags), locales(locales), lifetime(lifetime) {}
 
@@ -596,7 +598,7 @@
     }
 
 private:
-    const XLikelySubtags &likelySubtags;
+    const LikelySubtags &likelySubtags;
     Locale::Iterator &locales;
     ULocMatchLifetime lifetime;
     const Locale *current = nullptr, *remembered = nullptr;
@@ -605,10 +607,11 @@
 
 const Locale *LocaleMatcher::getBestMatch(const Locale &desiredLocale, UErrorCode &errorCode) const {
     if (U_FAILURE(errorCode)) { return nullptr; }
-    int32_t suppIndex = getBestSuppIndex(
+    std::optional<int32_t> suppIndex = getBestSuppIndex(
         getMaximalLsrOrUnd(likelySubtags, desiredLocale, errorCode),
         nullptr, errorCode);
-    return U_SUCCESS(errorCode) && suppIndex >= 0 ? supportedLocales[suppIndex] : defaultLocale;
+    return U_SUCCESS(errorCode) && suppIndex.has_value() ? supportedLocales[*suppIndex]
+                                                         : defaultLocale;
 }
 
 const Locale *LocaleMatcher::getBestMatch(Locale::Iterator &desiredLocales,
@@ -618,12 +621,14 @@
         return defaultLocale;
     }
     LocaleLsrIterator lsrIter(likelySubtags, desiredLocales, ULOCMATCH_TEMPORARY_LOCALES);
-    int32_t suppIndex = getBestSuppIndex(lsrIter.next(errorCode), &lsrIter, errorCode);
-    return U_SUCCESS(errorCode) && suppIndex >= 0 ? supportedLocales[suppIndex] : defaultLocale;
+    std::optional<int32_t> suppIndex = getBestSuppIndex(lsrIter.next(errorCode), &lsrIter, errorCode);
+    return U_SUCCESS(errorCode) && suppIndex.has_value() ? supportedLocales[*suppIndex]
+                                                         : defaultLocale;
 }
 
 const Locale *LocaleMatcher::getBestMatchForListString(
         StringPiece desiredLocaleList, UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return nullptr; }
     LocalePriorityList list(desiredLocaleList, errorCode);
     LocalePriorityList::Iterator iter = list.iterator();
     return getBestMatch(iter, errorCode);
@@ -634,13 +639,13 @@
     if (U_FAILURE(errorCode)) {
         return Result(nullptr, defaultLocale, -1, -1, false);
     }
-    int32_t suppIndex = getBestSuppIndex(
+    std::optional<int32_t> suppIndex = getBestSuppIndex(
         getMaximalLsrOrUnd(likelySubtags, desiredLocale, errorCode),
         nullptr, errorCode);
-    if (U_FAILURE(errorCode) || suppIndex < 0) {
+    if (U_FAILURE(errorCode) || !suppIndex.has_value()) {
         return Result(nullptr, defaultLocale, -1, -1, false);
     } else {
-        return Result(&desiredLocale, supportedLocales[suppIndex], 0, suppIndex, false);
+        return Result(&desiredLocale, supportedLocales[*suppIndex], 0, *suppIndex, false);
     }
 }
 
@@ -650,18 +655,19 @@
         return Result(nullptr, defaultLocale, -1, -1, false);
     }
     LocaleLsrIterator lsrIter(likelySubtags, desiredLocales, ULOCMATCH_TEMPORARY_LOCALES);
-    int32_t suppIndex = getBestSuppIndex(lsrIter.next(errorCode), &lsrIter, errorCode);
-    if (U_FAILURE(errorCode) || suppIndex < 0) {
+    std::optional<int32_t> suppIndex = getBestSuppIndex(lsrIter.next(errorCode), &lsrIter, errorCode);
+    if (U_FAILURE(errorCode) || !suppIndex.has_value()) {
         return Result(nullptr, defaultLocale, -1, -1, false);
     } else {
-        return Result(lsrIter.orphanRemembered(), supportedLocales[suppIndex],
-                      lsrIter.getBestDesiredIndex(), suppIndex, true);
+        return Result(lsrIter.orphanRemembered(), supportedLocales[*suppIndex],
+                      lsrIter.getBestDesiredIndex(), *suppIndex, true);
     }
 }
 
-int32_t LocaleMatcher::getBestSuppIndex(LSR desiredLSR, LocaleLsrIterator *remainingIter,
-                                        UErrorCode &errorCode) const {
-    if (U_FAILURE(errorCode)) { return -1; }
+std::optional<int32_t> LocaleMatcher::getBestSuppIndex(LSR desiredLSR,
+                                                       LocaleLsrIterator *remainingIter,
+                                                       UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return std::nullopt; }
     int32_t desiredIndex = 0;
     int32_t bestSupportedLsrIndex = -1;
     for (int32_t bestShiftedDistance = LocaleDistance::shiftDistance(thresholdDistance);;) {
@@ -684,7 +690,7 @@
             bestShiftedDistance = LocaleDistance::getShiftedDistance(bestIndexAndDistance);
             if (remainingIter != nullptr) {
                 remainingIter->rememberCurrent(desiredIndex, errorCode);
-                if (U_FAILURE(errorCode)) { return -1; }
+                if (U_FAILURE(errorCode)) { return std::nullopt; }
             }
             bestSupportedLsrIndex = LocaleDistance::getIndex(bestIndexAndDistance);
         }
@@ -695,12 +701,12 @@
             break;
         }
         desiredLSR = remainingIter->next(errorCode);
-        if (U_FAILURE(errorCode)) { return -1; }
+        if (U_FAILURE(errorCode)) { return std::nullopt; }
         ++desiredIndex;
     }
     if (bestSupportedLsrIndex < 0) {
         // no good match
-        return -1;
+        return std::nullopt;
     }
     return supportedIndexes[bestSupportedLsrIndex];
 }
@@ -707,8 +713,9 @@
 
 UBool LocaleMatcher::isMatch(const Locale &desired, const Locale &supported,
                              UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return false; }
     LSR suppLSR = getMaximalLsrOrUnd(likelySubtags, supported, errorCode);
-    if (U_FAILURE(errorCode)) { return 0; }
+    if (U_FAILURE(errorCode)) { return false; }
     const LSR *pSuppLSR = &suppLSR;
     int32_t indexAndDistance = localeDistance.getBestIndexAndDistance(
             getMaximalLsrOrUnd(likelySubtags, desired, errorCode),
@@ -718,9 +725,10 @@
 }
 
 double LocaleMatcher::internalMatch(const Locale &desired, const Locale &supported, UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return 0.; }
     // Returns the inverse of the distance: That is, 1-distance(desired, supported).
     LSR suppLSR = getMaximalLsrOrUnd(likelySubtags, supported, errorCode);
-    if (U_FAILURE(errorCode)) { return 0; }
+    if (U_FAILURE(errorCode)) { return 0.; }
     const LSR *pSuppLSR = &suppLSR;
     int32_t indexAndDistance = localeDistance.getBestIndexAndDistance(
             getMaximalLsrOrUnd(likelySubtags, desired, errorCode),
@@ -772,7 +780,7 @@
                 ULOC_ACCEPT_VALID : ULOC_ACCEPT_FALLBACK;
         }
         const char *bestStr = result.getSupportedLocale()->getName();
-        int32_t bestLength = (int32_t)uprv_strlen(bestStr);
+        int32_t bestLength = static_cast<int32_t>(uprv_strlen(bestStr));
         if (bestLength <= capacity) {
             uprv_memcpy(dest, bestStr, bestLength);
         }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/localeprioritylist.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/localeprioritylist.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/localeprioritylist.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -21,13 +21,13 @@
 namespace {
 
 int32_t hashLocale(const UHashTok token) {
-    auto *locale = static_cast<const Locale *>(token.pointer);
+    const auto* locale = static_cast<const Locale*>(token.pointer);
     return locale->hashCode();
 }
 
 UBool compareLocales(const UHashTok t1, const UHashTok t2) {
-    auto *l1 = static_cast<const Locale *>(t1.pointer);
-    auto *l2 = static_cast<const Locale *>(t2.pointer);
+    const auto* l1 = static_cast<const Locale*>(t1.pointer);
+    const auto* l2 = static_cast<const Locale*>(t2.pointer);
     return *l1 == *l2;
 }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -39,14 +39,10 @@
 static int32_t  availableLocaleListCount;
 static icu::UInitOnce gInitOnceLocale {};
 
-U_NAMESPACE_END
+namespace {
 
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV locale_available_cleanup()
+UBool U_CALLCONV locale_available_cleanup()
 {
-    U_NAMESPACE_USE
-
     if (availableLocaleList) {
         delete []availableLocaleList;
         availableLocaleList = nullptr;
@@ -57,10 +53,8 @@
     return true;
 }
 
-U_CDECL_END
+}  // namespace
 
-U_NAMESPACE_BEGIN
-
 void U_CALLCONV locale_available_init() {
     // This function is a friend of class Locale.
     // This function is only invoked via umtx_initOnce().
@@ -107,10 +101,9 @@
 class AvailableLocalesSink : public ResourceSink {
   public:
     void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) override {
+        if (U_FAILURE(status)) { return; }
         ResourceTable resIndexTable = value.getTable(status);
-        if (U_FAILURE(status)) {
-            return;
-        }
+        if (U_FAILURE(status)) { return; }
         for (int32_t i = 0; resIndexTable.getKeyAndValue(i, key, value); ++i) {
             ULocAvailableType type;
             if (uprv_strcmp(key, "InstalledLocales") == 0) {
@@ -144,7 +137,8 @@
     AvailableLocalesStringEnumeration(ULocAvailableType type) : fType(type) {
     }
 
-    const char* next(int32_t *resultLength, UErrorCode&) override {
+    const char* next(int32_t *resultLength, UErrorCode &status) override {
+        if (U_FAILURE(status)) { return nullptr; }
         ULocAvailableType actualType = fType;
         int32_t actualIndex = fIndex++;
 
@@ -176,11 +170,13 @@
         return result;
     }
 
-    void reset(UErrorCode&) override {
+    void reset(UErrorCode &status) override {
+        if (U_FAILURE(status)) { return; }
         fIndex = 0;
     }
 
-    int32_t count(UErrorCode&) const override {
+    int32_t count(UErrorCode &status) const override {
+        if (U_FAILURE(status)) { return 0; }
         if (fType == ULOC_AVAILABLE_WITH_LEGACY_ALIASES) {
             return gAvailableLocaleCounts[ULOC_AVAILABLE_DEFAULT]
                 + gAvailableLocaleCounts[ULOC_AVAILABLE_ONLY_LEGACY_ALIASES];
@@ -196,7 +192,7 @@
 
 /* ### Get available **************************************************/
 
-static UBool U_CALLCONV uloc_cleanup() {
+UBool U_CALLCONV uloc_cleanup() {
     for (int32_t i = 0; i < UPRV_LENGTHOF(gAvailableLocaleNames); i++) {
         uprv_free(gAvailableLocaleNames[i]);
         gAvailableLocaleNames[i] = nullptr;
@@ -209,7 +205,7 @@
 // Load Installed Locales. This function will be called exactly once
 //   via the initOnce mechanism.
 
-static void U_CALLCONV loadInstalledLocales(UErrorCode& status) {
+void U_CALLCONV loadInstalledLocales(UErrorCode& status) {
     ucln_common_registerCleanup(UCLN_COMMON_ULOC, uloc_cleanup);
 
     icu::LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "res_index", &status));
@@ -267,4 +263,3 @@
     }
     return uenum_openFromStringEnumeration(result.orphan(), status);
 }
-

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -17,7 +17,7 @@
 
 Locale LocaleBased::getLocale(ULocDataLocaleType type, UErrorCode& status) const {
     const char* id = getLocaleID(type, status);
-    return Locale((id != 0) ? id : "");
+    return Locale(id != nullptr ? id : "");
 }
 
 const char* LocaleBased::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const {
@@ -37,11 +37,11 @@
 }
 
 void LocaleBased::setLocaleIDs(const char* validID, const char* actualID) {
-    if (validID != 0) {
+    if (validID != nullptr) {
       uprv_strncpy(valid, validID, ULOC_FULLNAME_CAPACITY);
       valid[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate
     }
-    if (actualID != 0) {
+    if (actualID != nullptr) {
       uprv_strncpy(actual, actualID, ULOC_FULLNAME_CAPACITY);
       actual[ULOC_FULLNAME_CAPACITY-1] = 0; // always terminate
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locbased.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locbased.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locbased.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -99,7 +99,7 @@
 inline LocaleBased::LocaleBased(const char* validAlias,
                                 const char* actualAlias) :
     // ugh: cast away const
-    valid((char*)validAlias), actual((char*)actualAlias) {
+    valid(const_cast<char*>(validAlias)), actual(const_cast<char*>(actualAlias)) {
 }
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -26,7 +26,6 @@
 #include "unicode/uloc.h"
 #include "unicode/ures.h"
 #include "unicode/ustring.h"
-#include "bytesinkutil.h"
 #include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -60,7 +59,7 @@
     int32_t length;
 
     buffer=result.getBuffer(ULOC_FULLNAME_CAPACITY);
-    if(buffer==0) {
+    if (buffer == nullptr) {
         result.truncate(0);
         return result;
     }
@@ -72,7 +71,7 @@
 
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         buffer=result.getBuffer(length);
-        if(buffer==0) {
+        if (buffer == nullptr) {
             result.truncate(0);
             return result;
         }
@@ -100,7 +99,7 @@
     int32_t length;
 
     buffer=result.getBuffer(ULOC_FULLNAME_CAPACITY);
-    if(buffer==0) {
+    if (buffer == nullptr) {
         result.truncate(0);
         return result;
     }
@@ -112,7 +111,7 @@
 
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         buffer=result.getBuffer(length);
-        if(buffer==0) {
+        if (buffer == nullptr) {
             result.truncate(0);
             return result;
         }
@@ -140,7 +139,7 @@
     int32_t length;
 
     buffer=result.getBuffer(ULOC_FULLNAME_CAPACITY);
-    if(buffer==0) {
+    if (buffer == nullptr) {
         result.truncate(0);
         return result;
     }
@@ -152,7 +151,7 @@
 
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         buffer=result.getBuffer(length);
-        if(buffer==0) {
+        if (buffer == nullptr) {
             result.truncate(0);
             return result;
         }
@@ -180,7 +179,7 @@
     int32_t length;
 
     buffer=result.getBuffer(ULOC_FULLNAME_CAPACITY);
-    if(buffer==0) {
+    if (buffer == nullptr) {
         result.truncate(0);
         return result;
     }
@@ -192,7 +191,7 @@
 
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         buffer=result.getBuffer(length);
-        if(buffer==0) {
+        if (buffer == nullptr) {
             result.truncate(0);
             return result;
         }
@@ -220,7 +219,7 @@
     int32_t length;
 
     buffer=result.getBuffer(ULOC_FULLNAME_CAPACITY);
-    if(buffer==0) {
+    if (buffer == nullptr) {
         result.truncate(0);
         return result;
     }
@@ -232,7 +231,7 @@
 
     if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
         buffer=result.getBuffer(length);
-        if(buffer==0) {
+        if (buffer == nullptr) {
             result.truncate(0);
             return result;
         }
@@ -246,7 +245,7 @@
     return result;
 }
 
-#if ! UCONFIG_NO_BREAK_ITERATION
+#if !UCONFIG_NO_BREAK_ITERATION
 
 // -------------------------------------
 // Gets the objectLocale display name in the default locale language.
@@ -276,27 +275,29 @@
 
 U_NAMESPACE_USE
 
+namespace {
+
 /* ### Constants **************************************************/
 
 /* These strings describe the resources we attempt to load from
  the locale ResourceBundle data file.*/
-static const char _kLanguages[]       = "Languages";
-static const char _kScripts[]         = "Scripts";
-static const char _kScriptsStandAlone[] = "Scripts%stand-alone";
-static const char _kCountries[]       = "Countries";
-static const char _kVariants[]        = "Variants";
-static const char _kKeys[]            = "Keys";
-static const char _kTypes[]           = "Types";
-//static const char _kRootName[]        = "root";
-static const char _kCurrency[]        = "currency";
-static const char _kCurrencies[]      = "Currencies";
-static const char _kLocaleDisplayPattern[] = "localeDisplayPattern";
-static const char _kPattern[]         = "pattern";
-static const char _kSeparator[]       = "separator";
+constexpr char _kLanguages[]       = "Languages";
+constexpr char _kScripts[]         = "Scripts";
+constexpr char _kScriptsStandAlone[] = "Scripts%stand-alone";
+constexpr char _kCountries[]       = "Countries";
+constexpr char _kVariants[]        = "Variants";
+constexpr char _kKeys[]            = "Keys";
+constexpr char _kTypes[]           = "Types";
+//constexpr char _kRootName[]        = "root";
+constexpr char _kCurrency[]        = "currency";
+constexpr char _kCurrencies[]      = "Currencies";
+constexpr char _kLocaleDisplayPattern[] = "localeDisplayPattern";
+constexpr char _kPattern[]         = "pattern";
+constexpr char _kSeparator[]       = "separator";
 
 /* ### Display name **************************************************/
 
-static int32_t
+int32_t
 _getStringOrCopyKey(const char *path, const char *locale,
                     const char *tableKey, 
                     const char* subTableKey,
@@ -303,16 +304,17 @@
                     const char *itemKey,
                     const char *substitute,
                     char16_t *dest, int32_t destCapacity,
-                    UErrorCode *pErrorCode) {
+                    UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return 0; }
     const char16_t *s = nullptr;
     int32_t length = 0;
 
     if(itemKey==nullptr) {
         /* top-level item: normal resource bundle access */
-        icu::LocalUResourceBundlePointer rb(ures_open(path, locale, pErrorCode));
+        icu::LocalUResourceBundlePointer rb(ures_open(path, locale, &errorCode));
 
-        if(U_SUCCESS(*pErrorCode)) {
-            s=ures_getStringByKey(rb.getAlias(), tableKey, &length, pErrorCode);
+        if(U_SUCCESS(errorCode)) {
+            s=ures_getStringByKey(rb.getAlias(), tableKey, &length, &errorCode);
             /* see comment about closing rb near "return item;" in _res_getTableStringWithFallback() */
         }
     } else {
@@ -319,7 +321,7 @@
         bool isLanguageCode = (uprv_strncmp(tableKey, _kLanguages, 9) == 0);
         /* Language code should not be a number. If it is, set the error code. */
         if (isLanguageCode && uprv_strtol(itemKey, nullptr, 10)) {
-            *pErrorCode = U_MISSING_RESOURCE_ERROR;
+            errorCode = U_MISSING_RESOURCE_ERROR;
         } else {
             /* second-level item, use special fallback */
             s=uloc_getTableStringWithFallback(path, locale,
@@ -327,10 +329,10 @@
                                                subTableKey,
                                                itemKey,
                                                &length,
-                                               pErrorCode);
-            if (U_FAILURE(*pErrorCode) && isLanguageCode && itemKey != nullptr) {
+                                               &errorCode);
+            if (U_FAILURE(errorCode) && isLanguageCode && itemKey != nullptr) {
                 // convert itemKey locale code to canonical form and try again, ICU-20870
-                *pErrorCode = U_ZERO_ERROR;
+                errorCode = U_ZERO_ERROR;
                 Locale canonKey = Locale::createCanonical(itemKey);
                 s=uloc_getTableStringWithFallback(path, locale,
                                                     tableKey,
@@ -337,12 +339,12 @@
                                                     subTableKey,
                                                     canonKey.getName(),
                                                     &length,
-                                                    pErrorCode);
+                                                    &errorCode);
             }
         }
     }
 
-    if(U_SUCCESS(*pErrorCode)) {
+    if(U_SUCCESS(errorCode)) {
         int32_t copyLength=uprv_min(length, destCapacity);
         if(copyLength>0 && s != nullptr) {
             u_memcpy(dest, s, copyLength);
@@ -349,50 +351,44 @@
         }
     } else {
         /* no string from a resource bundle: convert the substitute */
-        length=(int32_t)uprv_strlen(substitute);
+        length = static_cast<int32_t>(uprv_strlen(substitute));
         u_charsToUChars(substitute, dest, uprv_min(length, destCapacity));
-        *pErrorCode=U_USING_DEFAULT_WARNING;
+        errorCode = U_USING_DEFAULT_WARNING;
     }
 
-    return u_terminateUChars(dest, destCapacity, length, pErrorCode);
+    return u_terminateUChars(dest, destCapacity, length, &errorCode);
 }
 
-typedef  int32_t U_CALLCONV UDisplayNameGetter(const char *, char *, int32_t, UErrorCode *);
+using UDisplayNameGetter = icu::CharString(const char*, UErrorCode&);
 
-static int32_t
+int32_t
 _getDisplayNameForComponent(const char *locale,
                             const char *displayLocale,
                             char16_t *dest, int32_t destCapacity,
                             UDisplayNameGetter *getter,
                             const char *tag,
-                            UErrorCode *pErrorCode) {
-    char localeBuffer[ULOC_FULLNAME_CAPACITY*4];
-    int32_t length;
+                            UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return 0; }
     UErrorCode localStatus;
     const char* root = nullptr;
 
-    /* argument checking */
-    if(pErrorCode==nullptr || U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-
     if(destCapacity<0 || (destCapacity>0 && dest==nullptr)) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
 
     localStatus = U_ZERO_ERROR;
-    length=(*getter)(locale, localeBuffer, sizeof(localeBuffer), &localStatus);
-    if(U_FAILURE(localStatus) || localStatus==U_STRING_NOT_TERMINATED_WARNING) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+    icu::CharString localeBuffer = (*getter)(locale, localStatus);
+    if (U_FAILURE(localStatus)) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
-    if(length==0) {
+    if (localeBuffer.isEmpty()) {
         // For the display name, we treat this as unknown language (ICU-20273).
-        if (getter == uloc_getLanguage) {
-            uprv_strcpy(localeBuffer, "und");
+        if (getter == ulocimp_getLanguage) {
+            localeBuffer.append("und", errorCode);
         } else {
-            return u_terminateUChars(dest, destCapacity, 0, pErrorCode);
+            return u_terminateUChars(dest, destCapacity, 0, &errorCode);
         }
     }
 
@@ -399,12 +395,14 @@
     root = tag == _kCountries ? U_ICUDATA_REGION : U_ICUDATA_LANG;
 
     return _getStringOrCopyKey(root, displayLocale,
-                               tag, nullptr, localeBuffer,
-                               localeBuffer,
+                               tag, nullptr, localeBuffer.data(),
+                               localeBuffer.data(),
                                dest, destCapacity,
-                               pErrorCode);
+                               errorCode);
 }
 
+}  // namespace
+
 U_CAPI int32_t U_EXPORT2
 uloc_getDisplayLanguage(const char *locale,
                         const char *displayLocale,
@@ -411,7 +409,7 @@
                         char16_t *dest, int32_t destCapacity,
                         UErrorCode *pErrorCode) {
     return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                uloc_getLanguage, _kLanguages, pErrorCode);
+                ulocimp_getLanguage, _kLanguages, *pErrorCode);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -420,19 +418,20 @@
                       char16_t *dest, int32_t destCapacity,
                       UErrorCode *pErrorCode)
 {
+    if (U_FAILURE(*pErrorCode)) { return 0; }
     UErrorCode err = U_ZERO_ERROR;
     int32_t res = _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                uloc_getScript, _kScriptsStandAlone, &err);
+                ulocimp_getScript, _kScriptsStandAlone, err);
 
     if (destCapacity == 0 && err == U_BUFFER_OVERFLOW_ERROR) {
         // For preflight, return the max of the value and the fallback.
         int32_t fallback_res = _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                                                           uloc_getScript, _kScripts, pErrorCode);
+                                                           ulocimp_getScript, _kScripts, *pErrorCode);
         return (fallback_res > res) ? fallback_res : res;
     }
     if ( err == U_USING_DEFAULT_WARNING ) {
         return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                                           uloc_getScript, _kScripts, pErrorCode);
+                                           ulocimp_getScript, _kScripts, *pErrorCode);
     } else {
         *pErrorCode = err;
         return res;
@@ -446,7 +445,7 @@
                       UErrorCode *pErrorCode)
 {
     return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                    uloc_getScript, _kScripts, pErrorCode);
+                    ulocimp_getScript, _kScripts, *pErrorCode);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -455,7 +454,7 @@
                        char16_t *dest, int32_t destCapacity,
                        UErrorCode *pErrorCode) {
     return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                uloc_getCountry, _kCountries, pErrorCode);
+                ulocimp_getRegion, _kCountries, *pErrorCode);
 }
 
 /*
@@ -469,7 +468,7 @@
                        char16_t *dest, int32_t destCapacity,
                        UErrorCode *pErrorCode) {
     return _getDisplayNameForComponent(locale, displayLocale, dest, destCapacity,
-                uloc_getVariant, _kVariants, pErrorCode);
+                ulocimp_getVariant, _kVariants, *pErrorCode);
 }
 
 /* Instead of having a separate pass for 'special' patterns, reintegrate the two
@@ -809,7 +808,7 @@
                                keyword, 
                                keyword,      
                                dest, destCapacity,
-                               status);
+                               *status);
 
 }
 
@@ -837,9 +836,8 @@
 
     /* get the keyword value */
     CharString keywordValue;
-    {
-        CharStringByteSink sink(&keywordValue);
-        ulocimp_getKeywordValue(locale, keyword, sink, status);
+    if (keyword != nullptr && *keyword != '\0') {
+        keywordValue = ulocimp_getKeywordValue(locale, keyword, *status);
     }
 
     /* 
@@ -897,6 +895,6 @@
                                    keywordValue.data(),
                                    keywordValue.data(),
                                    dest, destCapacity,
-                                   status);
+                                   *status);
     }
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdistance.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdistance.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdistance.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -59,7 +59,7 @@
 void U_CALLCONV LocaleDistance::initLocaleDistance(UErrorCode &errorCode) {
     // This function is invoked only via umtx_initOnce().
     U_ASSERT(gLocaleDistance == nullptr);
-    const XLikelySubtags &likely = *XLikelySubtags::getSingleton(errorCode);
+    const LikelySubtags &likely = *LikelySubtags::getSingleton(errorCode);
     if (U_FAILURE(errorCode)) { return; }
     const LocaleDistanceData &data = likely.getDistanceData();
     if (data.distanceTrieBytes == nullptr ||
@@ -83,7 +83,7 @@
     return gLocaleDistance;
 }
 
-LocaleDistance::LocaleDistance(const LocaleDistanceData &data, const XLikelySubtags &likely) :
+LocaleDistance::LocaleDistance(const LocaleDistanceData &data, const LikelySubtags &likely) :
         likelySubtags(likely),
         trie(data.distanceTrieBytes),
         regionToPartitionsIndex(data.regionToPartitions), partitionArrays(data.partitions),
@@ -119,7 +119,7 @@
     uint64_t desLangState = desLangDistance >= 0 && supportedLSRsLength > 1 ? iter.getState64() : 0;
     // Index of the supported LSR with the lowest distance.
     int32_t bestIndex = -1;
-    // Cached lookup info from XLikelySubtags.compareLikely().
+    // Cached lookup info from LikelySubtags.compareLikely().
     int32_t bestLikelyInfo = -1;
     for (int32_t slIndex = 0; slIndex < supportedLSRsLength; ++slIndex) {
         const LSR &supported = *supportedLSRs[slIndex];
@@ -399,7 +399,7 @@
     }
 }
 
-UBool LocaleDistance::isParadigmLSR(const LSR &lsr) const {
+bool LocaleDistance::isParadigmLSR(const LSR &lsr) const {
     // Linear search for a very short list (length 6 as of 2019),
     // because we look for equivalence not equality, and
     // because it's easy.

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdistance.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdistance.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdistance.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -62,7 +62,7 @@
                                     ULocMatchFavorSubtag favorSubtag,
                                     ULocMatchDirection direction) const;
 
-    UBool isParadigmLSR(const LSR &lsr) const;
+    bool isParadigmLSR(const LSR &lsr) const;
 
     int32_t getDefaultScriptDistance() const {
         return defaultScriptDistance;
@@ -83,14 +83,14 @@
     // tic constexpr int32_t MAX_INDEX = 0x1fffff;  // avoids sign bit
     static constexpr int32_t INDEX_NEG_1 = 0xfffffc00;
 
-    LocaleDistance(const LocaleDistanceData &data, const XLikelySubtags &likely);
+    LocaleDistance(const LocaleDistanceData &data, const LikelySubtags &likely);
     LocaleDistance(const LocaleDistance &other) = delete;
     LocaleDistance &operator=(const LocaleDistance &other) = delete;
 
     static void initLocaleDistance(UErrorCode &errorCode);
 
-    UBool isMatch(const LSR &desired, const LSR &supported,
-                  int32_t shiftedThreshold, ULocMatchFavorSubtag favorSubtag) const {
+    bool isMatch(const LSR &desired, const LSR &supported,
+                 int32_t shiftedThreshold, ULocMatchFavorSubtag favorSubtag) const {
         const LSR *pSupp = &supported;
         return getBestIndexAndDistance(
             desired, &pSupp, 1,
@@ -119,7 +119,7 @@
         return defaultRegionDistance;
     }
 
-    const XLikelySubtags &likelySubtags;
+    const LikelySubtags &likelySubtags;
 
     // The trie maps each dlang+slang+dscript+sscript+dregion+sregion
     // (encoded in ASCII with bit 7 set on the last character of each subtag) to a distance.

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -18,45 +18,17 @@
 #include "unicode/udisplaycontext.h"
 #include "unicode/brkiter.h"
 #include "unicode/ucurr.h"
+#include "bytesinkutil.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
 #include "mutex.h"
+#include "uassert.h"
 #include "ulocimp.h"
 #include "umutex.h"
 #include "ureslocs.h"
 #include "uresimp.h"
 
-#include <stdarg.h>
-
-/**
- * Concatenate a number of null-terminated strings to buffer, leaving a
- * null-terminated string.  The last argument should be the null pointer.
- * Return the length of the string in the buffer, not counting the trailing
- * null.  Return -1 if there is an error (buffer is null, or buflen < 1).
- */
-static int32_t ncat(char *buffer, uint32_t buflen, ...) {
-  va_list args;
-  char *str;
-  char *p = buffer;
-  const char* e = buffer + buflen - 1;
-
-  if (buffer == nullptr || buflen < 1) {
-    return -1;
-  }
-
-  va_start(args, buflen);
-  while ((str = va_arg(args, char *)) != 0) {
-    char c;
-    while (p != e && (c = *str++) != 0) {
-      *p++ = c;
-    }
-  }
-  *p = 0;
-  va_end(args);
-
-  return static_cast<int32_t>(p - buffer);
-}
-
 U_NAMESPACE_BEGIN
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -64,12 +36,13 @@
 // Access resource data for locale components.
 // Wrap code in uloc.c for now.
 class ICUDataTable {
-    const char* path;
+    const char* const path;
     Locale locale;
 
 public:
+    // Note: path should be a pointer to a statically allocated string.
     ICUDataTable(const char* path, const Locale& locale);
-    ~ICUDataTable();
+    ~ICUDataTable() = default;
 
     const Locale& getLocale();
 
@@ -95,25 +68,11 @@
 }
 
 ICUDataTable::ICUDataTable(const char* path, const Locale& locale)
-    : path(nullptr), locale(Locale::getRoot())
+    : path(path), locale(locale)
 {
-  if (path) {
-    int32_t len = static_cast<int32_t>(uprv_strlen(path));
-    this->path = (const char*) uprv_malloc(len + 1);
-    if (this->path) {
-      uprv_strcpy((char *)this->path, path);
-      this->locale = locale;
-    }
-  }
+    U_ASSERT(path != nullptr);
 }
 
-ICUDataTable::~ICUDataTable() {
-  if (path) {
-    uprv_free((void*) path);
-    path = nullptr;
-  }
-}
-
 const Locale&
 ICUDataTable::getLocale() {
   return locale;
@@ -305,7 +264,7 @@
     };
     // Capitalization transforms. For each usage type, indicates whether to titlecase for
     // the context specified in capitalizationContext (which we know at construction time)
-     UBool fCapitalization[kCapContextUsageCount];
+     bool fCapitalization[kCapContextUsageCount];
 
 public:
     // constructor
@@ -341,12 +300,12 @@
                                 UnicodeString& result, bool substitute) const;
     UnicodeString& appendWithSep(UnicodeString& buffer, const UnicodeString& src) const;
     UnicodeString& adjustForUsageAndContext(CapContextUsage usage, UnicodeString& result) const;
-    UnicodeString& scriptDisplayName(const char* script, UnicodeString& result, UBool skipAdjust) const;
-    UnicodeString& regionDisplayName(const char* region, UnicodeString& result, UBool skipAdjust) const;
-    UnicodeString& variantDisplayName(const char* variant, UnicodeString& result, UBool skipAdjust) const;
-    UnicodeString& keyDisplayName(const char* key, UnicodeString& result, UBool skipAdjust) const;
+    UnicodeString& scriptDisplayName(const char* script, UnicodeString& result, bool skipAdjust) const;
+    UnicodeString& regionDisplayName(const char* region, UnicodeString& result, bool skipAdjust) const;
+    UnicodeString& variantDisplayName(const char* variant, UnicodeString& result, bool skipAdjust) const;
+    UnicodeString& keyDisplayName(const char* key, UnicodeString& result, bool skipAdjust) const;
     UnicodeString& keyValueDisplayName(const char* key, const char* value,
-                                        UnicodeString& result, UBool skipAdjust) const;
+                                        UnicodeString& result, bool skipAdjust) const;
     void initialize();
 
     struct CapitalizationContextSink;
@@ -377,10 +336,11 @@
 {
     while (length-- > 0) {
         UDisplayContext value = *contexts++;
-        UDisplayContextType selector = (UDisplayContextType)((uint32_t)value >> 8);
+        UDisplayContextType selector =
+            static_cast<UDisplayContextType>(static_cast<uint32_t>(value) >> 8);
         switch (selector) {
             case UDISPCTX_TYPE_DIALECT_HANDLING:
-                dialectHandling = (UDialectHandling)value;
+                dialectHandling = static_cast<UDialectHandling>(value);
                 break;
             case UDISPCTX_TYPE_CAPITALIZATION:
                 capitalizationContext = value;
@@ -399,7 +359,7 @@
 }
 
 struct LocaleDisplayNamesImpl::CapitalizationContextSink : public ResourceSink {
-    UBool hasCapitalizationUsage;
+    bool hasCapitalizationUsage;
     LocaleDisplayNamesImpl& parent;
 
     CapitalizationContextSink(LocaleDisplayNamesImpl& _parent)
@@ -448,7 +408,7 @@
 
 void
 LocaleDisplayNamesImpl::initialize() {
-    LocaleDisplayNamesImpl *nonConstThis = (LocaleDisplayNamesImpl *)this;
+    LocaleDisplayNamesImpl* nonConstThis = this;
     nonConstThis->locale = langData.getLocale() == Locale::getRoot()
         ? regionData.getLocale()
         : langData.getLocale();
@@ -467,16 +427,16 @@
         pattern = UnicodeString("{0} ({1})", -1, US_INV);
     }
     format.applyPatternMinMaxArguments(pattern, 2, 2, status);
-    if (pattern.indexOf((char16_t)0xFF08) >= 0) {
-        formatOpenParen.setTo((char16_t)0xFF08);         // fullwidth (
-        formatReplaceOpenParen.setTo((char16_t)0xFF3B);  // fullwidth [
-        formatCloseParen.setTo((char16_t)0xFF09);        // fullwidth )
-        formatReplaceCloseParen.setTo((char16_t)0xFF3D); // fullwidth ]
+    if (pattern.indexOf(static_cast<char16_t>(0xFF08)) >= 0) {
+        formatOpenParen.setTo(static_cast<char16_t>(0xFF08));         // fullwidth (
+        formatReplaceOpenParen.setTo(static_cast<char16_t>(0xFF3B));  // fullwidth [
+        formatCloseParen.setTo(static_cast<char16_t>(0xFF09));        // fullwidth )
+        formatReplaceCloseParen.setTo(static_cast<char16_t>(0xFF3D)); // fullwidth ]
     } else {
-        formatOpenParen.setTo((char16_t)0x0028);         // (
-        formatReplaceOpenParen.setTo((char16_t)0x005B);  // [
-        formatCloseParen.setTo((char16_t)0x0029);        // )
-        formatReplaceCloseParen.setTo((char16_t)0x005D); // ]
+        formatOpenParen.setTo(static_cast<char16_t>(0x0028));         // (
+        formatReplaceOpenParen.setTo(static_cast<char16_t>(0x005B));  // [
+        formatCloseParen.setTo(static_cast<char16_t>(0x0029));        // )
+        formatReplaceCloseParen.setTo(static_cast<char16_t>(0x005D)); // ]
     }
 
     UnicodeString ktPattern;
@@ -490,7 +450,7 @@
 #if !UCONFIG_NO_BREAK_ITERATION
     // Only get the context data if we need it! This is a const object so we know now...
     // Also check whether we will need a break iterator (depends on the data)
-    UBool needBrkIter = false;
+    bool needBrkIter = false;
     if (capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || capitalizationContext == UDISPCTX_CAPITALIZATION_FOR_STANDALONE) {
         LocalUResourceBundlePointer resource(ures_open(nullptr, locale.getName(), &status));
         if (U_FAILURE(status)) { return; }
@@ -536,7 +496,7 @@
 LocaleDisplayNamesImpl::getContext(UDisplayContextType type) const {
     switch (type) {
         case UDISPCTX_TYPE_DIALECT_HANDLING:
-            return (UDisplayContext)dialectHandling;
+            return static_cast<UDisplayContext>(dialectHandling);
         case UDISPCTX_TYPE_CAPITALIZATION:
             return capitalizationContext;
         case UDISPCTX_TYPE_DISPLAY_LENGTH:
@@ -546,7 +506,7 @@
         default:
             break;
     }
-    return (UDisplayContext)0;
+    return static_cast<UDisplayContext>(0);
 }
 
 UnicodeString&
@@ -582,36 +542,51 @@
   const char* country = loc.getCountry();
   const char* variant = loc.getVariant();
 
-  UBool hasScript = uprv_strlen(script) > 0;
-  UBool hasCountry = uprv_strlen(country) > 0;
-  UBool hasVariant = uprv_strlen(variant) > 0;
+  bool hasScript = uprv_strlen(script) > 0;
+  bool hasCountry = uprv_strlen(country) > 0;
+  bool hasVariant = uprv_strlen(variant) > 0;
 
   if (dialectHandling == ULDN_DIALECT_NAMES) {
-    char buffer[ULOC_FULLNAME_CAPACITY];
+    UErrorCode status = U_ZERO_ERROR;
+    CharString buffer;
     do { // loop construct is so we can break early out of search
       if (hasScript && hasCountry) {
-        ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", script, "_", country, (char *)0);
-        localeIdName(buffer, resultName, false);
-        if (!resultName.isBogus()) {
-          hasScript = false;
-          hasCountry = false;
-          break;
+        buffer.append(lang, status)
+              .append('_', status)
+              .append(script, status)
+              .append('_', status)
+              .append(country, status);
+        if (U_SUCCESS(status)) {
+          localeIdName(buffer.data(), resultName, false);
+          if (!resultName.isBogus()) {
+            hasScript = false;
+            hasCountry = false;
+            break;
+          }
         }
       }
       if (hasScript) {
-        ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", script, (char *)0);
-        localeIdName(buffer, resultName, false);
-        if (!resultName.isBogus()) {
-          hasScript = false;
-          break;
+        buffer.append(lang, status)
+              .append('_', status)
+              .append(script, status);
+        if (U_SUCCESS(status)) {
+          localeIdName(buffer.data(), resultName, false);
+          if (!resultName.isBogus()) {
+            hasScript = false;
+            break;
+          }
         }
       }
       if (hasCountry) {
-        ncat(buffer, ULOC_FULLNAME_CAPACITY, lang, "_", country, (char*)0);
-        localeIdName(buffer, resultName, false);
-        if (!resultName.isBogus()) {
-          hasCountry = false;
-          break;
+        buffer.append(lang, status)
+              .append('_', status)
+              .append(country, status);
+        if (U_SUCCESS(status)) {
+          localeIdName(buffer.data(), resultName, false);
+          if (!resultName.isBogus()) {
+            hasCountry = false;
+            break;
+          }
         }
       }
     } while (false);
@@ -658,21 +633,19 @@
   LocalPointer<StringEnumeration> e(loc.createKeywords(status));
   if (e.isValid() && U_SUCCESS(status)) {
     UnicodeString temp2;
-    char value[ULOC_KEYWORD_AND_VALUES_CAPACITY]; // sigh, no ULOC_VALUE_CAPACITY
     const char* key;
-    while ((key = e->next((int32_t *)0, status)) != nullptr) {
-      value[0] = 0;
-      loc.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
-      if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
-        return result;
+    while ((key = e->next((int32_t*)nullptr, status)) != nullptr) {
+        auto value = loc.getKeywordValue<CharString>(key, status);
+        if (U_FAILURE(status)) {
+            return result;
       }
       keyDisplayName(key, temp, true);
       temp.findAndReplace(formatOpenParen, formatReplaceOpenParen);
       temp.findAndReplace(formatCloseParen, formatReplaceCloseParen);
-      keyValueDisplayName(key, value, temp2, true);
+      keyValueDisplayName(key, value.data(), temp2, true);
       temp2.findAndReplace(formatOpenParen, formatReplaceOpenParen);
       temp2.findAndReplace(formatCloseParen, formatReplaceCloseParen);
-      if (temp2 != UnicodeString(value, -1, US_INV)) {
+      if (temp2 != UnicodeString(value.data(), -1, US_INV)) {
         appendWithSep(resultRemainder, temp2);
       } else if (temp != UnicodeString(key, -1, US_INV)) {
         UnicodeString temp3;
@@ -680,7 +653,7 @@
         appendWithSep(resultRemainder, temp3);
       } else {
         appendWithSep(resultRemainder, temp)
-          .append((char16_t)0x3d /* = */)
+          .append(static_cast<char16_t>(0x3d) /* = */)
           .append(temp2);
       }
     }
@@ -779,7 +752,7 @@
 UnicodeString&
 LocaleDisplayNamesImpl::scriptDisplayName(const char* script,
                                           UnicodeString& result,
-                                          UBool skipAdjust) const {
+                                          bool skipAdjust) const {
     if (nameLength == UDISPCTX_LENGTH_SHORT) {
         langData.getNoFallback("Scripts%short", script, result);
         if (!result.isBogus()) {
@@ -809,7 +782,7 @@
 UnicodeString&
 LocaleDisplayNamesImpl::regionDisplayName(const char* region,
                                           UnicodeString& result,
-                                          UBool skipAdjust) const {
+                                          bool skipAdjust) const {
     if (nameLength == UDISPCTX_LENGTH_SHORT) {
          regionData.getNoFallback("Countries%short", region, result);
         if (!result.isBogus()) {
@@ -834,7 +807,7 @@
 UnicodeString&
 LocaleDisplayNamesImpl::variantDisplayName(const char* variant,
                                            UnicodeString& result,
-                                           UBool skipAdjust) const {
+                                           bool skipAdjust) const {
     // don't have a resource for short variant names
     if (substitute == UDISPCTX_SUBSTITUTE) {
         langData.get("Variants", variant, result);
@@ -853,7 +826,7 @@
 UnicodeString&
 LocaleDisplayNamesImpl::keyDisplayName(const char* key,
                                        UnicodeString& result,
-                                       UBool skipAdjust) const {
+                                       bool skipAdjust) const {
     // don't have a resource for short key names
     if (substitute == UDISPCTX_SUBSTITUTE) {
         langData.get("Keys", key, result);
@@ -873,7 +846,7 @@
 LocaleDisplayNamesImpl::keyValueDisplayName(const char* key,
                                             const char* value,
                                             UnicodeString& result,
-                                            UBool skipAdjust) const {
+                                            bool skipAdjust) const {
     if (uprv_strcmp(key, "currency") == 0) {
         // ICU4C does not have ICU4J CurrencyDisplayInfo equivalent for now.
         UErrorCode sts = U_ZERO_ERROR;
@@ -939,7 +912,7 @@
           UDialectHandling dialectHandling,
           UErrorCode *pErrorCode) {
   if (U_FAILURE(*pErrorCode)) {
-    return 0;
+    return nullptr;
   }
   if (locale == nullptr) {
     locale = uloc_getDefault();
@@ -952,7 +925,7 @@
                     UDisplayContext *contexts, int32_t length,
                     UErrorCode *pErrorCode) {
   if (U_FAILURE(*pErrorCode)) {
-    return 0;
+    return nullptr;
   }
   if (locale == nullptr) {
     locale = uloc_getDefault();

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -31,6 +31,8 @@
 ******************************************************************************
 */
 
+#include <optional>
+#include <string_view>
 #include <utility>
 
 #include "unicode/bytestream.h"
@@ -57,10 +59,6 @@
 #include "ustr_imp.h"
 #include "uvector.h"
 
-U_CDECL_BEGIN
-static UBool U_CALLCONV locale_cleanup();
-U_CDECL_END
-
 U_NAMESPACE_BEGIN
 
 static Locale   *gLocaleCache = nullptr;
@@ -106,16 +104,17 @@
     eMAX_LOCALES
 } ELocalePos;
 
-U_CDECL_BEGIN
+namespace {
+
 //
 // Deleter function for Locales owned by the default Locale hash table/
 //
-static void U_CALLCONV
+void U_CALLCONV
 deleteLocale(void *obj) {
-    delete (icu::Locale *) obj;
+    delete static_cast<icu::Locale*>(obj);
 }
 
-static UBool U_CALLCONV locale_cleanup()
+UBool U_CALLCONV locale_cleanup()
 {
     U_NAMESPACE_USE
 
@@ -131,12 +130,11 @@
     return true;
 }
 
-
-static void U_CALLCONV locale_init(UErrorCode &status) {
+void U_CALLCONV locale_init(UErrorCode &status) {
     U_NAMESPACE_USE
 
     U_ASSERT(gLocaleCache == nullptr);
-    gLocaleCache = new Locale[(int)eMAX_LOCALES];
+    gLocaleCache = new Locale[static_cast<int>(eMAX_LOCALES)];
     if (gLocaleCache == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
@@ -163,7 +161,7 @@
     gLocaleCache[eCANADA_FRENCH] = Locale("fr", "CA");
 }
 
-U_CDECL_END
+}  // namespace
 
 U_NAMESPACE_BEGIN
 
@@ -182,15 +180,8 @@
         canonicalize = true; // always canonicalize host ID
     }
 
-    CharString localeNameBuf;
-    {
-        CharStringByteSink sink(&localeNameBuf);
-        if (canonicalize) {
-            ulocimp_canonicalize(id, sink, &status);
-        } else {
-            ulocimp_getName(id, sink, &status);
-        }
-    }
+    CharString localeNameBuf =
+        canonicalize ? ulocimp_canonicalize(id, status) : ulocimp_getName(id, status);
 
     if (U_FAILURE(status)) {
         return gDefaultLocale;
@@ -205,7 +196,7 @@
         ucln_common_registerCleanup(UCLN_COMMON_LOCALE, locale_cleanup);
     }
 
-    Locale *newDefault = (Locale *)uhash_get(gDefaultLocalesHashT, localeNameBuf.data());
+    Locale* newDefault = static_cast<Locale*>(uhash_get(gDefaultLocalesHashT, localeNameBuf.data()));
     if (newDefault == nullptr) {
         newDefault = new Locale(Locale::eBOGUS);
         if (newDefault == nullptr) {
@@ -213,7 +204,7 @@
             return gDefaultLocale;
         }
         newDefault->init(localeNameBuf.data(), false);
-        uhash_put(gDefaultLocalesHashT, (char*) newDefault->getName(), newDefault, &status);
+        uhash_put(gDefaultLocalesHashT, const_cast<char*>(newDefault->getName()), newDefault, &status);
         if (U_FAILURE(status)) {
             return gDefaultLocale;
         }
@@ -307,7 +298,7 @@
         // Language
         if ( newLanguage != nullptr )
         {
-            lsize = (int32_t)uprv_strlen(newLanguage);
+            lsize = static_cast<int32_t>(uprv_strlen(newLanguage));
             if ( lsize < 0 || lsize > ULOC_STRING_LIMIT ) { // int32 wrap
                 setToBogus();
                 return;
@@ -319,7 +310,7 @@
         // _Country
         if ( newCountry != nullptr )
         {
-            csize = (int32_t)uprv_strlen(newCountry);
+            csize = static_cast<int32_t>(uprv_strlen(newCountry));
             if ( csize < 0 || csize > ULOC_STRING_LIMIT ) { // int32 wrap
                 setToBogus();
                 return;
@@ -336,7 +327,7 @@
             }
 
             // remove trailing _'s
-            vsize = (int32_t)uprv_strlen(newVariant);
+            vsize = static_cast<int32_t>(uprv_strlen(newVariant));
             if ( vsize < 0 || vsize > ULOC_STRING_LIMIT ) { // int32 wrap
                 setToBogus();
                 return;
@@ -349,7 +340,7 @@
 
         if ( newKeywords != nullptr)
         {
-            ksize = (int32_t)uprv_strlen(newKeywords);
+            ksize = static_cast<int32_t>(uprv_strlen(newKeywords));
             if ( ksize < 0 || ksize > ULOC_STRING_LIMIT ) {
               setToBogus();
               return;
@@ -494,7 +485,7 @@
 UInitOnce gKnownCanonicalizedInitOnce {};
 UHashtable *gKnownCanonicalized = nullptr;
 
-static const char* const KNOWN_CANONICALIZED[] = {
+constexpr const char* KNOWN_CANONICALIZED[] = {
     "c",
     // Commonly used locales known are already canonicalized
     "af", "af_ZA", "am", "am_ET", "ar", "ar_001", "as", "as_IN", "az", "az_AZ",
@@ -518,13 +509,13 @@
     "zh_Hant_TW", "zh_TW", "zu", "zu_ZA"
 };
 
-static UBool U_CALLCONV cleanupKnownCanonicalized() {
+UBool U_CALLCONV cleanupKnownCanonicalized() {
     gKnownCanonicalizedInitOnce.reset();
     if (gKnownCanonicalized) { uhash_close(gKnownCanonicalized); }
     return true;
 }
 
-static void U_CALLCONV loadKnownCanonicalized(UErrorCode &status) {
+void U_CALLCONV loadKnownCanonicalized(UErrorCode &status) {
     ucln_common_registerCleanup(UCLN_COMMON_LOCALE_KNOWN_CANONICALIZED,
                                 cleanupKnownCanonicalized);
     LocalUHashtablePointer newKnownCanonicalizedMap(
@@ -920,6 +911,8 @@
  */
 AliasData*
 AliasDataBuilder::build(UErrorCode &status) {
+    if (U_FAILURE(status)) { return nullptr; }
+
     LocalUResourceBundlePointer metadata(
         ures_openDirect(nullptr, "metadata", &status));
     LocalUResourceBundlePointer metadataAlias(
@@ -1065,7 +1058,7 @@
  */
 class AliasReplacer {
 public:
-    AliasReplacer(UErrorCode status) :
+    AliasReplacer(UErrorCode& status) :
             language(nullptr), script(nullptr), region(nullptr),
             extensions(nullptr),
             // store value in variants only once
@@ -1130,12 +1123,12 @@
     }
 
     // Gather fields and generate locale ID into out.
-    CharString& outputToString(CharString& out, UErrorCode status);
+    CharString& outputToString(CharString& out, UErrorCode& status);
 
     // Generate the lookup key.
     CharString& generateKey(const char* language, const char* region,
                             const char* variant, CharString& out,
-                            UErrorCode status);
+                            UErrorCode& status);
 
     void parseLanguageReplacement(const char* replacement,
                                   const char*& replaceLanguage,
@@ -1172,8 +1165,9 @@
 CharString&
 AliasReplacer::generateKey(
         const char* language, const char* region, const char* variant,
-        CharString& out, UErrorCode status)
+        CharString& out, UErrorCode& status)
 {
+    if (U_FAILURE(status)) { return out; }
     out.append(language, status);
     if (notEmpty(region)) {
         out.append(SEP_CHAR, status)
@@ -1208,8 +1202,8 @@
         return;
     }
     // We have multiple field so we have to allocate and parse
-    CharString* str = new CharString(
-        replacement, (int32_t)uprv_strlen(replacement), status);
+    CharString* str =
+        new CharString(replacement, static_cast<int32_t>(uprv_strlen(replacement)), status);
     LocalPointer<CharString> lpStr(str, status);
     toBeFreed.adoptElement(lpStr.orphan(), status);
     if (U_FAILURE(status)) {
@@ -1221,7 +1215,7 @@
     *endOfField = '\0'; // null terminiate it.
     endOfField++;
     const char* start = endOfField;
-    endOfField = (char*) uprv_strchr(start, '_');
+    endOfField = const_cast<char*>(uprv_strchr(start, '_'));
     size_t len = 0;
     if (endOfField == nullptr) {
         len = uprv_strlen(start);
@@ -1236,7 +1230,7 @@
             return;
         }
         start = endOfField++;
-        endOfField = (char*)uprv_strchr(start, '_');
+        endOfField = const_cast<char*>(uprv_strchr(start, '_'));
         if (endOfField == nullptr) {
             len = uprv_strlen(start);
         } else {
@@ -1251,7 +1245,7 @@
             return;
         }
         start = endOfField++;
-        endOfField = (char*)uprv_strchr(start, '_');
+        endOfField = const_cast<char*>(uprv_strchr(start, '_'));
         if (endOfField == nullptr) {
             len = uprv_strlen(start);
         } else {
@@ -1293,7 +1287,7 @@
             variant_index++) {
         if (checkVariants) {
             U_ASSERT(variant_index < variant_size);
-            searchVariant = (const char*)(variants.elementAt(variant_index));
+            searchVariant = static_cast<const char*>(variants.elementAt(variant_index));
         }
 
         if (searchVariant != nullptr && uprv_strlen(searchVariant) < 4) {
@@ -1414,13 +1408,13 @@
                 U_ASSERT(foundInReplacement[len] == ' ' ||
                          foundInReplacement[len] == '\0');
                 item.adoptInsteadAndCheckErrorCode(
-                    new CharString(foundInReplacement, (int32_t)len, status), status);
+                    new CharString(foundInReplacement, static_cast<int32_t>(len), status), status);
             }
         }
         if (item.isNull() && U_SUCCESS(status)) {
             item.adoptInsteadAndCheckErrorCode(
                 new CharString(replacement,
-                               (int32_t)(firstSpace - replacement), status), status);
+                               static_cast<int32_t>(firstSpace - replacement), status), status);
         }
         if (U_FAILURE(status)) { return false; }
         replacedRegion = item->data();
@@ -1462,7 +1456,7 @@
     }
     // Since we may have more than one variant, we need to loop through them.
     for (int32_t i = 0; i < variants.size(); i++) {
-        const char *variant = (const char*)(variants.elementAt(i));
+        const char* variant = static_cast<const char*>(variants.elementAt(i));
         const char *replacement = data->variantMap().get(variant);
         if (replacement == nullptr) {
             // Found no replacement data for this variant.
@@ -1504,7 +1498,7 @@
         size_t len = (firstSpace != nullptr) ?
             (firstSpace - replacement) : uprv_strlen(replacement);
         if (2 <= len && len <= 8) {
-            output.append(replacement, (int32_t)len, status);
+            output.append(replacement, static_cast<int32_t>(len), status);
             if (2 == len) {
                 // Add 'zzzz' based on changes to UTS #35 for CLDR-14312.
                 output.append("zzzz", 4, status);
@@ -1529,13 +1523,12 @@
     const char* tkey = ultag_getTKeyStart(str);
     int32_t tlangLen = (tkey == str) ? 0 :
         ((tkey == nullptr) ? len : static_cast<int32_t>((tkey - str - 1)));
-    CharStringByteSink sink(&output);
     if (tlangLen > 0) {
         Locale tlang = LocaleBuilder()
             .setLanguageTag(StringPiece(str, tlangLen))
             .build(status);
         tlang.canonicalize(status);
-        tlang.toLanguageTag(sink, status);
+        output = tlang.toLanguageTag<CharString>(status);
         if (U_FAILURE(status)) {
             return false;
         }
@@ -1555,7 +1548,7 @@
             }
             const char* nextTKey = ultag_getTKeyStart(tvalue);
             if (nextTKey != nullptr) {
-                *((char*)(nextTKey-1)) = '\0';  // NUL terminate tvalue
+                *const_cast<char*>(nextTKey - 1) = '\0'; // NUL terminate tvalue
             }
             tfields.insertElementAt((void*)tkey, tfields.size(), status);
             if (U_FAILURE(status)) {
@@ -1570,7 +1563,7 @@
              if (output.length() > 0) {
                  output.append('-', status);
              }
-             const char* tfield = (const char*) tfields.elementAt(i);
+             const char* tfield = static_cast<const char*>(tfields.elementAt(i));
              const char* tvalue = uprv_strchr(tfield, '-');
              if (tvalue == nullptr) {
                  status = U_ILLEGAL_ARGUMENT_ERROR;
@@ -1577,10 +1570,10 @@
                  return false;
              }
              // Split the "tkey-tvalue" pair string so that we can canonicalize the tvalue.
-             *((char*)tvalue++) = '\0'; // NUL terminate tkey
+             *const_cast<char*>(tvalue++) = '\0'; // NUL terminate tkey
              output.append(tfield, status).append('-', status);
-             const char* bcpTValue = ulocimp_toBcpType(tfield, tvalue, nullptr, nullptr);
-             output.append((bcpTValue == nullptr) ? tvalue : bcpTValue, status);
+             std::optional<std::string_view> bcpTValue = ulocimp_toBcpType(tfield, tvalue);
+             output.append(bcpTValue.has_value() ? *bcpTValue : tvalue, status);
         }
     }
     if (U_FAILURE(status)) {
@@ -1591,8 +1584,9 @@
 
 CharString&
 AliasReplacer::outputToString(
-    CharString& out, UErrorCode status)
+    CharString& out, UErrorCode& status)
 {
+    if (U_FAILURE(status)) { return out; }
     out.append(language, status);
     if (notEmpty(script)) {
         out.append(SEP_CHAR, status)
@@ -1612,7 +1606,7 @@
         int32_t variantsStart = out.length();
         for (int32_t i = 0; i < variants.size(); i++) {
              out.append(SEP_CHAR, status)
-                 .append((const char*)(variants.elementAt(i)),
+                 .append(static_cast<const char*>(variants.elementAt(i)),
                          status);
         }
         T_CString_toUpperCase(out.data() + variantsStart);
@@ -1681,7 +1675,7 @@
     int changed = 0;
     // A UVector to to hold CharString allocated by the replace* method
     // and freed when out of scope from his function.
-    UVector stringsToBeFreed([](void *obj){ delete ((CharString*) obj); },
+    UVector stringsToBeFreed([](void *obj) { delete static_cast<CharString*>(obj); },
                              nullptr, 10, status);
     while (U_SUCCESS(status)) {
         // Something wrong with the data cause looping here more than 10 times
@@ -1735,9 +1729,7 @@
             while ((key = iter->next(nullptr, status)) != nullptr) {
                 if (uprv_strcmp("sd", key) == 0 || uprv_strcmp("rg", key) == 0 ||
                         uprv_strcmp("t", key) == 0) {
-                    CharString value;
-                    CharStringByteSink valueSink(&value);
-                    locale.getKeywordValue(key, valueSink, status);
+                    auto value = locale.getKeywordValue<CharString>(key, status);
                     if (U_FAILURE(status)) {
                         status = U_ZERO_ERROR;
                         continue;
@@ -1782,6 +1774,7 @@
 bool
 canonicalizeLocale(const Locale& locale, CharString& out, UErrorCode& status)
 {
+    if (U_FAILURE(status)) { return false; }
     AliasReplacer replacer(status);
     return replacer.replace(locale, out, status);
 }
@@ -1791,6 +1784,8 @@
 bool
 isKnownCanonicalizedLocale(const char* locale, UErrorCode& status)
 {
+    if (U_FAILURE(status)) { return false; }
+
     if (    uprv_strcmp(locale, "c") == 0 ||
             uprv_strcmp(locale, "en") == 0 ||
             uprv_strcmp(locale, "en_US") == 0) {
@@ -1809,18 +1804,22 @@
 
 }  // namespace
 
+U_NAMESPACE_END
+
 // Function for testing.
-U_CAPI const char* const*
-ulocimp_getKnownCanonicalizedLocaleForTest(int32_t* length)
+U_EXPORT const char* const*
+ulocimp_getKnownCanonicalizedLocaleForTest(int32_t& length)
 {
-    *length = UPRV_LENGTHOF(KNOWN_CANONICALIZED);
+    U_NAMESPACE_USE
+    length = UPRV_LENGTHOF(KNOWN_CANONICALIZED);
     return KNOWN_CANONICALIZED;
 }
 
 // Function for testing.
-U_CAPI bool
+U_EXPORT bool
 ulocimp_isCanonicalizedLocaleForTest(const char* localeName)
 {
+    U_NAMESPACE_USE
     Locale l(localeName);
     UErrorCode status = U_ZERO_ERROR;
     CharString temp;
@@ -1827,6 +1826,8 @@
     return !canonicalizeLocale(l, temp, status) && U_SUCCESS(status);
 }
 
+U_NAMESPACE_BEGIN
+
 /*This function initializes a Locale from a C locale ID*/
 Locale& Locale::init(const char* localeID, UBool canonicalize)
 {
@@ -1846,7 +1847,7 @@
     // without goto and without another function
     do {
         char *separator;
-        char *field[5] = {0};
+        char *field[5] = {nullptr};
         int32_t fieldLen[5] = {0};
         int32_t fieldIdx;
         int32_t variantField;
@@ -1867,14 +1868,14 @@
             uloc_canonicalize(localeID, fullName, sizeof(fullNameBuffer), &err) :
             uloc_getName(localeID, fullName, sizeof(fullNameBuffer), &err);
 
-        if(err == U_BUFFER_OVERFLOW_ERROR || length >= (int32_t)sizeof(fullNameBuffer)) {
+        if (err == U_BUFFER_OVERFLOW_ERROR || length >= static_cast<int32_t>(sizeof(fullNameBuffer))) {
             U_ASSERT(baseName == nullptr);
             /*Go to heap for the fullName if necessary*/
-            fullName = (char *)uprv_malloc(sizeof(char)*(length + 1));
-            if(fullName == 0) {
-                fullName = fullNameBuffer;
+            char* newFullName = static_cast<char*>(uprv_malloc(sizeof(char) * (length + 1)));
+            if (newFullName == nullptr) {
                 break; // error: out of memory
             }
+            fullName = newFullName;
             err = U_ZERO_ERROR;
             length = canonicalize ?
                 uloc_canonicalize(localeID, fullName, length+1, &err) :
@@ -1892,11 +1893,11 @@
         separator = field[0] = fullName;
         fieldIdx = 1;
         char* at = uprv_strchr(fullName, '@');
-        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) != 0 &&
+        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) != nullptr &&
                fieldIdx < UPRV_LENGTHOF(field)-1 &&
                (at == nullptr || separator < at)) {
             field[fieldIdx] = separator + 1;
-            fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]);
+            fieldLen[fieldIdx - 1] = static_cast<int32_t>(separator - field[fieldIdx - 1]);
             fieldIdx++;
         }
         // variant may contain @foo or .foo POSIX cruft; remove it
@@ -1906,12 +1907,12 @@
             if (separator==nullptr || (sep2!=nullptr && separator > sep2)) {
                 separator = sep2;
             }
-            fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]);
+            fieldLen[fieldIdx - 1] = static_cast<int32_t>(separator - field[fieldIdx - 1]);
         } else {
-            fieldLen[fieldIdx-1] = length - (int32_t)(field[fieldIdx-1] - fullName);
+            fieldLen[fieldIdx - 1] = length - static_cast<int32_t>(field[fieldIdx - 1] - fullName);
         }
 
-        if (fieldLen[0] >= (int32_t)(sizeof(language)))
+        if (fieldLen[0] >= static_cast<int32_t>(sizeof(language)))
         {
             break; // error: the language field is too long
         }
@@ -1942,7 +1943,7 @@
 
         if (fieldLen[variantField] > 0) {
             /* We have a variant */
-            variantBegin = (int32_t)(field[variantField] - fullName);
+            variantBegin = static_cast<int32_t>(field[variantField] - fullName);
         }
 
         err = U_ZERO_ERROR;
@@ -1992,12 +1993,13 @@
     const char *eqPtr = uprv_strchr(fullName, '=');
     if (atPtr && eqPtr && atPtr < eqPtr) {
         // Key words exist.
-        int32_t baseNameLength = (int32_t)(atPtr - fullName);
-        baseName = (char *)uprv_malloc(baseNameLength + 1);
-        if (baseName == nullptr) {
+        int32_t baseNameLength = static_cast<int32_t>(atPtr - fullName);
+        char* newBaseName = static_cast<char*>(uprv_malloc(baseNameLength + 1));
+        if (newBaseName == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
+        baseName = newBaseName;
         uprv_strncpy(baseName, fullName, baseNameLength);
         baseName[baseNameLength] = 0;
 
@@ -2074,11 +2076,7 @@
         return;
     }
 
-    CharString maximizedLocaleID;
-    {
-        CharStringByteSink sink(&maximizedLocaleID);
-        ulocimp_addLikelySubtags(fullName, sink, &status);
-    }
+    CharString maximizedLocaleID = ulocimp_addLikelySubtags(fullName, status);
 
     if (U_FAILURE(status)) {
         return;
@@ -2100,11 +2098,7 @@
         return;
     }
 
-    CharString minimizedLocaleID;
-    {
-        CharStringByteSink sink(&minimizedLocaleID);
-        ulocimp_minimizeSubtags(fullName, sink, favorScript, &status);
-    }
+    CharString minimizedLocaleID = ulocimp_minimizeSubtags(fullName, favorScript, status);
 
     if (U_FAILURE(status)) {
         return;
@@ -2155,17 +2149,12 @@
     // parsing. Therefore the code here explicitly calls uloc_forLanguageTag()
     // and then Locale::init(), instead of just calling the normal constructor.
 
-    CharString localeID;
     int32_t parsedLength;
-    {
-        CharStringByteSink sink(&localeID);
-        ulocimp_forLanguageTag(
-                tag.data(),
-                tag.length(),
-                sink,
-                &parsedLength,
-                &status);
-    }
+    CharString localeID = ulocimp_forLanguageTag(
+            tag.data(),
+            tag.length(),
+            &parsedLength,
+            status);
 
     if (U_FAILURE(status)) {
         return result;
@@ -2195,7 +2184,7 @@
         return;
     }
 
-    ulocimp_toLanguageTag(fullName, sink, /*strict=*/false, &status);
+    ulocimp_toLanguageTag(fullName, sink, /*strict=*/false, status);
 }
 
 Locale U_EXPORT2
@@ -2420,12 +2409,10 @@
 
 class KeywordEnumeration : public StringEnumeration {
 protected:
-    char *keywords;
+    CharString keywords;
 private:
-    char *current;
-    int32_t length;
-    UnicodeString currUSKey;
-    static const char fgClassID;/* Warning this is used beyond the typical RTTI usage. */
+    const char *current;
+    static const char fgClassID;
 
 public:
     static UClassID U_EXPORT2 getStaticClassID() { return (UClassID)&fgClassID; }
@@ -2432,21 +2419,13 @@
     virtual UClassID getDynamicClassID() const override { return getStaticClassID(); }
 public:
     KeywordEnumeration(const char *keys, int32_t keywordLen, int32_t currentIndex, UErrorCode &status)
-        : keywords((char *)&fgClassID), current((char *)&fgClassID), length(0) {
+        : keywords(), current(keywords.data()) {
         if(U_SUCCESS(status) && keywordLen != 0) {
             if(keys == nullptr || keywordLen < 0) {
                 status = U_ILLEGAL_ARGUMENT_ERROR;
             } else {
-                keywords = (char *)uprv_malloc(keywordLen+1);
-                if (keywords == nullptr) {
-                    status = U_MEMORY_ALLOCATION_ERROR;
-                }
-                else {
-                    uprv_memcpy(keywords, keys, keywordLen);
-                    keywords[keywordLen] = 0;
-                    current = keywords + currentIndex;
-                    length = keywordLen;
-                }
+                keywords.append(keys, keywordLen, status);
+                current = keywords.data() + currentIndex;
             }
         }
     }
@@ -2456,11 +2435,14 @@
     virtual StringEnumeration * clone() const override
     {
         UErrorCode status = U_ZERO_ERROR;
-        return new KeywordEnumeration(keywords, length, (int32_t)(current - keywords), status);
+        return new KeywordEnumeration(
+                keywords.data(), keywords.length(),
+                static_cast<int32_t>(current - keywords.data()), status);
     }
 
-    virtual int32_t count(UErrorCode &/*status*/) const override {
-        char *kw = keywords;
+    virtual int32_t count(UErrorCode& status) const override {
+        if (U_FAILURE(status)) { return 0; }
+        const char *kw = keywords.data();
         int32_t result = 0;
         while(*kw) {
             result++;
@@ -2474,7 +2456,7 @@
         int32_t len;
         if(U_SUCCESS(status) && *current != 0) {
             result = current;
-            len = (int32_t)uprv_strlen(current);
+            len = static_cast<int32_t>(uprv_strlen(current));
             current += len+1;
             if(resultLength != nullptr) {
                 *resultLength = len;
@@ -2489,21 +2471,22 @@
     }
 
     virtual const UnicodeString* snext(UErrorCode& status) override {
+        if (U_FAILURE(status)) { return nullptr; }
         int32_t resultLength = 0;
         const char *s = next(&resultLength, status);
         return setChars(s, resultLength, status);
     }
 
-    virtual void reset(UErrorCode& /*status*/) override {
-        current = keywords;
+    virtual void reset(UErrorCode& status) override {
+        if (U_FAILURE(status)) { return; }
+        current = keywords.data();
     }
 };
 
 const char KeywordEnumeration::fgClassID = '\0';
 
-KeywordEnumeration::~KeywordEnumeration() {
-    uprv_free(keywords);
-}
+// Out-of-line virtual destructor to serve as the "key function".
+KeywordEnumeration::~KeywordEnumeration() = default;
 
 // A wrapper around KeywordEnumeration that calls uloc_toUnicodeLocaleKey() in
 // the next() method for each keyword before returning it.
@@ -2528,8 +2511,9 @@
         if (resultLength != nullptr) *resultLength = 0;
         return nullptr;
     }
-    virtual int32_t count(UErrorCode &/*status*/) const override {
-        char *kw = keywords;
+    virtual int32_t count(UErrorCode& status) const override {
+        if (U_FAILURE(status)) { return 0; }
+        const char *kw = keywords.data();
         int32_t result = 0;
         while(*kw) {
             if (uloc_toUnicodeLocaleKey(kw) != nullptr) {
@@ -2557,9 +2541,7 @@
     const char* assignment = uprv_strchr(fullName, '=');
     if(variantStart) {
         if(assignment > variantStart) {
-            CharString keywords;
-            CharStringByteSink sink(&keywords);
-            ulocimp_getKeywords(variantStart+1, '@', sink, false, &status);
+            CharString keywords = ulocimp_getKeywords(variantStart + 1, '@', false, status);
             if (U_SUCCESS(status) && !keywords.isEmpty()) {
                 result = new KeywordEnumeration(keywords.data(), keywords.length(), 0, status);
                 if (!result) {
@@ -2586,9 +2568,7 @@
     const char* assignment = uprv_strchr(fullName, '=');
     if(variantStart) {
         if(assignment > variantStart) {
-            CharString keywords;
-            CharStringByteSink sink(&keywords);
-            ulocimp_getKeywords(variantStart+1, '@', sink, false, &status);
+            CharString keywords = ulocimp_getKeywords(variantStart + 1, '@', false, status);
             if (U_SUCCESS(status) && !keywords.isEmpty()) {
                 result = new UnicodeKeywordEnumeration(keywords.data(), keywords.length(), 0, status);
                 if (!result) {
@@ -2619,13 +2599,7 @@
         return;
     }
 
-    // TODO: Remove the need for a const char* to a NUL terminated buffer.
-    const CharString keywordName_nul(keywordName, status);
-    if (U_FAILURE(status)) {
-        return;
-    }
-
-    ulocimp_getKeywordValue(fullName, keywordName_nul.data(), sink, &status);
+    ulocimp_getKeywordValue(fullName, keywordName, sink, status);
 }
 
 void
@@ -2632,77 +2606,88 @@
 Locale::getUnicodeKeywordValue(StringPiece keywordName,
                                ByteSink& sink,
                                UErrorCode& status) const {
-    // TODO: Remove the need for a const char* to a NUL terminated buffer.
-    const CharString keywordName_nul(keywordName, status);
     if (U_FAILURE(status)) {
         return;
     }
 
-    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
-
-    if (legacy_key == nullptr) {
+    std::optional<std::string_view> legacy_key = ulocimp_toLegacyKeyWithFallback(keywordName);
+    if (!legacy_key.has_value()) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
 
-    CharString legacy_value;
-    {
-        CharStringByteSink sink(&legacy_value);
-        getKeywordValue(legacy_key, sink, status);
-    }
+    auto legacy_value = getKeywordValue<CharString>(*legacy_key, status);
 
     if (U_FAILURE(status)) {
         return;
     }
 
-    const char* unicode_value = uloc_toUnicodeLocaleType(
-            keywordName_nul.data(), legacy_value.data());
-
-    if (unicode_value == nullptr) {
+    std::optional<std::string_view> unicode_value =
+        ulocimp_toBcpTypeWithFallback(keywordName, legacy_value.toStringPiece());
+    if (!unicode_value.has_value()) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
 
-    sink.Append(unicode_value, static_cast<int32_t>(uprv_strlen(unicode_value)));
+    sink.Append(unicode_value->data(), static_cast<int32_t>(unicode_value->size()));
 }
 
 void
-Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status)
-{
-    if (U_FAILURE(status)) {
+Locale::setKeywordValue(StringPiece keywordName,
+                        StringPiece keywordValue,
+                        UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    if (keywordName.empty()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
     if (status == U_STRING_NOT_TERMINATED_WARNING) {
         status = U_ZERO_ERROR;
     }
-    int32_t bufferLength = uprv_max((int32_t)(uprv_strlen(fullName) + 1), ULOC_FULLNAME_CAPACITY);
-    int32_t newLength = uloc_setKeywordValue(keywordName, keywordValue, fullName,
-                                             bufferLength, &status) + 1;
-    U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING);
-    /* Handle the case the current buffer is not enough to hold the new id */
-    if (status == U_BUFFER_OVERFLOW_ERROR) {
-        U_ASSERT(newLength > bufferLength);
-        char* newFullName = (char *)uprv_malloc(newLength);
-        if (newFullName == nullptr) {
-            status = U_MEMORY_ALLOCATION_ERROR;
-            return;
-        }
-        uprv_strcpy(newFullName, fullName);
-        if (fullName != fullNameBuffer) {
-            // if full Name is already on the heap, need to free it.
-            uprv_free(fullName);
-            if (baseName == fullName) {
-                baseName = newFullName; // baseName should not point to freed memory.
+
+    int32_t length = static_cast<int32_t>(uprv_strlen(fullName));
+    int32_t capacity = fullName == fullNameBuffer ? ULOC_FULLNAME_CAPACITY : length + 1;
+
+    const char* start = locale_getKeywordsStart(fullName);
+    int32_t offset = start == nullptr ? length : start - fullName;
+
+    for (;;) {
+        // Remove -1 from the capacity so that this function can guarantee NUL termination.
+        CheckedArrayByteSink sink(fullName + offset, capacity - offset - 1);
+
+        int32_t reslen = ulocimp_setKeywordValue(
+            {fullName + offset, static_cast<std::string_view::size_type>(length - offset)},
+            keywordName,
+            keywordValue,
+            sink,
+            status);
+
+        if (status == U_BUFFER_OVERFLOW_ERROR) {
+            capacity = reslen + offset + 1;
+            char* newFullName = static_cast<char*>(uprv_malloc(capacity));
+            if (newFullName == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return;
             }
+            uprv_memcpy(newFullName, fullName, length + 1);
+            if (fullName != fullNameBuffer) {
+                if (baseName == fullName) {
+                    baseName = newFullName; // baseName should not point to freed memory.
+                }
+                // if fullName is already on the heap, need to free it.
+                uprv_free(fullName);
+            }
+            fullName = newFullName;
+            status = U_ZERO_ERROR;
+            continue;
         }
-        fullName = newFullName;
-        status = U_ZERO_ERROR;
-        uloc_setKeywordValue(keywordName, keywordValue, fullName, newLength, &status);
-        U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING);
-    } else {
-        U_ASSERT(newLength <= bufferLength);
+
+        if (U_FAILURE(status)) { return; }
+        u_terminateChars(fullName, capacity, reslen + offset, &status);
+        break;
     }
-    if (U_SUCCESS(status) && baseName == fullName) {
+
+    if (baseName == fullName) {
         // May have added the first keyword, meaning that the fullName is no longer also the baseName.
         initBaseName(status);
     }
@@ -2709,47 +2694,32 @@
 }
 
 void
-Locale::setKeywordValue(StringPiece keywordName,
-                        StringPiece keywordValue,
-                        UErrorCode& status) {
-    // TODO: Remove the need for a const char* to a NUL terminated buffer.
-    const CharString keywordName_nul(keywordName, status);
-    const CharString keywordValue_nul(keywordValue, status);
-    setKeywordValue(keywordName_nul.data(), keywordValue_nul.data(), status);
-}
-
-void
 Locale::setUnicodeKeywordValue(StringPiece keywordName,
                                StringPiece keywordValue,
                                UErrorCode& status) {
-    // TODO: Remove the need for a const char* to a NUL terminated buffer.
-    const CharString keywordName_nul(keywordName, status);
-    const CharString keywordValue_nul(keywordValue, status);
-
     if (U_FAILURE(status)) {
         return;
     }
 
-    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
-
-    if (legacy_key == nullptr) {
+    std::optional<std::string_view> legacy_key = ulocimp_toLegacyKeyWithFallback(keywordName);
+    if (!legacy_key.has_value()) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
 
-    const char* legacy_value = nullptr;
+    std::string_view value;
 
-    if (!keywordValue_nul.isEmpty()) {
-        legacy_value =
-            uloc_toLegacyType(keywordName_nul.data(), keywordValue_nul.data());
-
-        if (legacy_value == nullptr) {
+    if (!keywordValue.empty()) {
+        std::optional<std::string_view> legacy_value =
+            ulocimp_toLegacyTypeWithFallback(keywordName, keywordValue);
+        if (!legacy_value.has_value()) {
             status = U_ILLEGAL_ARGUMENT_ERROR;
             return;
         }
+        value = *legacy_value;
     }
 
-    setKeywordValue(legacy_key, legacy_value, status);
+    setKeywordValue(*legacy_key, value, status);
 }
 
 const char *

Modified: trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -19,6 +19,9 @@
 *   that then do not depend on resource bundle code and likely-subtags data.
 */
 
+#include <string_view>
+#include <utility>
+
 #include "unicode/bytestream.h"
 #include "unicode/utypes.h"
 #include "unicode/locid.h"
@@ -33,59 +36,17 @@
 #include "cstring.h"
 #include "loclikelysubtags.h"
 #include "ulocimp.h"
-#include "ustr_imp.h"
 
-/**
- * Append a tag to a buffer, adding the separator if necessary.  The buffer
- * must be large enough to contain the resulting tag plus any separator
- * necessary. The tag must not be a zero-length string.
- *
- * @param tag The tag to add.
- * @param tagLength The length of the tag.
- * @param buffer The output buffer.
- * @param bufferLength The length of the output buffer.  This is an input/output parameter.
- **/
-static void U_CALLCONV
-appendTag(
-    const char* tag,
-    int32_t tagLength,
-    char* buffer,
-    int32_t* bufferLength,
-    UBool withSeparator) {
+namespace {
 
-    if (withSeparator) {
-        buffer[*bufferLength] = '_';
-        ++(*bufferLength);
-    }
-
-    uprv_memmove(
-        &buffer[*bufferLength],
-        tag,
-        tagLength);
-
-    *bufferLength += tagLength;
-}
-
 /**
  * Create a tag string from the supplied parameters.  The lang, script and region
  * parameters may be nullptr pointers. If they are, their corresponding length parameters
  * must be less than or equal to 0.
  *
- * If any of the language, script or region parameters are empty, and the alternateTags
- * parameter is not nullptr, it will be parsed for potential language, script and region tags
- * to be used when constructing the new tag.  If the alternateTags parameter is nullptr, or
- * it contains no language tag, the default tag for the unknown language is used.
- *
- * If the length of the new string exceeds the capacity of the output buffer, 
- * the function copies as many bytes to the output buffer as it can, and returns
- * the error U_BUFFER_OVERFLOW_ERROR.
- *
  * If an illegal argument is provided, the function returns the error
  * U_ILLEGAL_ARGUMENT_ERROR.
  *
- * Note that this function can return the warning U_STRING_NOT_TERMINATED_WARNING if
- * the tag string fits in the output buffer, but the null terminator doesn't.
- *
  * @param lang The language tag to use.
  * @param langLength The length of the language tag.
  * @param script The script tag to use.
@@ -92,13 +53,14 @@
  * @param scriptLength The length of the script tag.
  * @param region The region tag to use.
  * @param regionLength The length of the region tag.
+ * @param variant The region tag to use.
+ * @param variantLength The length of the region tag.
  * @param trailing Any trailing data to append to the new tag.
  * @param trailingLength The length of the trailing data.
- * @param alternateTags A string containing any alternate tags.
  * @param sink The output sink receiving the tag string.
  * @param err A pointer to a UErrorCode for error reporting.
  **/
-static void U_CALLCONV
+void U_CALLCONV
 createTagStringWithAlternates(
     const char* lang,
     int32_t langLength,
@@ -106,575 +68,240 @@
     int32_t scriptLength,
     const char* region,
     int32_t regionLength,
+    const char* variant,
+    int32_t variantLength,
     const char* trailing,
     int32_t trailingLength,
-    const char* alternateTags,
     icu::ByteSink& sink,
-    UErrorCode* err) {
-
-    if (U_FAILURE(*err)) {
-        goto error;
+    UErrorCode& err) {
+    if (U_FAILURE(err)) {
+        return;
     }
-    else if (langLength >= ULOC_LANG_CAPACITY ||
-             scriptLength >= ULOC_SCRIPT_CAPACITY ||
-             regionLength >= ULOC_COUNTRY_CAPACITY) {
-        goto error;
-    }
-    else {
-        /**
-         * ULOC_FULLNAME_CAPACITY will provide enough capacity
-         * that we can build a string that contains the language,
-         * script and region code without worrying about overrunning
-         * the user-supplied buffer.
-         **/
-        char tagBuffer[ULOC_FULLNAME_CAPACITY];
-        int32_t tagLength = 0;
-        UBool regionAppended = false;
 
-        if (langLength > 0) {
-            appendTag(
-                lang,
-                langLength,
-                tagBuffer,
-                &tagLength,
-                /*withSeparator=*/false);
-        }
-        else if (alternateTags == nullptr) {
-            /*
-             * Use the empty string for an unknown language, if
-             * we found no language.
-             */
-        }
-        else {
-            /*
-             * Parse the alternateTags string for the language.
-             */
-            char alternateLang[ULOC_LANG_CAPACITY];
-            int32_t alternateLangLength = sizeof(alternateLang);
-
-            alternateLangLength =
-                uloc_getLanguage(
-                    alternateTags,
-                    alternateLang,
-                    alternateLangLength,
-                    err);
-            if(U_FAILURE(*err) ||
-                alternateLangLength >= ULOC_LANG_CAPACITY) {
-                goto error;
-            }
-            else if (alternateLangLength == 0) {
-                /*
-                 * Use the empty string for an unknown language, if
-                 * we found no language.
-                 */
-            }
-            else {
-                appendTag(
-                    alternateLang,
-                    alternateLangLength,
-                    tagBuffer,
-                    &tagLength,
-                    /*withSeparator=*/false);
-            }
-        }
-
-        if (scriptLength > 0) {
-            appendTag(
-                script,
-                scriptLength,
-                tagBuffer,
-                &tagLength,
-                /*withSeparator=*/true);
-        }
-        else if (alternateTags != nullptr) {
-            /*
-             * Parse the alternateTags string for the script.
-             */
-            char alternateScript[ULOC_SCRIPT_CAPACITY];
-
-            const int32_t alternateScriptLength =
-                uloc_getScript(
-                    alternateTags,
-                    alternateScript,
-                    sizeof(alternateScript),
-                    err);
-
-            if (U_FAILURE(*err) ||
-                alternateScriptLength >= ULOC_SCRIPT_CAPACITY) {
-                goto error;
-            }
-            else if (alternateScriptLength > 0) {
-                appendTag(
-                    alternateScript,
-                    alternateScriptLength,
-                    tagBuffer,
-                    &tagLength,
-                    /*withSeparator=*/true);
-            }
-        }
-
-        if (regionLength > 0) {
-            appendTag(
-                region,
-                regionLength,
-                tagBuffer,
-                &tagLength,
-                /*withSeparator=*/true);
-
-            regionAppended = true;
-        }
-        else if (alternateTags != nullptr) {
-            /*
-             * Parse the alternateTags string for the region.
-             */
-            char alternateRegion[ULOC_COUNTRY_CAPACITY];
-
-            const int32_t alternateRegionLength =
-                uloc_getCountry(
-                    alternateTags,
-                    alternateRegion,
-                    sizeof(alternateRegion),
-                    err);
-            if (U_FAILURE(*err) ||
-                alternateRegionLength >= ULOC_COUNTRY_CAPACITY) {
-                goto error;
-            }
-            else if (alternateRegionLength > 0) {
-                appendTag(
-                    alternateRegion,
-                    alternateRegionLength,
-                    tagBuffer,
-                    &tagLength,
-                    /*withSeparator=*/true);
-
-                regionAppended = true;
-            }
-        }
-
-        /**
-         * Copy the partial tag from our internal buffer to the supplied
-         * target.
-         **/
-        sink.Append(tagBuffer, tagLength);
-
-        if (trailingLength > 0) {
-            if (*trailing != '@') {
-                sink.Append("_", 1);
-                if (!regionAppended) {
-                    /* extra separator is required */
-                    sink.Append("_", 1);
-                }
-            }
-
-            /*
-             * Copy the trailing data into the supplied buffer.
-             */
-            sink.Append(trailing, trailingLength);
-        }
-
+    if (langLength >= ULOC_LANG_CAPACITY ||
+            scriptLength >= ULOC_SCRIPT_CAPACITY ||
+            regionLength >= ULOC_COUNTRY_CAPACITY) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
 
-error:
-
-    /**
-     * An overflow indicates the locale ID passed in
-     * is ill-formed.  If we got here, and there was
-     * no previous error, it's an implicit overflow.
-     **/
-    if (*err ==  U_BUFFER_OVERFLOW_ERROR ||
-        U_SUCCESS(*err)) {
-        *err = U_ILLEGAL_ARGUMENT_ERROR;
+    if (langLength > 0) {
+        sink.Append(lang, langLength);
     }
-}
 
-/**
- * Parse the language, script, and region subtags from a tag string, and copy the
- * results into the corresponding output parameters. The buffers are null-terminated,
- * unless overflow occurs.
- *
- * The langLength, scriptLength, and regionLength parameters are input/output
- * parameters, and must contain the capacity of their corresponding buffers on
- * input.  On output, they will contain the actual length of the buffers, not
- * including the null terminator.
- *
- * If the length of any of the output subtags exceeds the capacity of the corresponding
- * buffer, the function copies as many bytes to the output buffer as it can, and returns
- * the error U_BUFFER_OVERFLOW_ERROR.  It will not parse any more subtags once overflow
- * occurs.
- *
- * If an illegal argument is provided, the function returns the error
- * U_ILLEGAL_ARGUMENT_ERROR.
- *
- * @param localeID The locale ID to parse.
- * @param lang The language tag buffer.
- * @param langLength The length of the language tag.
- * @param script The script tag buffer.
- * @param scriptLength The length of the script tag.
- * @param region The region tag buffer.
- * @param regionLength The length of the region tag.
- * @param err A pointer to a UErrorCode for error reporting.
- * @return The number of chars of the localeID parameter consumed.
- **/
-static int32_t U_CALLCONV
-parseTagString(
-    const char* localeID,
-    char* lang,
-    int32_t* langLength,
-    char* script,
-    int32_t* scriptLength,
-    char* region,
-    int32_t* regionLength,
-    UErrorCode* err)
-{
-    const char* position = localeID;
-    int32_t subtagLength = 0;
-
-    if(U_FAILURE(*err) ||
-       localeID == nullptr ||
-       lang == nullptr ||
-       langLength == nullptr ||
-       script == nullptr ||
-       scriptLength == nullptr ||
-       region == nullptr ||
-       regionLength == nullptr) {
-        goto error;
+    if (scriptLength > 0) {
+        sink.Append("_", 1);
+        sink.Append(script, scriptLength);
     }
 
-    subtagLength = ulocimp_getLanguage(position, &position, *err).extract(lang, *langLength, *err);
-
-    /*
-     * Note that we explicit consider U_STRING_NOT_TERMINATED_WARNING
-     * to be an error, because it indicates the user-supplied tag is
-     * not well-formed.
-     */
-    if(U_FAILURE(*err)) {
-        goto error;
+    if (regionLength > 0) {
+        sink.Append("_", 1);
+        sink.Append(region, regionLength);
     }
 
-    *langLength = subtagLength;
-
-    /*
-     * If no language was present, use the empty string instead.
-     * Otherwise, move past any separator.
-     */
-    if (_isIDSeparator(*position)) {
-        ++position;
+    if (variantLength > 0) {
+        if (regionLength == 0) {
+            /* extra separator is required */
+            sink.Append("_", 1);
+        }
+        sink.Append("_", 1);
+        sink.Append(variant, variantLength);
     }
 
-    subtagLength = ulocimp_getScript(position, &position, *err).extract(script, *scriptLength, *err);
-
-    if(U_FAILURE(*err)) {
-        goto error;
-    }
-
-    *scriptLength = subtagLength;
-
-    if (*scriptLength > 0) {
+    if (trailingLength > 0) {
         /*
-         * Move past any separator.
+         * Copy the trailing data into the supplied buffer.
          */
-        if (_isIDSeparator(*position)) {
-            ++position;
-        }    
+        sink.Append(trailing, trailingLength);
     }
+}
 
-    subtagLength = ulocimp_getCountry(position, &position, *err).extract(region, *regionLength, *err);
-
-    if(U_FAILURE(*err)) {
-        goto error;
+bool CHECK_TRAILING_VARIANT_SIZE(const char* variant, int32_t variantLength) {
+    int32_t count = 0;
+    for (int32_t i = 0; i < variantLength; i++) {
+        if (_isIDSeparator(variant[i])) {
+            count = 0;
+        } else if (count == 8) {
+            return false;
+        } else {
+            count++;
+        }
     }
-
-    *regionLength = subtagLength;
-
-    if (*regionLength <= 0 && *position != 0 && *position != '@') {
-        /* back up over consumed trailing separator */
-        --position;
-    }
-
-exit:
-
-    return (int32_t)(position - localeID);
-
-error:
-
-    /**
-     * If we get here, we have no explicit error, it's the result of an
-     * illegal argument.
-     **/
-    if (!U_FAILURE(*err)) {
-        *err = U_ILLEGAL_ARGUMENT_ERROR;
-    }
-
-    goto exit;
+    return true;
 }
 
-#define CHECK_TRAILING_VARIANT_SIZE(trailing, trailingLength) UPRV_BLOCK_MACRO_BEGIN { \
-    int32_t count = 0; \
-    int32_t i; \
-    for (i = 0; i < trailingLength; i++) { \
-        if (trailing[i] == '-' || trailing[i] == '_') { \
-            count = 0; \
-            if (count > 8) { \
-                goto error; \
-            } \
-        } else if (trailing[i] == '@') { \
-            break; \
-        } else if (count > 8) { \
-            goto error; \
-        } else { \
-            count++; \
-        } \
-    } \
-} UPRV_BLOCK_MACRO_END
-
-static UBool
+void
 _uloc_addLikelySubtags(const char* localeID,
                        icu::ByteSink& sink,
-                       UErrorCode* err) {
-    char lang[ULOC_LANG_CAPACITY];
-    int32_t langLength = sizeof(lang);
-    char script[ULOC_SCRIPT_CAPACITY];
-    int32_t scriptLength = sizeof(script);
-    char region[ULOC_COUNTRY_CAPACITY];
-    int32_t regionLength = sizeof(region);
-    const char* trailing = "";
-    int32_t trailingLength = 0;
-    int32_t trailingIndex = 0;
+                       UErrorCode& err) {
+    if (U_FAILURE(err)) {
+        return;
+    }
 
-    if(U_FAILURE(*err)) {
-        goto error;
-    }
     if (localeID == nullptr) {
-        goto error;
+        err = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
     }
 
-    trailingIndex = parseTagString(
-        localeID,
-        lang,
-        &langLength,
-        script,
-        &scriptLength,
-        region,
-        &regionLength,
-        err);
-    if(U_FAILURE(*err)) {
-        /* Overflow indicates an illegal argument error */
-        if (*err == U_BUFFER_OVERFLOW_ERROR) {
-            *err = U_ILLEGAL_ARGUMENT_ERROR;
-        }
-
-        goto error;
+    icu::CharString lang;
+    icu::CharString script;
+    icu::CharString region;
+    icu::CharString variant;
+    const char* trailing = nullptr;
+    ulocimp_getSubtags(localeID, &lang, &script, &region, &variant, &trailing, err);
+    if (U_FAILURE(err)) {
+        return;
     }
-    if (langLength > 3) {
-        goto error;
-    }
 
-    /* Find the length of the trailing portion. */
-    while (_isIDSeparator(localeID[trailingIndex])) {
-        trailingIndex++;
+    if (!CHECK_TRAILING_VARIANT_SIZE(variant.data(), variant.length())) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
     }
-    trailing = &localeID[trailingIndex];
-    trailingLength = (int32_t)uprv_strlen(trailing);
 
-    CHECK_TRAILING_VARIANT_SIZE(trailing, trailingLength);
-    {
-        const icu::XLikelySubtags* likelySubtags = icu::XLikelySubtags::getSingleton(*err);
-        if(U_FAILURE(*err)) {
-            goto error;
+    if (lang.length() == 4) {
+        if (script.isEmpty()) {
+            script = std::move(lang);
+            lang.clear();
+        } else {
+            err = U_ILLEGAL_ARGUMENT_ERROR;
+            return;
         }
-        // We need to keep l on the stack because lsr may point into internal
-        // memory of l.
-        icu::Locale l = icu::Locale::createFromName(localeID);
-        if (l.isBogus()) {
-            goto error;
-        }
-        icu::LSR lsr = likelySubtags->makeMaximizedLsrFrom(l, true, *err);
-        if(U_FAILURE(*err)) {
-            goto error;
-        }
-        const char* language = lsr.language;
-        if (uprv_strcmp(language, "und") == 0) {
-            language = "";
-        }
-        createTagStringWithAlternates(
-            language,
-            (int32_t)uprv_strlen(language),
-            lsr.script,
-            (int32_t)uprv_strlen(lsr.script),
-            lsr.region,
-            (int32_t)uprv_strlen(lsr.region),
-            trailing,
-            trailingLength,
-            nullptr,
-            sink,
-            err);
-        if(U_FAILURE(*err)) {
-            goto error;
-        }
+    } else if (lang.length() > 8) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
     }
-    return true;
 
-error:
+    int32_t trailingLength = static_cast<int32_t>(uprv_strlen(trailing));
 
-    if (!U_FAILURE(*err)) {
-        *err = U_ILLEGAL_ARGUMENT_ERROR;
+    const icu::LikelySubtags* likelySubtags = icu::LikelySubtags::getSingleton(err);
+    if (U_FAILURE(err)) {
+        return;
     }
-    return false;
+    // We need to keep l on the stack because lsr may point into internal
+    // memory of l.
+    icu::Locale l = icu::Locale::createFromName(localeID);
+    if (l.isBogus()) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    icu::LSR lsr = likelySubtags->makeMaximizedLsrFrom(l, true, err);
+    if (U_FAILURE(err)) {
+        return;
+    }
+    const char* language = lsr.language;
+    if (uprv_strcmp(language, "und") == 0) {
+        language = "";
+    }
+    createTagStringWithAlternates(
+        language,
+        static_cast<int32_t>(uprv_strlen(language)),
+        lsr.script,
+        static_cast<int32_t>(uprv_strlen(lsr.script)),
+        lsr.region,
+        static_cast<int32_t>(uprv_strlen(lsr.region)),
+        variant.data(),
+        variant.length(),
+        trailing,
+        trailingLength,
+        sink,
+        err);
 }
 
-// Add likely subtags to the sink
-// return true if the value in the sink is produced by a match during the lookup
-// return false if the value in the sink is the same as input because there are
-// no match after the lookup.
-static UBool _ulocimp_addLikelySubtags(const char*, icu::ByteSink&, UErrorCode*);
-
-static void
+void
 _uloc_minimizeSubtags(const char* localeID,
                       icu::ByteSink& sink,
                       bool favorScript,
-                      UErrorCode* err) {
-    icu::CharString maximizedTagBuffer;
-
-    char lang[ULOC_LANG_CAPACITY];
-    int32_t langLength = sizeof(lang);
-    char script[ULOC_SCRIPT_CAPACITY];
-    int32_t scriptLength = sizeof(script);
-    char region[ULOC_COUNTRY_CAPACITY];
-    int32_t regionLength = sizeof(region);
-    const char* trailing = "";
-    int32_t trailingLength = 0;
-    int32_t trailingIndex = 0;
-
-    if(U_FAILURE(*err)) {
-        goto error;
+                      UErrorCode& err) {
+    if (U_FAILURE(err)) {
+        return;
     }
-    else if (localeID == nullptr) {
-        goto error;
-    }
 
-    trailingIndex =
-        parseTagString(
-            localeID,
-            lang,
-            &langLength,
-            script,
-            &scriptLength,
-            region,
-            &regionLength,
-            err);
-    if(U_FAILURE(*err)) {
-
-        /* Overflow indicates an illegal argument error */
-        if (*err == U_BUFFER_OVERFLOW_ERROR) {
-            *err = U_ILLEGAL_ARGUMENT_ERROR;
-        }
-
-        goto error;
+    if (localeID == nullptr) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
     }
 
-    /* Find the spot where the variants or the keywords begin, if any. */
-    while (_isIDSeparator(localeID[trailingIndex])) {
-        trailingIndex++;
+    icu::CharString lang;
+    icu::CharString script;
+    icu::CharString region;
+    icu::CharString variant;
+    const char* trailing = nullptr;
+    ulocimp_getSubtags(localeID, &lang, &script, &region, &variant, &trailing, err);
+    if (U_FAILURE(err)) {
+        return;
     }
-    trailing = &localeID[trailingIndex];
-    trailingLength = (int32_t)uprv_strlen(trailing);
 
-    CHECK_TRAILING_VARIANT_SIZE(trailing, trailingLength);
-
-    {
-        const icu::XLikelySubtags* likelySubtags = icu::XLikelySubtags::getSingleton(*err);
-        if(U_FAILURE(*err)) {
-            goto error;
-        }
-        icu::LSR lsr = likelySubtags->minimizeSubtags(
-            {lang, langLength},
-            {script, scriptLength},
-            {region, regionLength},
-            favorScript,
-            *err);
-        if(U_FAILURE(*err)) {
-            goto error;
-        }
-        const char* language = lsr.language;
-        if (uprv_strcmp(language, "und") == 0) {
-            language = "";
-        }
-        createTagStringWithAlternates(
-            language,
-            (int32_t)uprv_strlen(language),
-            lsr.script,
-            (int32_t)uprv_strlen(lsr.script),
-            lsr.region,
-            (int32_t)uprv_strlen(lsr.region),
-            trailing,
-            trailingLength,
-            nullptr,
-            sink,
-            err);
-        if(U_FAILURE(*err)) {
-            goto error;
-        }
+    if (!CHECK_TRAILING_VARIANT_SIZE(variant.data(), variant.length())) {
+        err = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
 
-error:
+    int32_t trailingLength = static_cast<int32_t>(uprv_strlen(trailing));
 
-    if (!U_FAILURE(*err)) {
-        *err = U_ILLEGAL_ARGUMENT_ERROR;
+    const icu::LikelySubtags* likelySubtags = icu::LikelySubtags::getSingleton(err);
+    if (U_FAILURE(err)) {
+        return;
     }
+    icu::LSR lsr = likelySubtags->minimizeSubtags(
+        lang.toStringPiece(),
+        script.toStringPiece(),
+        region.toStringPiece(),
+        favorScript,
+        err);
+    if (U_FAILURE(err)) {
+        return;
+    }
+    const char* language = lsr.language;
+    if (uprv_strcmp(language, "und") == 0) {
+        language = "";
+    }
+    createTagStringWithAlternates(
+        language,
+        static_cast<int32_t>(uprv_strlen(language)),
+        lsr.script,
+        static_cast<int32_t>(uprv_strlen(lsr.script)),
+        lsr.region,
+        static_cast<int32_t>(uprv_strlen(lsr.region)),
+        variant.data(),
+        variant.length(),
+        trailing,
+        trailingLength,
+        sink,
+        err);
 }
 
+}  // namespace
+
 U_CAPI int32_t U_EXPORT2
 uloc_addLikelySubtags(const char* localeID,
                       char* maximizedLocaleID,
                       int32_t maximizedLocaleIDCapacity,
                       UErrorCode* status) {
-    if (U_FAILURE(*status)) {
-        return 0;
-    }
-
-    icu::CheckedArrayByteSink sink(
-            maximizedLocaleID, maximizedLocaleIDCapacity);
-
-    ulocimp_addLikelySubtags(localeID, sink, status);
-    int32_t reslen = sink.NumberOfBytesAppended();
-
-    if (U_FAILURE(*status)) {
-        return sink.Overflowed() ? reslen : -1;
-    }
-
-    if (sink.Overflowed()) {
-        *status = U_BUFFER_OVERFLOW_ERROR;
-    } else {
-        u_terminateChars(
-                maximizedLocaleID, maximizedLocaleIDCapacity, reslen, status);
-    }
-
-    return reslen;
+    return icu::ByteSinkUtil::viaByteSinkToTerminatedChars(
+        maximizedLocaleID, maximizedLocaleIDCapacity,
+        [&](icu::ByteSink& sink, UErrorCode& status) {
+            ulocimp_addLikelySubtags(localeID, sink, status);
+        },
+        *status);
 }
 
-static UBool
-_ulocimp_addLikelySubtags(const char* localeID,
-                          icu::ByteSink& sink,
-                          UErrorCode* status) {
-    icu::CharString localeBuffer;
-    {
-        icu::CharStringByteSink localeSink(&localeBuffer);
-        ulocimp_canonicalize(localeID, localeSink, status);
-    }
-    if (U_SUCCESS(*status)) {
-        return _uloc_addLikelySubtags(localeBuffer.data(), sink, status);
-    } else {
-        return false;
-    }
+U_EXPORT icu::CharString
+ulocimp_addLikelySubtags(const char* localeID,
+                         UErrorCode& status) {
+    return icu::ByteSinkUtil::viaByteSinkToCharString(
+        [&](icu::ByteSink& sink, UErrorCode& status) {
+            ulocimp_addLikelySubtags(localeID, sink, status);
+        },
+        status);
 }
 
-U_CAPI void U_EXPORT2
+U_EXPORT void
 ulocimp_addLikelySubtags(const char* localeID,
                          icu::ByteSink& sink,
-                         UErrorCode* status) {
-    _ulocimp_addLikelySubtags(localeID, sink, status);
+                         UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    icu::CharString localeBuffer = ulocimp_canonicalize(localeID, status);
+    _uloc_addLikelySubtags(localeBuffer.data(), sink, status);
 }
 
 U_CAPI int32_t U_EXPORT2
@@ -682,40 +309,32 @@
                      char* minimizedLocaleID,
                      int32_t minimizedLocaleIDCapacity,
                      UErrorCode* status) {
-    if (U_FAILURE(*status)) {
-        return 0;
-    }
+    return icu::ByteSinkUtil::viaByteSinkToTerminatedChars(
+        minimizedLocaleID, minimizedLocaleIDCapacity,
+        [&](icu::ByteSink& sink, UErrorCode& status) {
+            ulocimp_minimizeSubtags(localeID, sink, false, status);
+        },
+        *status);
+}
 
-    icu::CheckedArrayByteSink sink(
-            minimizedLocaleID, minimizedLocaleIDCapacity);
-
-    ulocimp_minimizeSubtags(localeID, sink, false, status);
-    int32_t reslen = sink.NumberOfBytesAppended();
-
-    if (U_FAILURE(*status)) {
-        return sink.Overflowed() ? reslen : -1;
-    }
-
-    if (sink.Overflowed()) {
-        *status = U_BUFFER_OVERFLOW_ERROR;
-    } else {
-        u_terminateChars(
-                minimizedLocaleID, minimizedLocaleIDCapacity, reslen, status);
-    }
-
-    return reslen;
+U_EXPORT icu::CharString
+ulocimp_minimizeSubtags(const char* localeID,
+                        bool favorScript,
+                        UErrorCode& status) {
+    return icu::ByteSinkUtil::viaByteSinkToCharString(
+        [&](icu::ByteSink& sink, UErrorCode& status) {
+            ulocimp_minimizeSubtags(localeID, sink, favorScript, status);
+        },
+        status);
 }
 
-U_CAPI void U_EXPORT2
+U_EXPORT void
 ulocimp_minimizeSubtags(const char* localeID,
                         icu::ByteSink& sink,
                         bool favorScript,
-                        UErrorCode* status) {
-    icu::CharString localeBuffer;
-    {
-        icu::CharStringByteSink localeSink(&localeBuffer);
-        ulocimp_canonicalize(localeID, localeSink, status);
-    }
+                        UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    icu::CharString localeBuffer = ulocimp_canonicalize(localeID, status);
     _uloc_minimizeSubtags(localeBuffer.data(), sink, favorScript, status);
 }
 
@@ -728,22 +347,16 @@
 U_CAPI UBool U_EXPORT2
 uloc_isRightToLeft(const char *locale) {
     UErrorCode errorCode = U_ZERO_ERROR;
-    char script[8];
-    int32_t scriptLength = uloc_getScript(locale, script, UPRV_LENGTHOF(script), &errorCode);
-    if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING ||
-            scriptLength == 0) {
+    icu::CharString lang;
+    icu::CharString script;
+    ulocimp_getSubtags(locale, &lang, &script, nullptr, nullptr, nullptr, errorCode);
+    if (U_FAILURE(errorCode) || script.isEmpty()) {
         // Fastpath: We know the likely scripts and their writing direction
         // for some common languages.
-        errorCode = U_ZERO_ERROR;
-        char lang[8];
-        int32_t langLength = uloc_getLanguage(locale, lang, UPRV_LENGTHOF(lang), &errorCode);
-        if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING) {
-            return false;
-        }
-        if (langLength > 0) {
-            const char* langPtr = uprv_strstr(LANG_DIR_STRING, lang);
+        if (!lang.isEmpty()) {
+            const char* langPtr = uprv_strstr(LANG_DIR_STRING, lang.data());
             if (langPtr != nullptr) {
-                switch (langPtr[langLength]) {
+                switch (langPtr[lang.length()]) {
                 case '-': return false;
                 case '+': return true;
                 default: break;  // partial match of a longer code
@@ -752,21 +365,16 @@
         }
         // Otherwise, find the likely script.
         errorCode = U_ZERO_ERROR;
-        icu::CharString likely;
-        {
-            icu::CharStringByteSink sink(&likely);
-            ulocimp_addLikelySubtags(locale, sink, &errorCode);
-        }
-        if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING) {
+        icu::CharString likely = ulocimp_addLikelySubtags(locale, errorCode);
+        if (U_FAILURE(errorCode)) {
             return false;
         }
-        scriptLength = uloc_getScript(likely.data(), script, UPRV_LENGTHOF(script), &errorCode);
-        if (U_FAILURE(errorCode) || errorCode == U_STRING_NOT_TERMINATED_WARNING ||
-                scriptLength == 0) {
+        ulocimp_getSubtags(likely.data(), nullptr, &script, nullptr, nullptr, nullptr, errorCode);
+        if (U_FAILURE(errorCode) || script.isEmpty()) {
             return false;
         }
     }
-    UScriptCode scriptCode = (UScriptCode)u_getPropertyValueEnum(UCHAR_SCRIPT, script);
+    UScriptCode scriptCode = (UScriptCode)u_getPropertyValueEnum(UCHAR_SCRIPT, script.data());
     return uscript_isRightToLeft(scriptCode);
 }
 
@@ -779,65 +387,115 @@
 
 U_NAMESPACE_END
 
-// The following must at least allow for rg key value (6) plus terminator (1).
-#define ULOC_RG_BUFLEN 8
-
-U_CAPI int32_t U_EXPORT2
-ulocimp_getRegionForSupplementalData(const char *localeID, UBool inferRegion,
-                                     char *region, int32_t regionCapacity, UErrorCode* status) {
-    if (U_FAILURE(*status)) {
-        return 0;
+namespace {
+icu::CharString
+GetRegionFromKey(const char* localeID, std::string_view key, UErrorCode& status) {
+    icu::CharString result;
+    // First check for keyword value
+    icu::CharString kw = ulocimp_getKeywordValue(localeID, key, status);
+    int32_t len = kw.length();
+    // In UTS35
+    //   type = alphanum{3,8} (sep alphanum{3,8})* ;
+    // so we know the subdivision must fit the type already.
+    //
+    //   unicode_subdivision_id = unicode_region_subtag unicode_subdivision_suffix ;
+    //   unicode_region_subtag = (alpha{2} | digit{3}) ;
+    //   unicode_subdivision_suffix = alphanum{1,4} ;
+    // But we also know there are no id in start with digit{3} in
+    // https://github.com/unicode-org/cldr/blob/main/common/validity/subdivision.xml
+    // Therefore we can simplify as
+    // unicode_subdivision_id = alpha{2} alphanum{1,4}
+    //
+    // and only need to accept/reject the code based on the alpha{2} and the length.
+    if (U_SUCCESS(status) && len >= 3 && len <= 6 &&
+        uprv_isASCIILetter(kw[0]) && uprv_isASCIILetter(kw[1])) {
+        // Additional Check
+        static icu::RegionValidateMap valid;
+        const char region[] = {kw[0], kw[1], '\0'};
+        if (valid.isSet(region)) {
+            result.append(uprv_toupper(kw[0]), status);
+            result.append(uprv_toupper(kw[1]), status);
+        }
     }
-    char rgBuf[ULOC_RG_BUFLEN];
-    UErrorCode rgStatus = U_ZERO_ERROR;
+    return result;
+}
+}  // namespace
 
-    // First check for rg keyword value
-    icu::CharString rg;
-    {
-        icu::CharStringByteSink sink(&rg);
-        ulocimp_getKeywordValue(localeID, "rg", sink, &rgStatus);
+U_EXPORT icu::CharString
+ulocimp_getRegionForSupplementalData(const char *localeID, bool inferRegion,
+                                     UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return {};
     }
-    int32_t rgLen = rg.length();
-    if (U_FAILURE(rgStatus) || rgLen < 3 || rgLen > 7) {
-        rgLen = 0;
-    } else {
-        // chop off the subdivision code (which will generally be "zzzz" anyway)
-        const char* const data = rg.data();
-        if (uprv_isASCIILetter(data[0])) {
-            rgLen = 2;
-            rgBuf[0] = uprv_toupper(data[0]);
-            rgBuf[1] = uprv_toupper(data[1]);
-        } else {
-            // assume three-digit region code
-            rgLen = 3;
-            uprv_memcpy(rgBuf, data, rgLen);
-        }
-    }
-
-    if (rgLen == 0) {
+    icu::CharString rgBuf = GetRegionFromKey(localeID, "rg", status);
+    if (U_SUCCESS(status) && rgBuf.isEmpty()) {
         // No valid rg keyword value, try for unicode_region_subtag
-        rgLen = uloc_getCountry(localeID, rgBuf, ULOC_RG_BUFLEN, status);
-        if (U_FAILURE(*status)) {
-            rgLen = 0;
-        } else if (rgLen == 0 && inferRegion) {
-            // no unicode_region_subtag but inferRegion true, try likely subtags
-            rgStatus = U_ZERO_ERROR;
-            icu::CharString locBuf;
-            {
-                icu::CharStringByteSink sink(&locBuf);
-                ulocimp_addLikelySubtags(localeID, sink, &rgStatus);
-            }
-            if (U_SUCCESS(rgStatus)) {
-                rgLen = uloc_getCountry(locBuf.data(), rgBuf, ULOC_RG_BUFLEN, status);
-                if (U_FAILURE(*status)) {
-                    rgLen = 0;
+        rgBuf = ulocimp_getRegion(localeID, status);
+        if (U_SUCCESS(status) && rgBuf.isEmpty() && inferRegion) {
+            // Second check for sd keyword value
+            rgBuf = GetRegionFromKey(localeID, "sd", status);
+            if (U_SUCCESS(status) && rgBuf.isEmpty()) {
+                // no unicode_region_subtag but inferRegion true, try likely subtags
+                UErrorCode rgStatus = U_ZERO_ERROR;
+                icu::CharString locBuf = ulocimp_addLikelySubtags(localeID, rgStatus);
+                if (U_SUCCESS(rgStatus)) {
+                    rgBuf = ulocimp_getRegion(locBuf.data(), status);
                 }
             }
         }
     }
 
-    rgBuf[rgLen] = 0;
-    uprv_strncpy(region, rgBuf, regionCapacity);
-    return u_terminateChars(region, regionCapacity, rgLen, status);
+    return rgBuf;
 }
 
+namespace {
+
+// The following data is generated by unit test code inside
+// test/intltest/regiontst.cpp from the resource data while
+// the test failed.
+const uint32_t gValidRegionMap[] = {
+    0xeedf597c, 0xdeddbdef, 0x15943f3f, 0x0e00d580, 
+    0xb0095c00, 0x0015fb9f, 0x781c068d, 0x0340400f, 
+    0xf42b1d00, 0xfd4f8141, 0x25d7fffc, 0x0100084b, 
+    0x538f3c40, 0x40000001, 0xfdf15100, 0x9fbb7ae7, 
+    0x0410419a, 0x00408557, 0x00004002, 0x00100001, 
+    0x00400408, 0x00000001, 
+};
+
+}  // namespace
+   //
+U_NAMESPACE_BEGIN
+RegionValidateMap::RegionValidateMap() {
+    uprv_memcpy(map, gValidRegionMap, sizeof(map));
+}
+
+RegionValidateMap::~RegionValidateMap() {
+}
+
+bool RegionValidateMap::isSet(const char* region) const {
+    int32_t index = value(region);
+    if (index < 0) {
+        return false;
+    }
+    return 0 != (map[index / 32] & (1L << (index % 32)));
+}
+
+bool RegionValidateMap::equals(const RegionValidateMap& that) const {
+    return uprv_memcmp(map, that.map, sizeof(map)) == 0;
+}
+
+// The code transform two letter a-z to a integer valued between -1, 26x26.
+// -1 indicate the region is outside the range of two letter a-z
+// the rest of value is between 0 and 676 (= 26x26) and used as an index
+// the the bigmap in map. The map is an array of 22 int32_t.
+// since 32x21 < 676/32 < 32x22 we store this 676 bits bitmap into 22 int32_t.
+int32_t RegionValidateMap::value(const char* region) const {
+    if (uprv_isASCIILetter(region[0]) && uprv_isASCIILetter(region[1]) &&
+        region[2] == '\0') {
+        return (uprv_toupper(region[0])-'A') * 26 +
+               (uprv_toupper(region[1])-'A');
+    }
+    return -1;
+}
+
+U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -51,8 +51,7 @@
     delete[] paradigms;
 }
 
-// TODO(ICU-20777): Rename to just LikelySubtagsData.
-struct XLikelySubtagsData {
+struct LikelySubtagsData {
     UResourceBundle *langInfoBundle = nullptr;
     UniqueCharStrings strings;
     CharStringMap languageAliases;
@@ -63,14 +62,15 @@
 
     LocaleDistanceData distanceData;
 
-    XLikelySubtagsData(UErrorCode &errorCode) : strings(errorCode) {}
+    LikelySubtagsData(UErrorCode &errorCode) : strings(errorCode) {}
 
-    ~XLikelySubtagsData() {
+    ~LikelySubtagsData() {
         ures_close(langInfoBundle);
         delete[] lsrs;
     }
 
     void load(UErrorCode &errorCode) {
+        if (U_FAILURE(errorCode)) { return; }
         langInfoBundle = ures_openDirect(nullptr, "langInfo", &errorCode);
         if (U_FAILURE(errorCode)) { return; }
         StackUResourceBundle stackTempBundle;
@@ -231,6 +231,7 @@
 private:
     bool readStrings(const ResourceTable &table, const char *key, ResourceValue &value,
                      LocalMemory<int32_t> &indexes, int32_t &length, UErrorCode &errorCode) {
+        if (U_FAILURE(errorCode)) { return false; }
         if (table.findValue(key, value)) {
             ResourceArray stringArray = value.getArray(errorCode);
             if (U_FAILURE(errorCode)) { return false; }
@@ -297,7 +298,7 @@
     }
 
     UnicodeString toRegion(const ResourceArray& m49Array, ResourceValue &value, int encoded, UErrorCode &errorCode) {
-        if (encoded == 0 || encoded == 1) {
+        if (U_FAILURE(errorCode) || encoded == 0 || encoded == 1) {
             return UNICODE_STRING_SIMPLE("");
         }
         encoded &= 0x00ffffff;
@@ -315,6 +316,7 @@
 
     bool readLSREncodedStrings(const ResourceTable &table, const char* key, ResourceValue &value, const ResourceArray& m49Array,
                      LocalMemory<int32_t> &indexes, int32_t &length, UErrorCode &errorCode) {
+        if (U_FAILURE(errorCode)) { return false; }
         if (table.findValue(key, value)) {
             const int32_t* vectors = value.getIntVector(length, errorCode);
             if (U_FAILURE(errorCode)) { return false; }
@@ -339,7 +341,7 @@
 
 namespace {
 
-XLikelySubtags *gLikelySubtags = nullptr;
+LikelySubtags *gLikelySubtags = nullptr;
 UVector *gMacroregions = nullptr;
 UInitOnce gInitOnce {};
 
@@ -352,8 +354,56 @@
     return true;
 }
 
-static const char16_t RANGE_MARKER = 0x7E; /* '~' */
+constexpr const char16_t* MACROREGION_HARDCODE[] = {
+    u"001~3",
+    u"005",
+    u"009",
+    u"011",
+    u"013~5",
+    u"017~9",
+    u"021",
+    u"029",
+    u"030",
+    u"034~5",
+    u"039",
+    u"053~4",
+    u"057",
+    u"061",
+    u"142~3",
+    u"145",
+    u"150~1",
+    u"154~5",
+    u"202",
+    u"419",
+    u"EU",
+    u"EZ",
+    u"QO",
+    u"UN",
+};
+
+constexpr char16_t RANGE_MARKER = 0x7E; /* '~' */
+void processMacroregionRange(const UnicodeString& regionName, UVector* newMacroRegions, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER);
+    char16_t buf[6];
+    regionName.extract(buf,6,status);
+    if ( rangeMarkerLocation > 0 ) {
+        char16_t endRange = regionName.charAt(rangeMarkerLocation+1);
+        buf[rangeMarkerLocation] = 0;
+        while ( buf[rangeMarkerLocation-1] <= endRange && U_SUCCESS(status)) {
+            LocalPointer<UnicodeString> newRegion(new UnicodeString(buf), status);
+            newMacroRegions->adoptElement(newRegion.orphan(),status);
+            buf[rangeMarkerLocation-1]++;
+        }
+    } else {
+        LocalPointer<UnicodeString> newRegion(new UnicodeString(regionName), status);
+        newMacroRegions->adoptElement(newRegion.orphan(),status);
+    }
+}
+
+#if U_DEBUG
 UVector* loadMacroregions(UErrorCode &status) {
+    if (U_FAILURE(status)) { return nullptr; }
     LocalPointer<UVector> newMacroRegions(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
 
     LocalUResourceBundlePointer supplementalData(ures_openDirect(nullptr,"supplementalData",&status));
@@ -365,37 +415,52 @@
         return nullptr;
     }
 
-    while (U_SUCCESS(status) && ures_hasNext(regionMacro.getAlias())) {
+    while (ures_hasNext(regionMacro.getAlias())) {
         UnicodeString regionName = ures_getNextUnicodeString(regionMacro.getAlias(),nullptr,&status);
-        int32_t rangeMarkerLocation = regionName.indexOf(RANGE_MARKER);
-        char16_t buf[6];
-        regionName.extract(buf,6,status);
-        if ( rangeMarkerLocation > 0 ) {
-            char16_t endRange = regionName.charAt(rangeMarkerLocation+1);
-            buf[rangeMarkerLocation] = 0;
-            while ( buf[rangeMarkerLocation-1] <= endRange && U_SUCCESS(status)) {
-                LocalPointer<UnicodeString> newRegion(new UnicodeString(buf), status);
-                newMacroRegions->adoptElement(newRegion.orphan(),status);
-                buf[rangeMarkerLocation-1]++;
-            }
-        } else {
-            LocalPointer<UnicodeString> newRegion(new UnicodeString(regionName), status);
-            newMacroRegions->adoptElement(newRegion.orphan(),status);
+        processMacroregionRange(regionName, newMacroRegions.getAlias(), status);
+        if (U_FAILURE(status)) {
+            return nullptr;
         }
     }
+
     return newMacroRegions.orphan();
 }
+#endif // U_DEBUG
 
+UVector* getStaticMacroregions(UErrorCode &status) {
+    if (U_FAILURE(status)) { return nullptr; }
+    LocalPointer<UVector> newMacroRegions(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+
+    for (const auto *region : MACROREGION_HARDCODE) {
+        UnicodeString regionName(region);
+        processMacroregionRange(regionName, newMacroRegions.getAlias(), status);
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
+    }
+
+    return newMacroRegions.orphan();
+}
+
 }  // namespace
 
-void U_CALLCONV XLikelySubtags::initLikelySubtags(UErrorCode &errorCode) {
+void U_CALLCONV LikelySubtags::initLikelySubtags(UErrorCode &errorCode) {
     // This function is invoked only via umtx_initOnce().
     U_ASSERT(gLikelySubtags == nullptr);
-    XLikelySubtagsData data(errorCode);
+    LikelySubtagsData data(errorCode);
     data.load(errorCode);
     if (U_FAILURE(errorCode)) { return; }
-    gLikelySubtags = new XLikelySubtags(data);
-    gMacroregions = loadMacroregions(errorCode);
+    gLikelySubtags = new LikelySubtags(data);
+    gMacroregions = getStaticMacroregions(errorCode);
+#if U_DEBUG
+    auto macroregionsFromData = loadMacroregions(errorCode);
+    U_ASSERT((*gMacroregions) == (*macroregionsFromData));
+    delete macroregionsFromData;
+#endif
     if (U_FAILURE(errorCode) || gLikelySubtags == nullptr || gMacroregions == nullptr) {
         delete gLikelySubtags;
         delete gMacroregions;
@@ -406,13 +471,13 @@
     ucln_common_registerCleanup(UCLN_COMMON_LIKELY_SUBTAGS, cleanup);
 }
 
-const XLikelySubtags *XLikelySubtags::getSingleton(UErrorCode &errorCode) {
+const LikelySubtags *LikelySubtags::getSingleton(UErrorCode &errorCode) {
     if (U_FAILURE(errorCode)) { return nullptr; }
-    umtx_initOnce(gInitOnce, &XLikelySubtags::initLikelySubtags, errorCode);
+    umtx_initOnce(gInitOnce, &LikelySubtags::initLikelySubtags, errorCode);
     return gLikelySubtags;
 }
 
-XLikelySubtags::XLikelySubtags(XLikelySubtagsData &data) :
+LikelySubtags::LikelySubtags(LikelySubtagsData &data) :
         langInfoBundle(data.langInfoBundle),
         strings(data.strings.orphanCharStrings()),
         languageAliases(std::move(data.languageAliases)),
@@ -421,7 +486,7 @@
         lsrs(data.lsrs),
 #if U_DEBUG
         lsrsLength(data.lsrsLength),
-#endif
+#endif // U_DEBUG
         distanceData(std::move(data.distanceData)) {
     data.langInfoBundle = nullptr;
     data.lsrs = nullptr;
@@ -447,18 +512,19 @@
     }
 }
 
-XLikelySubtags::~XLikelySubtags() {
+LikelySubtags::~LikelySubtags() {
     ures_close(langInfoBundle);
     delete strings;
     delete[] lsrs;
 }
 
-LSR XLikelySubtags::makeMaximizedLsrFrom(const Locale &locale,
+LSR LikelySubtags::makeMaximizedLsrFrom(const Locale &locale,
                                          bool returnInputIfUnmatch,
                                          UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return {}; }
     if (locale.isBogus()) {
         errorCode = U_ILLEGAL_ARGUMENT_ERROR;
-        return LSR("", "", "", LSR::EXPLICIT_LSR);
+        return {};
     }
     const char *name = locale.getName();
     if (uprv_isAtSign(name[0]) && name[1] == 'x' && name[2] == '=') {  // name.startsWith("@x=")
@@ -490,45 +556,48 @@
 
 }  // namespace
 
-LSR XLikelySubtags::makeMaximizedLsr(const char *language, const char *script, const char *region,
+LSR LikelySubtags::makeMaximizedLsr(const char *language, const char *script, const char *region,
                                      const char *variant,
                                      bool returnInputIfUnmatch,
                                      UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return {}; }
     // Handle pseudolocales like en-XA, ar-XB, fr-PSCRACK.
     // They should match only themselves,
     // not other locales with what looks like the same language and script subtags.
-    char c1;
-    if (region[0] == 'X' && (c1 = region[1]) != 0 && region[2] == 0) {
-        switch (c1) {
-        case 'A':
-            return LSR(PSEUDO_ACCENTS_PREFIX, language, script, region,
-                       LSR::EXPLICIT_LSR, errorCode);
-        case 'B':
-            return LSR(PSEUDO_BIDI_PREFIX, language, script, region,
-                       LSR::EXPLICIT_LSR, errorCode);
-        case 'C':
-            return LSR(PSEUDO_CRACKED_PREFIX, language, script, region,
-                       LSR::EXPLICIT_LSR, errorCode);
-        default:  // normal locale
-            break;
+    if (!returnInputIfUnmatch) {
+        char c1;
+        if (region[0] == 'X' && (c1 = region[1]) != 0 && region[2] == 0) {
+            switch (c1) {
+            case 'A':
+                return LSR(PSEUDO_ACCENTS_PREFIX, language, script, region,
+                           LSR::EXPLICIT_LSR, errorCode);
+            case 'B':
+                return LSR(PSEUDO_BIDI_PREFIX, language, script, region,
+                           LSR::EXPLICIT_LSR, errorCode);
+            case 'C':
+                return LSR(PSEUDO_CRACKED_PREFIX, language, script, region,
+                           LSR::EXPLICIT_LSR, errorCode);
+            default:  // normal locale
+                break;
+            }
         }
-    }
 
-    if (variant[0] == 'P' && variant[1] == 'S') {
-        int32_t lsrFlags = *region == 0 ?
-            LSR::EXPLICIT_LANGUAGE | LSR::EXPLICIT_SCRIPT : LSR::EXPLICIT_LSR;
-        if (uprv_strcmp(variant, "PSACCENT") == 0) {
-            return LSR(PSEUDO_ACCENTS_PREFIX, language, script,
-                       *region == 0 ? "XA" : region, lsrFlags, errorCode);
-        } else if (uprv_strcmp(variant, "PSBIDI") == 0) {
-            return LSR(PSEUDO_BIDI_PREFIX, language, script,
-                       *region == 0 ? "XB" : region, lsrFlags, errorCode);
-        } else if (uprv_strcmp(variant, "PSCRACK") == 0) {
-            return LSR(PSEUDO_CRACKED_PREFIX, language, script,
-                       *region == 0 ? "XC" : region, lsrFlags, errorCode);
+        if (variant[0] == 'P' && variant[1] == 'S') {
+            int32_t lsrFlags = *region == 0 ?
+                LSR::EXPLICIT_LANGUAGE | LSR::EXPLICIT_SCRIPT : LSR::EXPLICIT_LSR;
+            if (uprv_strcmp(variant, "PSACCENT") == 0) {
+                return LSR(PSEUDO_ACCENTS_PREFIX, language, script,
+                           *region == 0 ? "XA" : region, lsrFlags, errorCode);
+            } else if (uprv_strcmp(variant, "PSBIDI") == 0) {
+                return LSR(PSEUDO_BIDI_PREFIX, language, script,
+                           *region == 0 ? "XB" : region, lsrFlags, errorCode);
+            } else if (uprv_strcmp(variant, "PSCRACK") == 0) {
+                return LSR(PSEUDO_CRACKED_PREFIX, language, script,
+                           *region == 0 ? "XC" : region, lsrFlags, errorCode);
+            }
+            // else normal locale
         }
-        // else normal locale
-    }
+    } // end of if (!returnInputIfUnmatch)
 
     language = getCanonical(languageAliases, language);
     // (We have no script mappings.)
@@ -536,33 +605,32 @@
     return maximize(language, script, region, returnInputIfUnmatch, errorCode);
 }
 
-LSR XLikelySubtags::maximize(const char *language, const char *script, const char *region,
+LSR LikelySubtags::maximize(const char *language, const char *script, const char *region,
                              bool returnInputIfUnmatch,
                              UErrorCode &errorCode) const {
-    return maximize({language, (int32_t)uprv_strlen(language)},
-                    {script, (int32_t)uprv_strlen(script)},
-                    {region, (int32_t)uprv_strlen(region)},
+    if (U_FAILURE(errorCode)) { return {}; }
+    return maximize({language, static_cast<int32_t>(uprv_strlen(language))},
+                    {script, static_cast<int32_t>(uprv_strlen(script))},
+                    {region, static_cast<int32_t>(uprv_strlen(region))},
                     returnInputIfUnmatch,
                     errorCode);
 }
 
-bool XLikelySubtags::isMacroregion(StringPiece& region, UErrorCode& errorCode) const {
+bool LikelySubtags::isMacroregion(StringPiece& region, UErrorCode& errorCode) const {
+    if (U_FAILURE(errorCode)) { return false; }
     // In Java, we use Region class. In C++, since Region is under i18n,
     // we read the same data used by Region into gMacroregions avoid dependency
     // from common to i18n/region.cpp
+    umtx_initOnce(gInitOnce, &LikelySubtags::initLikelySubtags, errorCode);
     if (U_FAILURE(errorCode)) { return false; }
-    umtx_initOnce(gInitOnce, &XLikelySubtags::initLikelySubtags, errorCode);
-    if (U_FAILURE(errorCode)) { return false; }
     UnicodeString str(UnicodeString::fromUTF8(region));
     return gMacroregions->contains((void *)&str);
 }
 
-LSR XLikelySubtags::maximize(StringPiece language, StringPiece script, StringPiece region,
+LSR LikelySubtags::maximize(StringPiece language, StringPiece script, StringPiece region,
                              bool returnInputIfUnmatch,
                              UErrorCode &errorCode) const {
-    if (U_FAILURE(errorCode)) {
-        return LSR(language, script, region, LSR::EXPLICIT_LSR, errorCode);
-    }
+    if (U_FAILURE(errorCode)) { return {}; }
     if (language.compare("und") == 0) {
         language = "";
     }
@@ -681,7 +749,7 @@
     return LSR(language, script, region, retainMask, errorCode);
 }
 
-int32_t XLikelySubtags::compareLikely(const LSR &lsr, const LSR &other, int32_t likelyInfo) const {
+int32_t LikelySubtags::compareLikely(const LSR &lsr, const LSR &other, int32_t likelyInfo) const {
     // If likelyInfo >= 0:
     // likelyInfo bit 1 is set if the previous comparison with lsr
     // was for equal language and script.
@@ -723,7 +791,7 @@
 }
 
 // Subset of maximize().
-int32_t XLikelySubtags::getLikelyIndex(const char *language, const char *script) const {
+int32_t LikelySubtags::getLikelyIndex(const char *language, const char *script) const {
     if (uprv_strcmp(language, "und") == 0) {
         language = "";
     }
@@ -781,7 +849,7 @@
     return value;
 }
 
-int32_t XLikelySubtags::trieNext(BytesTrie &iter, const char *s, int32_t i) {
+int32_t LikelySubtags::trieNext(BytesTrie &iter, const char *s, int32_t i) {
     UStringTrieResult result;
     uint8_t c;
     if ((c = s[i]) == 0) {
@@ -814,7 +882,7 @@
     default: return -1;
     }
 }
-int32_t XLikelySubtags::trieNext(BytesTrie &iter, StringPiece s, int32_t i) {
+int32_t LikelySubtags::trieNext(BytesTrie &iter, StringPiece s, int32_t i) {
     UStringTrieResult result;
     uint8_t c;
     if (s.length() == i) {
@@ -848,14 +916,13 @@
     }
 }
 
-LSR XLikelySubtags::minimizeSubtags(StringPiece language, StringPiece script,
+LSR LikelySubtags::minimizeSubtags(StringPiece language, StringPiece script,
                                     StringPiece region,
                                     bool favorScript,
                                     UErrorCode &errorCode) const {
+    if (U_FAILURE(errorCode)) { return {}; }
     LSR max = maximize(language, script, region, true, errorCode);
-    if (U_FAILURE(errorCode)) {
-        return max;
-    }
+    if (U_FAILURE(errorCode)) { return {}; }
     // If no match, return it.
     if (uprv_strlen(max.language) == 0 &&
         uprv_strlen(max.script) == 0 &&
@@ -868,9 +935,7 @@
     }
     // try language
     LSR test = maximize(max.language, "", "", true, errorCode);
-    if (U_FAILURE(errorCode)) {
-        return max;
-    }
+    if (U_FAILURE(errorCode)) { return {}; }
     if (test.isEquivalentTo(max)) {
         return LSR(max.language, "", "", LSR::DONT_CARE_FLAGS, errorCode);
     }
@@ -879,9 +944,7 @@
         // favor Region
         // try language and region
         test = maximize(max.language, "", max.region, true, errorCode);
-        if (U_FAILURE(errorCode)) {
-            return max;
-        }
+        if (U_FAILURE(errorCode)) { return {}; }
         if (test.isEquivalentTo(max)) {
             return LSR(max.language, "", max.region, LSR::DONT_CARE_FLAGS, errorCode);
         }
@@ -888,9 +951,7 @@
     }
     // try language and script
     test = maximize(max.language, max.script, "", true, errorCode);
-    if (U_FAILURE(errorCode)) {
-        return max;
-    }
+    if (U_FAILURE(errorCode)) { return {}; }
     if (test.isEquivalentTo(max)) {
         return LSR(max.language, max.script, "", LSR::DONT_CARE_FLAGS, errorCode);
     }
@@ -897,9 +958,7 @@
     if (favorScript) {
         // try language and region
         test = maximize(max.language, "", max.region, true, errorCode);
-        if (U_FAILURE(errorCode)) {
-            return max;
-        }
+        if (U_FAILURE(errorCode)) { return {}; }
         if (test.isEquivalentTo(max)) {
             return LSR(max.language, "", max.region, LSR::DONT_CARE_FLAGS, errorCode);
         }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loclikelysubtags.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -19,7 +19,7 @@
 
 U_NAMESPACE_BEGIN
 
-struct XLikelySubtagsData;
+struct LikelySubtagsData;
 
 struct LocaleDistanceData {
     LocaleDistanceData() = default;
@@ -37,15 +37,14 @@
     LocaleDistanceData &operator=(const LocaleDistanceData &) = delete;
 };
 
-// TODO(ICU-20777): Rename to just LikelySubtags.
-class XLikelySubtags final : public UMemory {
+class LikelySubtags final : public UMemory {
 public:
-    ~XLikelySubtags();
+    ~LikelySubtags();
 
     static constexpr int32_t SKIP_SCRIPT = 1;
 
     // VisibleForTesting
-    static const XLikelySubtags *getSingleton(UErrorCode &errorCode);
+    static const LikelySubtags *getSingleton(UErrorCode &errorCode);
 
     // VisibleForTesting
     LSR makeMaximizedLsrFrom(const Locale &locale,
@@ -72,9 +71,9 @@
     const LocaleDistanceData &getDistanceData() const { return distanceData; }
 
 private:
-    XLikelySubtags(XLikelySubtagsData &data);
-    XLikelySubtags(const XLikelySubtags &other) = delete;
-    XLikelySubtags &operator=(const XLikelySubtags &other) = delete;
+    LikelySubtags(LikelySubtagsData &data);
+    LikelySubtags(const LikelySubtags &other) = delete;
+    LikelySubtags &operator=(const LikelySubtags &other) = delete;
 
     static void initLikelySubtags(UErrorCode &errorCode);
 
@@ -120,7 +119,7 @@
     int32_t lsrsLength;
 #endif
 
-    // distance/matcher data: see comment in XLikelySubtagsData::load()
+    // distance/matcher data: see comment in LikelySubtagsData::load()
     LocaleDistanceData distanceData;
 };
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -28,7 +28,6 @@
  */
 
 #include "locmap.h"
-#include "bytesinkutil.h"
 #include "charstr.h"
 #include "cstring.h"
 #include "cmemory.h"
@@ -49,6 +48,8 @@
  * [MS-LCID] Windows Language Code Identifier (LCID) Reference
  */
 
+namespace {
+
 /*
 ////////////////////////////////////////////////
 //
@@ -87,7 +88,7 @@
  * @param posixID posix ID of the language_TERRITORY such as 'de_CH'
  */
 #define ILCID_POSIX_ELEMENT_ARRAY(hostID, languageID, posixID) \
-static const ILcidPosixElement locmap_ ## languageID [] = { \
+constexpr ILcidPosixElement locmap_ ## languageID [] = { \
     {LANGUAGE_LCID(hostID), #languageID},     /* parent locale */ \
     {hostID, #posixID}, \
 };
@@ -97,7 +98,7 @@
  * @param id the POSIX ID, either a language or language_TERRITORY
  */
 #define ILCID_POSIX_SUBTABLE(id) \
-static const ILcidPosixElement locmap_ ## id [] =
+constexpr ILcidPosixElement locmap_ ## id [] =
 
 
 /**
@@ -796,7 +797,7 @@
 ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA)
 
 /* This must be static and grouped by LCID. */
-static const ILcidPosixMap gPosixIDmap[] = {
+constexpr ILcidPosixMap gPosixIDmap[] = {
     ILCID_POSIX_MAP(af),    /*  af  Afrikaans                 0x36 */
     ILCID_POSIX_MAP(am),    /*  am  Amharic                   0x5e */
     ILCID_POSIX_MAP(ar),    /*  ar  Arabic                    0x01 */
@@ -945,7 +946,7 @@
     ILCID_POSIX_MAP(zu),    /*  zu  Zulu                      0x35 */
 };
 
-static const uint32_t gLocaleCount = UPRV_LENGTHOF(gPosixIDmap);
+constexpr uint32_t gLocaleCount = UPRV_LENGTHOF(gPosixIDmap);
 
 /**
  * Do not call this function. It is called by hostID.
@@ -952,7 +953,7 @@
  * The function is not private because this struct must stay as a C struct,
  * and this is an internal class.
  */
-static int32_t
+int32_t
 idCmp(const char* id1, const char* id2)
 {
     int32_t diffIdx = 0;
@@ -972,12 +973,13 @@
  *               no equivalent Windows LCID.
  * @return the LCID
  */
-static uint32_t
-getHostID(const ILcidPosixMap *this_0, const char* posixID, UErrorCode* status)
+uint32_t
+getHostID(const ILcidPosixMap *this_0, const char* posixID, UErrorCode& status)
 {
+    if (U_FAILURE(status)) { return locmap_root->hostID; }
     int32_t bestIdx = 0;
     int32_t bestIdxDiff = 0;
-    int32_t posixIDlen = (int32_t)uprv_strlen(posixID);
+    int32_t posixIDlen = static_cast<int32_t>(uprv_strlen(posixID));
     uint32_t idx;
 
     for (idx = 0; idx < this_0->numRegions; idx++ ) {
@@ -996,16 +998,16 @@
     if ((posixID[bestIdxDiff] == '_' || posixID[bestIdxDiff] == '@')
         && this_0->regionMaps[bestIdx].posixID[bestIdxDiff] == 0)
     {
-        *status = U_USING_FALLBACK_WARNING;
+        status = U_USING_FALLBACK_WARNING;
         return this_0->regionMaps[bestIdx].hostID;
     }
 
     /*no match found */
-    *status = U_ILLEGAL_ARGUMENT_ERROR;
-    return this_0->regionMaps->hostID;
+    status = U_ILLEGAL_ARGUMENT_ERROR;
+    return locmap_root->hostID;
 }
 
-static const char*
+const char*
 getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
 {
     uint32_t i;
@@ -1035,19 +1037,21 @@
  * quz -> qu
  * prs -> fa
  */
-#define FIX_LANGUAGE_ID_TAG(buffer, len) \
-    if (len >= 3) { \
-        if (buffer[0] == 'q' && buffer[1] == 'u' && buffer[2] == 'z') {\
-            buffer[2] = 0; \
-            uprv_strcat(buffer, buffer+3); \
-        } else if (buffer[0] == 'p' && buffer[1] == 'r' && buffer[2] == 's') {\
-            buffer[0] = 'f'; buffer[1] = 'a'; buffer[2] = 0; \
-            uprv_strcat(buffer, buffer+3); \
-        } \
+void FIX_LANGUAGE_ID_TAG(char* buffer, int32_t len) {
+    if (len >= 3) {
+        if (buffer[0] == 'q' && buffer[1] == 'u' && buffer[2] == 'z') {
+            buffer[2] = 0;
+            uprv_strcat(buffer, buffer+3);
+        } else if (buffer[0] == 'p' && buffer[1] == 'r' && buffer[2] == 's') {
+            buffer[0] = 'f'; buffer[1] = 'a'; buffer[2] = 0;
+            uprv_strcat(buffer, buffer+3);
+        }
     }
-
+}
 #endif
 
+}  // namespace
+
 U_CAPI int32_t
 uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UErrorCode* status)
 {
@@ -1147,7 +1151,7 @@
 
     /* no match found */
     *status = U_ILLEGAL_ARGUMENT_ERROR;
-    return -1;
+    return 0;
 }
 
 /*
@@ -1176,11 +1180,7 @@
     // Check any for keywords.
     if (uprv_strchr(localeID, '@'))
     {
-        icu::CharString collVal;
-        {
-            icu::CharStringByteSink sink(&collVal);
-            ulocimp_getKeywordValue(localeID, "collation", sink, status);
-        }
+        icu::CharString collVal = ulocimp_getKeywordValue(localeID, "collation", *status);
         if (U_SUCCESS(*status) && !collVal.isEmpty())
         {
             // If it contains the keyword collation, return 0 so that the LCID lookup table will be used.
@@ -1189,10 +1189,7 @@
         else
         {
             // If the locale ID contains keywords other than collation, just use the base name.
-            {
-                icu::CharStringByteSink sink(&baseName);
-                ulocimp_getBaseName(localeID, sink, status);
-            }
+            baseName = ulocimp_getBaseName(localeID, *status);
             if (U_SUCCESS(*status) && !baseName.isEmpty())
             {
                 mylocaleID = baseName.data();
@@ -1201,11 +1198,7 @@
     }
 
     // this will change it from de_DE at collation=phonebook to de-DE-u-co-phonebk form
-    icu::CharString asciiBCP47Tag;
-    {
-        icu::CharStringByteSink sink(&asciiBCP47Tag);
-        ulocimp_toLanguageTag(mylocaleID, sink, false, status);
-    }
+    icu::CharString asciiBCP47Tag = ulocimp_toLanguageTag(mylocaleID, false, *status);
 
     if (U_SUCCESS(*status))
     {
@@ -1253,6 +1246,14 @@
 U_CAPI uint32_t
 uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status)
 {
+    if (U_FAILURE(*status) ||
+            langID == nullptr ||
+            posixID == nullptr ||
+            uprv_strlen(langID) < 2 ||
+            uprv_strlen(posixID) < 2) {
+        return locmap_root->hostID;
+    }
+
     // This function does the table lookup when native platform name->lcid conversion isn't available,
     // or for locales that don't follow patterns the platform expects.
     uint32_t   low    = 0;
@@ -1266,11 +1267,6 @@
     UErrorCode myStatus;
     uint32_t   idx;
 
-    /* Check for incomplete id. */
-    if (!langID || !posixID || uprv_strlen(langID) < 2 || uprv_strlen(posixID) < 2) {
-        return 0;
-    }
-
     /*Binary search for the map entry for normal cases */
 
     while (high > low)  /*binary search*/{
@@ -1288,7 +1284,7 @@
             low = mid;
         }
         else /*we found it*/{
-            return getHostID(&gPosixIDmap[mid], posixID, status);
+            return getHostID(&gPosixIDmap[mid], posixID, *status);
         }
         oldmid = mid;
     }
@@ -1299,7 +1295,7 @@
      */
     for (idx = 0; idx < gLocaleCount; idx++ ) {
         myStatus = U_ZERO_ERROR;
-        value = getHostID(&gPosixIDmap[idx], posixID, &myStatus);
+        value = getHostID(&gPosixIDmap[idx], posixID, myStatus);
         if (myStatus == U_ZERO_ERROR) {
             return value;
         }
@@ -1315,5 +1311,5 @@
 
     /* no match found */
     *status = U_ILLEGAL_ARGUMENT_ERROR;
-    return 0;   /* return international (root) */
+    return locmap_root->hostID;   /* return international (root) */
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -24,7 +24,6 @@
 #include "unicode/putil.h"
 #include "unicode/uloc.h"
 #include "unicode/ures.h"
-#include "bytesinkutil.h"
 #include "charstr.h"
 #include "cstring.h"
 #include "ulocimp.h"
@@ -50,10 +49,10 @@
                               int32_t *pLength,
                               UErrorCode *pErrorCode)
 {
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
 /*    char localeBuffer[ULOC_FULLNAME_CAPACITY*4];*/
     const char16_t *item=nullptr;
     UErrorCode errorCode;
-    char explicitFallbackName[ULOC_FULLNAME_CAPACITY] = {0};
 
     /*
      * open the bundle for the current locale
@@ -128,15 +127,16 @@
                *pErrorCode = errorCode;
                 break;
             }
-            
-            u_UCharsToChars(fallbackLocale, explicitFallbackName, len);
-            
+
+            icu::CharString explicitFallbackName;
+            explicitFallbackName.appendInvariantChars(fallbackLocale, len, errorCode);
+
             /* guard against recursive fallback */
-            if(uprv_strcmp(explicitFallbackName, locale)==0){
+            if (explicitFallbackName == locale) {
                 *pErrorCode = U_INTERNAL_PROGRAM_ERROR;
                 break;
             }
-            rb.adoptInstead(ures_open(path, explicitFallbackName, &errorCode));
+            rb.adoptInstead(ures_open(path, explicitFallbackName.data(), &errorCode));
             if(U_FAILURE(errorCode)){
                 *pErrorCode = errorCode;
                 break;
@@ -150,52 +150,52 @@
     return item;
 }
 
-static ULayoutType
+namespace {
+
+ULayoutType
 _uloc_getOrientationHelper(const char* localeId,
                            const char* key,
-                           UErrorCode *status)
+                           UErrorCode& status)
 {
     ULayoutType result = ULOC_LAYOUT_UNKNOWN;
 
-    if (!U_FAILURE(*status)) {
-        icu::CharString localeBuffer;
-        {
-            icu::CharStringByteSink sink(&localeBuffer);
-            ulocimp_canonicalize(localeId, sink, status);
-        }
+    if (U_FAILURE(status)) { return result; }
 
-        if (!U_FAILURE(*status)) {
-            int32_t length = 0;
-            const char16_t* const value =
-                uloc_getTableStringWithFallback(
-                    nullptr,
-                    localeBuffer.data(),
-                    "layout",
-                    nullptr,
-                    key,
-                    &length,
-                    status);
+    icu::CharString localeBuffer = ulocimp_canonicalize(localeId, status);
 
-            if (!U_FAILURE(*status) && length != 0) {
-                switch(value[0])
-                {
-                case 0x0062: /* 'b' */
-                    result = ULOC_LAYOUT_BTT;
-                    break;
-                case 0x006C: /* 'l' */
-                    result = ULOC_LAYOUT_LTR;
-                    break;
-                case 0x0072: /* 'r' */
-                    result = ULOC_LAYOUT_RTL;
-                    break;
-                case 0x0074: /* 't' */
-                    result = ULOC_LAYOUT_TTB;
-                    break;
-                default:
-                    *status = U_INTERNAL_PROGRAM_ERROR;
-                    break;
-                }
-            }
+    if (U_FAILURE(status)) { return result; }
+
+    int32_t length = 0;
+    const char16_t* const value =
+        uloc_getTableStringWithFallback(
+            nullptr,
+            localeBuffer.data(),
+            "layout",
+            nullptr,
+            key,
+            &length,
+            &status);
+
+    if (U_FAILURE(status)) { return result; }
+
+    if (length != 0) {
+        switch(value[0])
+        {
+        case 0x0062: /* 'b' */
+            result = ULOC_LAYOUT_BTT;
+            break;
+        case 0x006C: /* 'l' */
+            result = ULOC_LAYOUT_LTR;
+            break;
+        case 0x0072: /* 'r' */
+            result = ULOC_LAYOUT_RTL;
+            break;
+        case 0x0074: /* 't' */
+            result = ULOC_LAYOUT_TTB;
+            break;
+        default:
+            status = U_INTERNAL_PROGRAM_ERROR;
+            break;
         }
     }
 
@@ -202,11 +202,13 @@
     return result;
 }
 
+}  // namespace
+
 U_CAPI ULayoutType U_EXPORT2
 uloc_getCharacterOrientation(const char* localeId,
                              UErrorCode *status)
 {
-    return _uloc_getOrientationHelper(localeId, "characters", status);
+    return _uloc_getOrientationHelper(localeId, "characters", *status);
 }
 
 /**
@@ -220,5 +222,5 @@
 uloc_getLineOrientation(const char* localeId,
                         UErrorCode *status)
 {
-    return _uloc_getOrientationHelper(localeId, "lines", status);
+    return _uloc_getOrientationHelper(localeId, "lines", *status);
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -145,9 +145,7 @@
 Locale&
 LocaleUtility::initLocaleFromName(const UnicodeString& id, Locale& result)
 {
-    enum { BUFLEN = 128 }; // larger than ever needed
-
-    if (id.isBogus() || id.length() >= BUFLEN) {
+    if (id.isBogus()) {
         result.setToBogus();
     } else {
         /*
@@ -168,24 +166,29 @@
          *
          * There should be only at most one '@' in a locale ID.
          */
-        char buffer[BUFLEN];
+        CharString buffer;
         int32_t prev, i;
         prev = 0;
-        for(;;) {
-            i = id.indexOf((char16_t)0x40, prev);
+        UErrorCode status = U_ZERO_ERROR;
+        do {
+            i = id.indexOf(static_cast<char16_t>(0x40), prev);
             if(i < 0) {
                 // no @ between prev and the rest of the string
-                id.extract(prev, INT32_MAX, buffer + prev, BUFLEN - prev, US_INV);
+                buffer.appendInvariantChars(id.tempSubString(prev), status);
                 break; // done
             } else {
                 // normal invariant-character conversion for text between @s
-                id.extract(prev, i - prev, buffer + prev, BUFLEN - prev, US_INV);
+                buffer.appendInvariantChars(id.tempSubString(prev, i - prev), status);
                 // manually "convert" U+0040 at id[i] into '@' at buffer[i]
-                buffer[i] = '@';
+                buffer.append('@', status);
                 prev = i + 1;
             }
+        } while (U_SUCCESS(status));
+        if (U_FAILURE(status)) {
+            result.setToBogus();
+        } else {
+            result = Locale::createFromName(buffer.data());
         }
-        result = Locale::createFromName(buffer);
     }
     return result;
 }
@@ -221,7 +224,7 @@
 
     Hashtable* htp;
     umtx_lock(nullptr);
-    htp = (Hashtable*) cache->get(bundleID);
+    htp = static_cast<Hashtable*>(cache->get(bundleID));
     umtx_unlock(nullptr);
 
     if (htp == nullptr) {
@@ -259,7 +262,7 @@
     return htp;
 }
 
-UBool
+bool
 LocaleUtility::isFallbackOf(const UnicodeString& root, const UnicodeString& child)
 {
     return child.indexOf(root) == 0 &&
@@ -271,5 +274,3 @@
 
 /* !UCONFIG_NO_SERVICE */
 #endif
-
-

Modified: trunk/Build/source/libs/icu/icu-src/source/common/locutil.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locutil.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locutil.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -28,7 +28,7 @@
   static Locale& initLocaleFromName(const UnicodeString& id, Locale& result);
   static UnicodeString& initNameFromLocale(const Locale& locale, UnicodeString& result);
   static const Hashtable* getAvailableLocaleNames(const UnicodeString& bundleID);
-  static UBool isFallbackOf(const UnicodeString& root, const UnicodeString& child);
+  static bool isFallbackOf(const UnicodeString& root, const UnicodeString& child);
 };
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/lstmbe.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/lstmbe.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/lstmbe.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -164,7 +164,7 @@
     Array1D() : memory_(nullptr), data_(nullptr), d1_(0) {}
     Array1D(int32_t d1, UErrorCode &status)
         : memory_(uprv_malloc(d1 * sizeof(float))),
-          data_((float*)memory_), d1_(d1) {
+          data_(static_cast<float*>(memory_)), d1_(d1) {
         if (U_SUCCESS(status)) {
             if (memory_ == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
@@ -301,7 +301,7 @@
     Array2D() : memory_(nullptr), data_(nullptr), d1_(0), d2_(0) {}
     Array2D(int32_t d1, int32_t d2, UErrorCode &status)
         : memory_(uprv_malloc(d1 * d2 * sizeof(float))),
-          data_((float*)memory_), d1_(d1), d2_(d2) {
+          data_(static_cast<float*>(memory_)), d1_(d1), d2_(d2) {
         if (U_SUCCESS(status)) {
             if (memory_ == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
@@ -526,11 +526,11 @@
         int32_t current;
         char16_t str[2] = {0, 0};
         while (U_SUCCESS(status) &&
-               (current = (int32_t)utext_getNativeIndex(text)) < endPos) {
+               (current = static_cast<int32_t>(utext_getNativeIndex(text))) < endPos) {
             // Since the LSTMBreakEngine is currently only accept chars in BMP,
             // we can ignore the possibility of hitting supplementary code
             // point.
-            str[0] = (char16_t) utext_next32(text);
+            str[0] = static_cast<char16_t>(utext_next32(text));
             U_ASSERT(!U_IS_SURROGATE(str[0]));
             offsets.addElement(current, status);
             indices.addElement(stringToIndex(str), status);
@@ -733,7 +733,7 @@
 #endif  // LSTM_DEBUG
 
         // current = argmax(logp)
-        LSTMClass current = (LSTMClass)logp.maxIndex();
+        LSTMClass current = static_cast<LSTMClass>(logp.maxIndex());
         // BIES logic.
         if (current == BEGIN || current == SINGLE) {
             if (i != 0) {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -351,7 +351,7 @@
     for(int32_t i=count; i>0;) {
         const Part &part=getPart(--i);
         if(part.getType()==UMSGPAT_PART_TYPE_INSERT_CHAR) {
-           modified.insert(part.index, (char16_t)part.value);
+           modified.insert(part.index, static_cast<char16_t>(part.value));
         }
     }
     return modified;
@@ -437,7 +437,7 @@
     if(U_FAILURE(errorCode)) {
         return 0;
     }
-    if(nestingLevel>Part::MAX_VALUE) {
+    if(nestingLevel>Part::MAX_NESTED_LEVELS) {
         errorCode=U_INDEX_OUTOFBOUNDS_ERROR;
         return 0;
     }
@@ -628,7 +628,7 @@
             }
         }
         // change the ARG_START type from NONE to argType
-        partsList->a[argStart].value=(int16_t)argType;
+        partsList->a[argStart].value = static_cast<int16_t>(argType);
         if(argType==UMSGPAT_ARG_TYPE_SIMPLE) {
             addPart(UMSGPAT_PART_TYPE_ARG_TYPE, typeIndex, length, 0, errorCode);
         }
@@ -980,13 +980,13 @@
         }
         // Let Double.parseDouble() throw a NumberFormatException.
         char numberChars[128];
-        int32_t capacity=(int32_t)sizeof(numberChars);
+        int32_t capacity = static_cast<int32_t>(sizeof(numberChars));
         int32_t length=limit-start;
         if(length>=capacity) {
             break;  // number too long
         }
         msg.extract(start, length, numberChars, capacity, US_INV);
-        if((int32_t)uprv_strlen(numberChars)<length) {
+        if (static_cast<int32_t>(uprv_strlen(numberChars)) < length) {
             break;  // contains non-invariant character that was turned into NUL
         }
         char *end;
@@ -999,7 +999,6 @@
     }
     setParseError(parseError, start /*, limit*/);  // Bad syntax for numeric value.
     errorCode=U_PATTERN_SYNTAX_ERROR;
-    return;
 }
 
 int32_t
@@ -1007,7 +1006,7 @@
     const char16_t *s=msg.getBuffer();
     int32_t msgLength=msg.length();
     const char16_t *t=PatternProps::skipWhiteSpace(s+index, msgLength-index);
-    return (int32_t)(t-s);
+    return static_cast<int32_t>(t - s);
 }
 
 int32_t
@@ -1015,7 +1014,7 @@
     const char16_t *s=msg.getBuffer();
     int32_t msgLength=msg.length();
     const char16_t *t=PatternProps::skipIdentifier(s+index, msgLength-index);
-    return (int32_t)(t-s);
+    return static_cast<int32_t>(t - s);
 }
 
 int32_t
@@ -1106,8 +1105,8 @@
         Part &part=partsList->a[partsLength++];
         part.type=type;
         part.index=index;
-        part.length=(uint16_t)length;
-        part.value=(int16_t)value;
+        part.length = static_cast<uint16_t>(length);
+        part.value = static_cast<int16_t>(value);
         part.limitPartIndex=0;
     }
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/mlbe.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/mlbe.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/mlbe.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -57,12 +57,12 @@
     // moving forward, finally the last six values in the indexList are
     // [length-4, length-3, length-2, length-1, -1, -1]. The "+4" here means four extra "-1".
     int32_t indexSize = codePointLength + 4;
-    int32_t *indexList = (int32_t *)uprv_malloc(indexSize * sizeof(int32_t));
-    if (indexList == nullptr) {
+    LocalMemory<int32_t> indexList(static_cast<int32_t*>(uprv_malloc(indexSize * sizeof(int32_t))));
+    if (indexList.isNull()) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return 0;
     }
-    int32_t numCodeUnits = initIndexList(inString, indexList, status);
+    int32_t numCodeUnits = initIndexList(inString, indexList.getAlias(), status);
 
     // Add a break for the start.
     boundary.addElement(0, status);
@@ -71,13 +71,12 @@
 
     for (int32_t idx = 0; idx + 1 < codePointLength && U_SUCCESS(status); idx++) {
         numBreaks =
-            evaluateBreakpoint(inString, indexList, idx, numCodeUnits, numBreaks, boundary, status);
+            evaluateBreakpoint(inString, indexList.getAlias(), idx, numCodeUnits, numBreaks, boundary, status);
         if (idx + 4 < codePointLength) {
             indexList[idx + 6] = numCodeUnits;
             numCodeUnits += U16_LENGTH(inString.char32At(indexList[idx + 6]));
         }
     }
-    uprv_free(indexList);
 
     if (U_FAILURE(status)) return 0;
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -9,28 +9,28 @@
 
 #ifdef INCLUDED_FROM_NORMALIZER2_CPP
 
-static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0};
-static const UVersionInfo norm2_nfc_data_dataVersion={0xf,1,0,0};
+static const UVersionInfo norm2_nfc_data_formatVersion={5,0,0,0};
+static const UVersionInfo norm2_nfc_data_dataVersion={0x10,0,0,0};
 
 static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={
-0x50,0x4cb8,0x8920,0x8a20,0x8a20,0x8a20,0x8a20,0x8a20,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c,
-0x3c34,0x3c66,0x300,0
+0x58,0x4e84,0x8c60,0x8d60,0x8d60,0x8d60,0x8d60,0x8d60,0xc0,0x300,0xb0c,0x2a6a,0x3cf0,0xfbc4,0x12c2,0x3c26,
+0x3cbe,0x3cf0,0x300,0,0xfb10,0xfb9e
 };
 
-static const uint16_t norm2_nfc_data_trieIndex[1788]={
+static const uint16_t norm2_nfc_data_trieIndex[1869]={
 0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353,
 0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3,
-0x631,0x65f,0x687,0x6bd,0x6fd,0x73a,0x75a,0x799,0x7d8,0x815,0x834,0x871,0x75a,0x8aa,0x8d8,0x917,
-0x834,0x951,0x968,0x9a8,0x9bf,0x9fe,0x226,0xa34,0xa54,0xa8f,0xa9b,0xad6,0xafe,0xb3b,0xb7b,0xbb5,
-0xbd0,0x226,0xc0b,0x226,0xc4b,0xc6a,0xca0,0xcdd,0x226,0x226,0x226,0x226,0x226,0xd00,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xd2c,0x226,0x226,0xd61,
-0x226,0x226,0xd7f,0x226,0xda9,0x226,0x226,0x226,0xde5,0xe05,0xe45,0xe84,0xebf,0xeff,0xf33,0xf5f,
-0x839,0x226,0x226,0xf93,0x226,0x226,0x226,0xfd3,0x1013,0x1053,0x1093,0x10d3,0x1113,0x1153,0x1193,0x11d3,
-0x1213,0x226,0x226,0x1243,0x1274,0x226,0x12a4,0x12d7,0x1314,0x1353,0x1393,0x13c9,0x13f7,0x226,0x226,0x226,
+0x631,0x65f,0x688,0x6be,0x6fe,0x73b,0x75b,0x79a,0x7d9,0x816,0x835,0x872,0x75b,0x8ab,0x8d9,0x918,
+0x835,0x952,0x969,0x9a9,0x9c0,0x9ff,0x226,0xa35,0xa55,0xa90,0xa9c,0xad7,0xaff,0xb3c,0xb7c,0xbb6,
+0xbd1,0x226,0xc0c,0x226,0xc4c,0xc6b,0xca1,0xcde,0x226,0x226,0x226,0x226,0x226,0xd01,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xd2d,0x226,0x226,0xd62,
+0x226,0x226,0xd80,0x226,0xdaa,0x226,0x226,0x226,0xde6,0xe06,0xe46,0xe85,0xec0,0xf00,0xf34,0xf60,
+0x83a,0x226,0x226,0xf94,0x226,0x226,0x226,0xfd4,0x1014,0x1054,0x1094,0x10d4,0x1114,0x1154,0x1194,0x11d4,
+0x1214,0x226,0x226,0x1244,0x1275,0x226,0x12a5,0x12d8,0x1315,0x1354,0x1394,0x13ca,0x13f8,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1422,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0xcee,0x226,0x143f,0x226,0x147f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x14bf,0x14f9,0x1537,0x1577,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1423,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0xcef,0x226,0x1440,0x226,0x1480,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x14c0,0x14fa,0x1538,0x1578,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
@@ -59,20 +59,20 @@
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15b6,0x15f4,0x1614,0x226,0x226,0x226,0x226,
-0x164e,0x226,0x226,0x1676,0x16a8,0x16d6,0x83d,0x16e9,0x226,0x226,0x16f9,0x1739,0x226,0x226,0x226,0x1451,
-0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,
-0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,
-0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,
-0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,
-0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,
-0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,
-0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,
-0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,
-0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,
-0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,
-0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x17c5,0x226,
-0x1805,0x1840,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15b7,0x15f5,0x1615,0x226,0x226,0x226,0x226,
+0x164f,0x226,0x226,0x1677,0x16a9,0x16d7,0x83e,0x16ea,0x226,0x226,0x16fa,0x173a,0x226,0x226,0x226,0x1452,
+0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,
+0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,
+0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,
+0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,
+0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,
+0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,
+0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,
+0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,
+0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,
+0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,
+0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x178e,0x177a,0x1782,0x178a,0x1792,0x177e,0x1786,0x17c6,0x226,
+0x1806,0x1841,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
@@ -80,59 +80,64 @@
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x1880,0x18c0,0x1900,0x1940,0x1980,0x19c0,0x1a00,0x1a40,0x1a63,0x1aa3,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac3,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x67e,0x68e,0x6a6,0x6c5,0x6da,0x6da,0x6da,0x6de,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1881,0x18c1,0x1901,0x1941,0x1981,0x19c1,0x1a01,0x1a41,0x1a64,0x1aa4,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac4,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x6cf,0x6df,0x6f7,0x716,0x72b,0x72b,0x72b,0x72f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1af6,0x226,0x226,0x1b06,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0xdf7,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1b16,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1607,0x226,0x226,0x226,0x226,0x66b,0x226,0x226,0x226,
-0x226,0x1b20,0x54f,0x226,0x226,0x1b30,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x81c,0x226,0x226,
-0x1b40,0x226,0x1b50,0x1b5d,0x1b69,0x226,0x226,0x226,0x226,0x414,0x226,0x1b74,0x1b84,0x226,0x226,0x226,
-0x811,0x226,0x226,0x226,0x226,0x1b94,0x226,0x226,0x226,0x1b9f,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x1ba6,0x226,0x226,0x226,0x226,0x1bb1,0x1bc0,0x927,0x1bce,0x412,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x1bdc,0x7c9,0x226,0x226,0x226,0x226,0x226,0x1bec,0x1bfb,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x907,0x1c03,0x1c13,0x226,
-0x226,0x226,0x9eb,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1d,0x226,0x226,0x226,0x226,0x226,
-0x226,0x817,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1a,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2d,
-0x811,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x87e,0x226,0x226,0x226,0x81e,0x81b,
-0x226,0x226,0x226,0x226,0x819,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x9eb,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc05,0x226,0x226,0x226,
-0x226,0x81b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0xc08,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x1c3d,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c4d,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x1c4f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c5e,0x1c6e,0x1c7c,0x1c89,0x226,
-0x1c95,0x1ca3,0x1cb3,0x226,0x226,0x226,0x226,0xd1b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1afb,0x1b09,0x1b15,0x226,
+0x1b1a,0x226,0x226,0x1b2a,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xdf8,0x226,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x1cc3,0x1ccb,0x1cd9,0x226,0x226,0x226,0x226,0x226,0x4f9,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x7c9,0x226,0x226,0x226,0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ce4,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cf4,0x226,0x226,0x226,0x226,
-0x226,0x226,0x1d00,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d10,0x1d20,
-0x1d30,0x1d40,0x1d50,0x1d60,0x1d70,0x1d80,0x1d90,0x1da0,0x1db0,0x1dc0,0x1dd0,0x1de0,0x1df0,0x1e00,0x1e10,0x1e20,
-0x1e30,0x1e40,0x1e50,0x1e60,0x1e70,0x1e80,0x1e90,0x1ea0,0x1eb0,0x1ec0,0x1ed0,0x1ee0,0x1ef0,0x1f00,0x1f10,0x1f20,
+0x226,0x1b3a,0x226,0x226,0x226,0x1b42,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x1608,0x226,0x226,0x226,0x226,0x66b,0x226,0x226,0x226,0x226,0x1b50,0x54f,0x226,0x226,0x1b60,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x81d,0x226,0x226,0x1b70,0x226,0x1b80,0x1b8d,0x1b99,0x226,0x226,
+0x226,0x226,0x414,0x226,0x1ba4,0x1bb4,0x226,0x226,0x226,0x812,0x226,0x226,0x226,0x226,0x1bc4,0x226,
+0x226,0x226,0x1bcf,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bd6,0x226,0x226,
+0x226,0x226,0x1be1,0x1bf0,0x928,0x1bfe,0x412,0x1c0c,0x1c1c,0x226,0x1c24,0x1c32,0x87f,0x226,0x226,0x226,
+0x226,0x1c42,0x7ca,0x226,0x226,0x226,0x226,0x226,0x1c52,0x1c61,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x908,0x1c69,0x1c79,0x226,0x226,0x226,0x9ec,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x1c83,0x226,0x226,0x226,0x226,0x226,0x226,0x818,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c80,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c93,0x812,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x87f,0x226,0x226,0x226,0x81f,0x81c,0x226,0x226,0x226,0x226,0x81a,
 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
-0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,0x428,
-0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489,0x4a6,0x4c2,0x4df,0x4fc,0x51b,0x538,0x552,0xc4,0xc4,
+0x226,0x226,0x226,0x226,0x226,0x226,0x9ec,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc06,0x226,0x226,0x226,0x226,0x81c,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0xc09,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1ca2,0x1cb1,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1cc1,0x226,0x226,0x226,0xf2d,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cce,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cde,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ce0,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x1cef,0x1cff,0x1d0d,0x1d1a,0x226,0x1d26,0x1d34,0x1d44,0x226,0x226,0x226,0x226,0xd1c,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d54,0x1d5c,0x1d6a,0x226,0x226,0x226,0x226,0x226,
+0x4f9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xf2d,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7ca,0x226,0x226,0x226,0x4fc,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d75,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x5c1,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d85,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1d91,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1da1,
+0x1db1,0x1dc1,0x1dd1,0x1de1,0x1df1,0x1e01,0x1e11,0x1e21,0x1e31,0x1e41,0x1e51,0x1e61,0x1e71,0x1e81,0x1e91,0x1ea1,
+0x1eb1,0x1ec1,0x1ed1,0x1ee1,0x1ef1,0x1f01,0x1f11,0x1f21,0x1f31,0x1f41,0x1f51,0x1f61,0x1f71,0x1f81,0x1f91,0x1fa1,
+0x1fb1,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,
+0x428,0x440,0xc4,0xc4,0x460,0x46f,0x486,0x4a2,0x4bf,0x4dd,0x4fa,0x517,0x536,0x553,0x56d,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x582,
+0xc4,0xc4,0xc4,0xc4,0x595,0x5a9,0x5c0,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
-0xc4,0xc4,0xc4,0x567,0xc4,0x57b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0x5e0,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5eb,0x608,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x628,0x63e,0x650,0xc4,0x66f,0xc4,0xc4,0xc4,0xc4,0xc4,
 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
-0xc4,0xc4,0xc4,0xc4,0x59b,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5a6,0x5c3,0xc4,
-0xc4,0xc4,0xc4,0xc4,0xc4,0x5e3,0x5f9,0x60b,0xc4,0x61e,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
-0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
-0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x63e,0x65e
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x68f,0x6af
 };
 
-static const uint16_t norm2_nfc_data_trieData[7984]={
+static const uint16_t norm2_nfc_data_trieData[8129]={
 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,1,1,1,1,1,1,1,1,1,
@@ -144,30 +149,30 @@
 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,0x5e8,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0x128a,0x1290,0xae4,0x1296,0xafa,
-0xb04,0x5f4,0xb0e,0x129c,0x12a2,0xb18,0x12a8,0x12ae,0x12b4,0x12ba,0xb2e,1,0x12c0,0x12c6,0x12cc,0xb38,
-0xb4e,0xb60,1,0x5fc,0x12d2,0x12d8,0x12de,0xb6a,0x12e4,1,1,0x12ea,0x12f0,0xb80,0x12f6,0xb96,
-0xba0,0x600,0xbaa,0x12fc,0x1302,0xbb4,0x1308,0x130e,0x1314,0x131a,0xbca,1,0x1320,0x1326,0x132c,0xbd4,
-0xbea,0xbfc,1,0x608,0x1332,0x1338,0x133e,0xc06,0x1344,1,0x134a,0x1350,0x1356,0xc1c,0xc32,0x135d,
-0x1363,0x1368,0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,0x139e,1,1,0xc48,0xc56,0x13a4,
-0x13aa,0x13b0,0x13b6,0x13bd,0x13c3,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f2,0x13f9,0x13ff,0x1404,
-0x140a,1,1,0x1410,0x1416,0x141c,0x1422,0x1428,0x142e,0x1435,0x143b,0x1440,1,1,1,0x1447,
-0x144d,0x1453,0x1459,1,0x145e,0x1464,0x146b,0x1471,0x1476,0x147c,1,1,1,0x1482,0x1488,0x148f,
-0x1495,0x149a,0x14a0,1,1,1,0xc64,0xc72,0x14a6,0x14ac,0x14b2,0x14b8,1,1,0x14be,0x14c4,
-0x14cb,0x14d1,0x14d6,0x14dc,0xc80,0xc8a,0x14e2,0x14e8,0x14ef,0x14f5,0xc94,0xc9e,0x14fb,0x1501,0x1506,0x150c,
-1,1,0xca8,0xcb2,0xcbc,0xcc6,0x1512,0x1518,0x151e,0x1524,0x152a,0x1530,0x1537,0x153d,0x1542,0x1548,
-0x154e,0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x157e,0x60c,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x12c4,0x12ca,0xb0e,0x12d0,0xb24,
+0xb2e,0x5f4,0xb38,0x12d6,0x12dc,0xb42,0x12e2,0x12e8,0x12ee,0x12f4,0xb58,1,0x12fa,0x1300,0x1306,0xb62,
+0xb78,0xb8a,1,0x5fc,0x130c,0x1312,0x1318,0xb94,0x131e,1,1,0x1324,0x132a,0xbaa,0x1330,0xbc0,
+0xbca,0x600,0xbd4,0x1336,0x133c,0xbde,0x1342,0x1348,0x134e,0x1354,0xbf4,1,0x135a,0x1360,0x1366,0xbfe,
+0xc14,0xc26,1,0x608,0x136c,0x1372,0x1378,0xc30,0x137e,1,0x1384,0x138a,0x1390,0xc46,0xc5c,0x1397,
+0x139d,0x13a2,0x13a8,0x13ae,0x13b4,0x13ba,0x13c0,0x13c6,0x13cc,0x13d2,0x13d8,1,1,0xc72,0xc80,0x13de,
+0x13e4,0x13ea,0x13f0,0x13f7,0x13fd,0x1402,0x1408,0x140e,0x1414,0x141a,0x1420,0x1426,0x142c,0x1433,0x1439,0x143e,
+0x1444,1,1,0x144a,0x1450,0x1456,0x145c,0x1462,0x1468,0x146f,0x1475,0x147a,1,1,1,0x1481,
+0x1487,0x148d,0x1493,1,0x1498,0x149e,0x14a5,0x14ab,0x14b0,0x14b6,1,1,1,0x14bc,0x14c2,0x14c9,
+0x14cf,0x14d4,0x14da,1,1,1,0xc8e,0xc9c,0x14e0,0x14e6,0x14ec,0x14f2,1,1,0x14f8,0x14fe,
+0x1505,0x150b,0x1510,0x1516,0xcaa,0xcb4,0x151c,0x1522,0x1529,0x152f,0xcbe,0xcc8,0x1535,0x153b,0x1540,0x1546,
+1,1,0xcd2,0xcdc,0xce6,0xcf0,0x154c,0x1552,0x1558,0x155e,0x1564,0x156a,0x1571,0x1577,0x157c,0x1582,
+0x1588,0x158e,0x1594,0x159a,0x15a0,0x15a6,0x15ac,0x15b2,0x15b8,0x60c,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,0xcd0,0xcea,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xd04,0xd1e,1,1,1,1,1,
-1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x1584,
-0x158a,0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15ae,0x15b6,0x15c0,0x15ca,0x15d4,0x15de,0x15e8,0x15f2,0x15fc,1,
-0x1606,0x1610,0x161a,0x1624,0x162d,0x1633,1,1,0x1638,0x163e,0x1644,0x164a,0xd38,0xd42,0x1653,0x165d,
-0x1665,0x166b,0x1671,1,1,1,0x1676,0x167c,1,1,0x1682,0x1688,0x1690,0x169a,0x16a3,0x16a9,
-0x16af,0x16b5,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,0x1708,
-0x170e,0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,0x175c,1,1,
-0x1762,0x1768,1,1,1,1,1,1,0xd4c,0xd56,0xd60,0xd6a,0x1770,0x177a,0x1784,0x178e,
-0xd74,0xd7e,0x1798,0x17a2,0x17aa,0x17b0,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xcfa,0xd14,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xd2e,0xd48,1,1,1,1,1,
+1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x15be,
+0x15c4,0x15ca,0x15d0,0x15d6,0x15dc,0x15e2,0x15e8,0x15f0,0x15fa,0x1604,0x160e,0x1618,0x1622,0x162c,0x1636,1,
+0x1640,0x164a,0x1654,0x165e,0x1667,0x166d,1,1,0x1672,0x1678,0x167e,0x1684,0xd62,0xd6c,0x168d,0x1697,
+0x169f,0x16a5,0x16ab,1,1,1,0x16b0,0x16b6,1,1,0x16bc,0x16c2,0x16ca,0x16d4,0x16dd,0x16e3,
+0x16e9,0x16ef,0x16f4,0x16fa,0x1700,0x1706,0x170c,0x1712,0x1718,0x171e,0x1724,0x172a,0x1730,0x1736,0x173c,0x1742,
+0x1748,0x174e,0x1754,0x175a,0x1760,0x1766,0x176c,0x1772,0x1778,0x177e,0x1784,0x178a,0x1790,0x1796,1,1,
+0x179c,0x17a2,1,1,1,1,1,1,0xd76,0xd80,0xd8a,0xd94,0x17aa,0x17b4,0x17be,0x17c8,
+0xd9e,0xda8,0x17d2,0x17dc,0x17e4,0x17ea,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,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -178,34 +183,34 @@
 0xfdcc,0xffcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xffd0,0xffb8,0xffb8,0xffb8,0xffb8,0xffd0,0xfdb0,
 0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xff94,0xff94,0xfdb8,0xfdb8,0xfdb8,0xfdb8,0xfd94,0xfd94,0xffb8,0xffb8,0xffb8,
 0xffb8,0xfdb8,0xfdb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xffb8,0xfe02,0xfe02,0xfe02,0xfe02,0xfc02,0xffb8,0xffb8,0xffb8,
-0xffb8,0xffcc,0xffcc,0xffcc,0x3c36,0x3c3c,0xfdcc,0x3c42,0x3c48,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffb8,0xffcc,0xffcc,0xffcc,0x3cc0,0x3cc6,0xfdcc,0x3ccc,0x3cd2,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
 0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc,
 0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x29e1,1,1,1,1,1,1,1,
-1,1,0x29e5,1,1,1,1,1,0x17b7,0x17bd,0x29e9,0x17c3,0x17c9,0x17cf,1,0x17d5,
-1,0x17db,0x17e1,0x17e9,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1,
-1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17f1,0x17f7,0xd88,
-0x17fd,0xd92,0x1803,0x180b,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1,
-1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd9c,0xdae,0x1813,
-0x1819,0xdc0,1,1,1,0x76c,0x181f,0x1825,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x2a6b,1,1,1,1,1,1,1,
+1,1,0x2a6f,1,1,1,1,1,0x17f1,0x17f7,0x2a73,0x17fd,0x1803,0x1809,1,0x180f,
+1,0x1815,0x181b,0x1823,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1,
+1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x182b,0x1831,0xdb2,
+0x1837,0xdbc,0x183d,0x1845,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1,
+1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xdc6,0xdd8,0x184d,
+0x1853,0xdea,1,1,1,0x76c,0x1859,0x185f,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,1,
-1,1,1,0x182b,0x1831,1,0x1837,1,1,0x774,0x183d,1,1,1,1,0x1843,
-0x1849,0x184f,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x1855,0x7ac,1,1,
+1,1,1,0x1865,0x186b,1,0x1871,1,1,0x774,0x1877,1,1,1,1,0x187d,
+0x1883,0x1889,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x188f,0x7ac,1,1,
 1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,1,
-0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x185b,0x804,1,1,
+0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1895,0x804,1,1,
 1,0x808,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,1,0x824,
-1,1,0x1861,0x1867,1,0x186d,1,1,0x828,0x1873,1,1,1,1,0x1879,0x187f,
-0x1885,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0x82c,0x830,0x188b,0x1891,1,1,1,1,1,1,
+1,1,0x189b,0x18a1,1,0x18a7,1,1,0x828,0x18ad,1,1,1,1,0x18b3,0x18b9,
+0x18bf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x82c,0x830,0x18c5,0x18cb,1,1,1,1,1,1,
 1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x1897,
-0x189d,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18a3,0x18a9,
-0x18af,0x18b5,1,1,0x18bb,0x18c1,0x834,0x838,0x18c7,0x18cd,0x18d3,0x18d9,0x18df,0x18e5,1,1,
-0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x1909,0x83c,0x840,0x190f,0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,0x1939,
-0x193f,0x1945,0x194b,0x1951,1,1,0x1957,0x195d,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18d1,
+0x18d7,1,1,1,1,1,1,1,1,1,1,1,1,1,0x18dd,0x18e3,
+0x18e9,0x18ef,1,1,0x18f5,0x18fb,0x834,0x838,0x1901,0x1907,0x190d,0x1913,0x1919,0x191f,1,1,
+0x1925,0x192b,0x1931,0x1937,0x193d,0x1943,0x83c,0x840,0x1949,0x194f,0x1955,0x195b,0x1961,0x1967,0x196d,0x1973,
+0x1979,0x197f,0x1985,0x198b,1,1,0x1991,0x1997,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
 0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
 0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22,
@@ -214,14 +219,14 @@
 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,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,1,1,0x1962,0x1968,0x196f,0x1975,0x197b,0x844,
+0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,1,1,0x199c,0x19a2,0x19a9,0x19af,0x19b5,0x844,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,0x850,1,0x854,0xfe36,0xfe38,0xfe3a,0xfe3c,0xfe3e,
 0xfe40,0xfe42,0xfe44,0xfdcc,0xfdcc,0xfdb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 0xfe46,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x1981,0x858,0x1987,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0x85c,0x198d,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
+0x19bb,0x858,0x19c1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x85c,0x19c7,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
 0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 0xfe48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -239,405 +244,415 @@
 1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,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,0xffcc,
-0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,
-0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
-0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a,
-0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,
+0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+1,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,
+0xfe3a,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0x864,0x1993,1,1,1,1,1,1,0x868,0x1999,1,
-0x86c,0x199f,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1,
-1,1,0x29ec,0x29f2,0x29f8,0x29fe,0x2a04,0x2a0a,0x2a10,0x2a16,1,1,1,1,1,1,
+1,1,1,1,1,1,0x864,0x19cd,1,1,1,1,1,1,0x868,0x19d3,
+1,0x86c,0x19d9,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,
+1,1,1,0x2a76,0x2a7c,0x2a82,0x2a88,0x2a8e,0x2a94,0x2a9a,0x2aa0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,
-0x870,1,1,1,0x19a5,0x19ab,0xfe12,1,1,1,1,1,1,1,1,1,
-0xfc00,1,1,1,1,0x2a1c,0x2a22,1,0x2a28,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,
+1,0x870,1,1,1,0x19df,0x19e5,0xfe12,1,1,1,1,1,1,1,1,
+1,0xfc00,1,1,1,1,0x2aa6,0x2aac,1,0x2ab2,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,0xffcc,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,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,
-1,1,1,1,1,1,1,1,1,1,1,0x2a2e,1,1,0x2a34,1,
-1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a3a,0x2a40,
-0x2a46,1,1,0x2a4c,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x2ab8,1,1,0x2abe,
+1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2ac4,
+0x2aca,0x2ad0,1,1,0x2ad6,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,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
+1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
 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,1,1,1,1,1,1,1,1,1,
-1,0x878,0x19b1,1,1,0x19b7,0x19bd,0xfe12,1,1,1,1,1,1,1,1,
-0xfc00,0xfc00,1,1,1,1,0x2a52,0x2a58,1,1,1,1,1,1,1,1,
+1,1,0x878,0x19eb,1,1,0x19f1,0x19f7,0xfe12,1,1,1,1,1,1,1,
+1,0xfc00,0xfc00,1,1,1,1,0x2adc,0x2ae2,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,0x884,1,0x19c3,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x884,1,0x19fd,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,1,0xfc00,1,1,1,1,1,1,0x888,0x890,1,
-1,0x19c9,0x19cf,0x19d5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1,
+1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890,
+1,1,0x1a03,0x1a09,0x1a0f,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,
 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,0x894,1,0x19db,1,1,1,1,0xfe12,1,
-1,1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x894,1,0x1a15,1,1,1,1,0xfe12,
+1,1,1,1,1,1,1,0xfea8,0xfcb6,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,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfe0e,1,1,0x898,0x19e1,1,0xfc00,1,1,1,0x89c,0x19e7,
-0x19ed,1,0xdca,0x19f5,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,
+1,1,1,1,1,0xfe0e,1,1,0x898,0x1a1b,1,0xfc00,1,1,1,0x89c,
+0x1a21,0x1a27,1,0xdf4,0x1a2f,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,
 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,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,
-1,1,1,1,0x8a8,0x8b0,1,1,0x19fd,0x1a03,0x1a09,0xfe12,1,1,1,1,
-1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,
+1,1,1,1,1,0x8a8,0x8b0,1,1,0x1a37,0x1a3d,0x1a43,0xfe12,1,1,1,
+1,1,1,1,1,1,0xfc00,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,0xfc12,1,
-1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a0f,1,
-0xdd4,0x1a17,0x1a1f,0xfc00,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,0xfc12,
+1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a49,
+1,0xdfe,0x1a51,0x1a59,0xfc00,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,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,
-1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,
+1,1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,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,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4,0xfef4,
-0xfef4,0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4,
+0xfef4,0xfef4,0xfef4,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,1,1,1,1,1,1,
-1,1,1,1,1,1,0xffb8,0xffb8,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffb8,0xffb8,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,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a5f,1,
-1,1,1,1,1,1,1,1,0x2a65,1,1,1,1,0x2a6b,1,1,
-1,1,0x2a71,1,1,1,1,0x2a77,1,1,1,1,1,1,1,1,
-1,1,1,1,0x2a7d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c50,0xff08,
-0x3c58,0x2a82,1,0x2a88,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c60,0xffcc,0xffcc,0xfe12,
-1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a8f,1,
-1,1,1,1,1,1,1,1,0x2a95,1,1,1,1,0x2a9b,1,1,
-1,1,0x2aa1,1,1,1,1,0x2aa7,1,1,1,1,1,1,1,1,
-1,1,1,1,0x2aad,1,1,1,1,1,1,0xffb8,1,1,1,1,
+1,1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2ae9,
+1,1,1,1,1,1,1,1,1,0x2aef,1,1,1,1,0x2af5,1,
+1,1,1,0x2afb,1,1,1,1,0x2b01,1,1,1,1,1,1,1,
+1,1,1,1,1,0x2b07,1,1,1,1,1,1,1,0xff02,0xff04,0x3cda,
+0xff08,0x3ce2,0x2b0c,1,0x2b12,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3cea,0xffcc,0xffcc,
+0xfe12,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2b19,
+1,1,1,1,1,1,1,1,1,0x2b1f,1,1,1,1,0x2b25,1,
+1,1,1,0x2b2b,1,1,1,1,0x2b31,1,1,1,1,1,1,1,
+1,1,1,1,1,0x2b37,1,1,1,1,1,1,0xffb8,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,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0x8c0,0x1a25,1,1,1,1,1,1,1,0xfc00,1,
-1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x8c0,0x1a5f,1,1,1,1,1,1,1,0xfc00,
+1,1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,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,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+1,1,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,
 0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,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,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
 0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,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,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
+0xffcc,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,1,1,1,1,1,0xffcc,0xffcc,0xffcc,
+1,0xfe12,0xfe12,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,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfe12,0xfe12,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,
-0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1,
+1,1,1,1,1,1,1,1,1,0xffc8,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,1,1,1,1,1,1,1,0xffc8,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,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,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,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,1,1,0xffb8,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,1,1,1,
-1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
+0xffb8,0xffcc,0xffcc,0xffb8,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,
+0xffcc,0xffcc,0xffcc,0xffcc,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,1,1,1,1,1,
-1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
-0xffcc,0xffcc,0xffb8,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
-0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x8c4,0x1a65,0x8c8,0x1a6b,0x8cc,0x1a71,0x8d0,0x1a77,0x8d4,0x1a7d,1,
+1,0x8d8,0x1a83,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,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a89,0x8e0,0x1a8f,0x8e4,0x8e8,
+0x1a95,0x1a9b,0x8ec,0x1aa1,0xfe12,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,0x8c4,0x1a2b,0x8c8,0x1a31,0x8cc,0x1a37,0x8d0,0x1a3d,0x8d4,0x1a43,1,1,
-0x8d8,0x1a49,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,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,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,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a4f,0x8e0,0x1a55,0x8e4,0x8e8,0x1a5b,
-0x1a61,0x8ec,0x1a67,0xfe12,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,0xfe12,0xfe12,
 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,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,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,1,1,1,0xfe12,0xfe12,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,0xfe0e,1,1,1,1,1,1,1,1,1,1,
-1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,
-0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,
-0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1,
-1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,
-0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,
+1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,
+1,0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
+0xffcc,0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,0xffb4,0xffcc,0xffd2,
-0xffb8,0xffcc,0xffb8,0x1a6c,0x1a72,0x1a78,0x1a7e,0x1a85,0x1a8b,0x1a91,0x1a97,0x1a9f,0x1aa9,0x1ab0,0x1ab6,0x1abc,
-0x1ac2,0x1ac8,0x1ace,0x1ad5,0x1adb,0x1ae0,0x1ae6,0x1aee,0x1af8,0x1b02,0x1b0c,0x1b14,0x1b1a,0x1b20,0x1b26,0x1b2f,
-0x1b39,0x1b41,0x1b47,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b76,0x1b7d,0x1b83,0x1b88,0x1b8e,0x1b94,
-0x1b9a,0x1ba2,0x1bac,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0x1bd2,0xdde,0xde8,0x1bda,0x1be4,0x1bec,0x1bf2,0x1bf8,
-0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c16,0x1c1d,0x1c23,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,0x1c52,0x1c5a,
-0x1c64,0x1c6e,0x1c78,0x1c82,0x1c8c,0x1c96,0x1ca0,0x1ca9,0x1caf,0x1cb5,0x1cbb,0x1cc0,0x1cc6,0xdf2,0xdfc,0x1cce,
-0x1cd8,0x1ce0,0x1ce6,0x1cec,0x1cf2,0xe06,0xe10,0x1cfa,0x1d04,0x1d0e,0x1d18,0x1d22,0x1d2c,0x1d34,0x1d3a,0x1d40,
-0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d82,0x1d8a,0x1d94,0x1d9e,0x1da8,0x1db0,
-0x1db6,0x1dbd,0x1dc3,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df2,0x1df9,0x1dff,0x1e05,0x1e0b,0x1e11,
-0x1e17,0x1e1c,0x1e22,0x1e28,0x1e2e,0x1e35,0x1e3b,0x1e41,0x1e47,0x1e4c,0x1e52,0x1e58,0x1e5e,1,0x1e65,1,
-1,1,1,0xe1a,0xe28,0x1e6a,0x1e70,0x1e78,0x1e82,0x1e8c,0x1e96,0x1ea0,0x1eaa,0x1eb4,0x1ebe,0x1ec8,
-0x1ed2,0x1edc,0x1ee6,0x1ef0,0x1efa,0x1f04,0x1f0e,0x1f18,0x1f22,0x1f2c,0x1f36,0xe36,0xe40,0x1f3e,0x1f44,0x1f4a,
-0x1f50,0x1f58,0x1f62,0x1f6c,0x1f76,0x1f80,0x1f8a,0x1f94,0x1f9e,0x1fa8,0x1fb2,0x1fba,0x1fc0,0x1fc6,0x1fcc,0xe4a,
-0xe54,0x1fd2,0x1fd8,0x1fe0,0x1fea,0x1ff4,0x1ffe,0x2008,0x2012,0x201c,0x2026,0x2030,0x203a,0x2044,0x204e,0x2058,
-0x2062,0x206c,0x2076,0x2080,0x208a,0x2094,0x209e,0x20a6,0x20ac,0x20b2,0x20b8,0x20c0,0x20ca,0x20d4,0x20de,0x20e8,
-0x20f2,0x20fc,0x2106,0x2110,0x211a,0x2122,0x2128,0x212f,0x2135,0x213a,0x2140,0x2146,0x214c,1,1,1,
-1,1,1,0xe5e,0xe74,0xe8c,0xe9a,0xea8,0xeb6,0xec4,0xed2,0xede,0xef4,0xf0c,0xf1a,0xf28,
-0xf36,0xf44,0xf52,0xf5e,0xf6c,0x2155,0x215f,0x2169,0x2173,1,1,0xf7a,0xf88,0x217d,0x2187,0x2191,
-0x219b,1,1,0xf96,0xfac,0xfc4,0xfd2,0xfe0,0xfee,0xffc,0x100a,0x1016,0x102c,0x1044,0x1052,0x1060,
-0x106e,0x107c,0x108a,0x1096,0x10a8,0x21a5,0x21af,0x21b9,0x21c3,0x21cd,0x21d7,0x10ba,0x10cc,0x21e1,0x21eb,0x21f5,
-0x21ff,0x2209,0x2213,0x10de,0x10ec,0x221d,0x2227,0x2231,0x223b,1,1,0x10fa,0x1108,0x2245,0x224f,0x2259,
-0x2263,1,1,0x1116,0x1128,0x226d,0x2277,0x2281,0x228b,0x2295,0x229f,1,0x113a,1,0x22a9,1,
-0x22b3,1,0x22bd,0x114c,0x1162,0x117a,0x1188,0x1196,0x11a4,0x11b2,0x11c0,0x11cc,0x11e2,0x11fa,0x1208,0x1216,
-0x1224,0x1232,0x1240,0x124c,0x3b9e,0x22c5,0x3ba6,0x1256,0x3bae,0x22cb,0x3bb6,0x22d1,0x3bbe,0x22d7,0x3bc6,0x1260,
-0x3bce,1,1,0x22de,0x22e8,0x22f7,0x2307,0x2317,0x2327,0x2337,0x2347,0x2352,0x235c,0x236b,0x237b,0x238b,
-0x239b,0x23ab,0x23bb,0x23c6,0x23d0,0x23df,0x23ef,0x23ff,0x240f,0x241f,0x242f,0x243a,0x2444,0x2453,0x2463,0x2473,
-0x2483,0x2493,0x24a3,0x24ae,0x24b8,0x24c7,0x24d7,0x24e7,0x24f7,0x2507,0x2517,0x2522,0x252c,0x253b,0x254b,0x255b,
-0x256b,0x257b,0x258b,0x2595,0x259b,0x25a3,0x25aa,0x25b3,1,0x126a,0x25bd,0x25c5,0x25cb,0x25d1,0x3bd6,0x25d6,
-1,0x2ab2,0x8f0,1,0x25dd,0x25e5,0x25ec,0x25f5,1,0x1274,0x25ff,0x2607,0x3bde,0x260d,0x3be6,0x2612,
-0x2619,0x261f,0x2625,0x262b,0x2631,0x2639,0x3bf0,1,1,0x2641,0x2649,0x2651,0x2657,0x265d,0x3bfa,1,
-0x2663,0x2669,0x266f,0x2675,0x267b,0x2683,0x3c04,0x268b,0x2691,0x2697,0x269f,0x26a7,0x26ad,0x26b3,0x3c0e,0x26b9,
-0x26bf,0x3c16,0x2ab7,1,1,0x26c7,0x26ce,0x26d7,1,0x127e,0x26e1,0x26e9,0x3c1e,0x26ef,0x3c26,0x26f4,
-0x2abb,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,0xffb4,0xffcc,
+0xffd2,0xffb8,0xffcc,0xffb8,0x1aa6,0x1aac,0x1ab2,0x1ab8,0x1abf,0x1ac5,0x1acb,0x1ad1,0x1ad9,0x1ae3,0x1aea,0x1af0,
+0x1af6,0x1afc,0x1b02,0x1b08,0x1b0f,0x1b15,0x1b1a,0x1b20,0x1b28,0x1b32,0x1b3c,0x1b46,0x1b4e,0x1b54,0x1b5a,0x1b60,
+0x1b69,0x1b73,0x1b7b,0x1b81,0x1b86,0x1b8c,0x1b92,0x1b98,0x1b9e,0x1ba4,0x1baa,0x1bb0,0x1bb7,0x1bbd,0x1bc2,0x1bc8,
+0x1bce,0x1bd4,0x1bdc,0x1be6,0x1bee,0x1bf4,0x1bfa,0x1c00,0x1c06,0x1c0c,0xe08,0xe12,0x1c14,0x1c1e,0x1c26,0x1c2c,
+0x1c32,0x1c38,0x1c3e,0x1c44,0x1c4a,0x1c50,0x1c57,0x1c5d,0x1c62,0x1c68,0x1c6e,0x1c74,0x1c7a,0x1c80,0x1c86,0x1c8c,
+0x1c94,0x1c9e,0x1ca8,0x1cb2,0x1cbc,0x1cc6,0x1cd0,0x1cda,0x1ce3,0x1ce9,0x1cef,0x1cf5,0x1cfa,0x1d00,0xe1c,0xe26,
+0x1d08,0x1d12,0x1d1a,0x1d20,0x1d26,0x1d2c,0xe30,0xe3a,0x1d34,0x1d3e,0x1d48,0x1d52,0x1d5c,0x1d66,0x1d6e,0x1d74,
+0x1d7a,0x1d80,0x1d86,0x1d8c,0x1d92,0x1d98,0x1d9e,0x1da4,0x1daa,0x1db0,0x1db6,0x1dbc,0x1dc4,0x1dce,0x1dd8,0x1de2,
+0x1dea,0x1df0,0x1df7,0x1dfd,0x1e02,0x1e08,0x1e0e,0x1e14,0x1e1a,0x1e20,0x1e26,0x1e2c,0x1e33,0x1e39,0x1e3f,0x1e45,
+0x1e4b,0x1e51,0x1e56,0x1e5c,0x1e62,0x1e68,0x1e6f,0x1e75,0x1e7b,0x1e81,0x1e86,0x1e8c,0x1e92,0x1e98,1,0x1e9f,
+1,1,1,1,0xe44,0xe52,0x1ea4,0x1eaa,0x1eb2,0x1ebc,0x1ec6,0x1ed0,0x1eda,0x1ee4,0x1eee,0x1ef8,
+0x1f02,0x1f0c,0x1f16,0x1f20,0x1f2a,0x1f34,0x1f3e,0x1f48,0x1f52,0x1f5c,0x1f66,0x1f70,0xe60,0xe6a,0x1f78,0x1f7e,
+0x1f84,0x1f8a,0x1f92,0x1f9c,0x1fa6,0x1fb0,0x1fba,0x1fc4,0x1fce,0x1fd8,0x1fe2,0x1fec,0x1ff4,0x1ffa,0x2000,0x2006,
+0xe74,0xe7e,0x200c,0x2012,0x201a,0x2024,0x202e,0x2038,0x2042,0x204c,0x2056,0x2060,0x206a,0x2074,0x207e,0x2088,
+0x2092,0x209c,0x20a6,0x20b0,0x20ba,0x20c4,0x20ce,0x20d8,0x20e0,0x20e6,0x20ec,0x20f2,0x20fa,0x2104,0x210e,0x2118,
+0x2122,0x212c,0x2136,0x2140,0x214a,0x2154,0x215c,0x2162,0x2169,0x216f,0x2174,0x217a,0x2180,0x2186,1,1,
+1,1,1,1,0xe88,0xe9e,0xeb6,0xec4,0xed2,0xee0,0xeee,0xefc,0xf08,0xf1e,0xf36,0xf44,
+0xf52,0xf60,0xf6e,0xf7c,0xf88,0xf96,0x218f,0x2199,0x21a3,0x21ad,1,1,0xfa4,0xfb2,0x21b7,0x21c1,
+0x21cb,0x21d5,1,1,0xfc0,0xfd6,0xfee,0xffc,0x100a,0x1018,0x1026,0x1034,0x1040,0x1056,0x106e,0x107c,
+0x108a,0x1098,0x10a6,0x10b4,0x10c0,0x10d2,0x21df,0x21e9,0x21f3,0x21fd,0x2207,0x2211,0x10e4,0x10f6,0x221b,0x2225,
+0x222f,0x2239,0x2243,0x224d,0x1108,0x1116,0x2257,0x2261,0x226b,0x2275,1,1,0x1124,0x1132,0x227f,0x2289,
+0x2293,0x229d,1,1,0x1140,0x1152,0x22a7,0x22b1,0x22bb,0x22c5,0x22cf,0x22d9,1,0x1164,1,0x22e3,
+1,0x22ed,1,0x22f7,0x1176,0x118c,0x11a4,0x11b2,0x11c0,0x11ce,0x11dc,0x11ea,0x11f6,0x120c,0x1224,0x1232,
+0x1240,0x124e,0x125c,0x126a,0x1276,0x3c28,0x22ff,0x3c30,0x1280,0x3c38,0x2305,0x3c40,0x230b,0x3c48,0x2311,0x3c50,
+0x128a,0x3c58,1,1,0x2318,0x2322,0x2331,0x2341,0x2351,0x2361,0x2371,0x2381,0x238c,0x2396,0x23a5,0x23b5,
+0x23c5,0x23d5,0x23e5,0x23f5,0x2400,0x240a,0x2419,0x2429,0x2439,0x2449,0x2459,0x2469,0x2474,0x247e,0x248d,0x249d,
+0x24ad,0x24bd,0x24cd,0x24dd,0x24e8,0x24f2,0x2501,0x2511,0x2521,0x2531,0x2541,0x2551,0x255c,0x2566,0x2575,0x2585,
+0x2595,0x25a5,0x25b5,0x25c5,0x25cf,0x25d5,0x25dd,0x25e4,0x25ed,1,0x1294,0x25f7,0x25ff,0x2605,0x260b,0x3c60,
+0x2610,1,0x2b3c,0x8f0,1,0x2617,0x261f,0x2626,0x262f,1,0x129e,0x2639,0x2641,0x3c68,0x2647,0x3c70,
+0x264c,0x2653,0x2659,0x265f,0x2665,0x266b,0x2673,0x3c7a,1,1,0x267b,0x2683,0x268b,0x2691,0x2697,0x3c84,
+1,0x269d,0x26a3,0x26a9,0x26af,0x26b5,0x26bd,0x3c8e,0x26c5,0x26cb,0x26d1,0x26d9,0x26e1,0x26e7,0x26ed,0x3c98,
+0x26f3,0x26f9,0x3ca0,0x2b41,1,1,0x2701,0x2708,0x2711,1,0x12a8,0x271b,0x2723,0x3ca8,0x2729,0x3cb0,
+0x272e,0x2b45,0x8fc,1,0xf919,0xf919,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,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,0xffcc,
-1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,0xffb8,
-0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,
+0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,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,0x2abe,1,1,1,0x2ac2,0x3c2e,
+1,1,1,1,1,1,1,1,1,1,1,0x2b48,1,1,1,0x2b4c,
+0x3cb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x2735,
+0x273b,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x2741,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x2747,0x274d,0x2753,0x914,1,0x918,1,0x91c,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26fb,0x2701,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0x2707,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x270d,0x2713,0x2719,0x914,1,0x918,1,0x91c,1,1,1,1,
+1,1,1,1,1,1,1,1,0x920,0x2759,1,1,1,0x924,0x275f,1,
+0x928,0x2765,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x92c,0x276b,0x930,0x2771,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0x934,1,1,1,0x2777,1,0x938,0x277d,0x93c,1,0x2783,0x940,0x2789,1,1,
+1,0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x278f,0x948,0x2795,1,0x94c,0x950,1,1,1,1,1,1,
+1,0x279b,0x27a1,0x27a7,0x27ad,0x27b3,0x954,0x958,0x27b9,0x27bf,0x95c,0x960,0x27c5,0x27cb,0x964,0x968,
+0x96c,0x970,1,1,0x27d1,0x27d7,0x974,0x978,0x27dd,0x27e3,0x97c,0x980,0x27e9,0x27ef,1,1,
+1,1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,
+0x27f5,0x27fb,0x2801,0x2807,1,1,0x99c,0x9a0,0x9a4,0x9a8,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,0x920,0x271f,1,1,1,0x924,0x2725,1,0x928,
-0x272b,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x92c,0x2731,0x930,0x2737,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x280d,0x2813,0x2819,0x281f,1,1,
+1,1,1,1,0x2825,0x282b,0x2831,0x2837,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x934,1,1,1,0x273d,1,0x938,0x2743,0x93c,1,0x2749,0x940,0x274f,1,1,1,
-0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x2755,0x948,0x275b,1,0x94c,0x950,1,1,1,1,1,1,1,
-0x2761,0x2767,0x276d,0x2773,0x2779,0x954,0x958,0x277f,0x2785,0x95c,0x960,0x278b,0x2791,0x964,0x968,0x96c,
-0x970,1,1,0x2797,0x279d,0x974,0x978,0x27a3,0x27a9,0x97c,0x980,0x27af,0x27b5,1,1,1,
-1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27bb,
-0x27c1,0x27c7,0x27cd,1,1,0x99c,0x9a0,0x9a4,0x9a8,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,0x27d3,0x27d9,0x27df,0x27e5,1,1,1,
-1,1,1,0x27eb,0x27f1,0x27f7,0x27fd,1,1,1,1,1,1,1,1,1,
+1,0x2b51,0x2b55,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,0x2b59,
 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,
-0x2ac7,0x2acb,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,0x2acf,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,0xfe12,
 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,1,1,1,1,1,1,1,0xfe12,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,0xffcc,
 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
 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,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x9ac,
-1,1,1,1,0x9b0,0x2803,0x9b4,0x2809,0x9b8,0x280f,0x9bc,0x2815,0x9c0,0x281b,0x9c4,0x2821,
-0x9c8,0x2827,0x9cc,0x282d,0x9d0,0x2833,0x9d4,0x2839,0x9d8,0x283f,0x9dc,0x2845,1,0x9e0,0x284b,0x9e4,
-0x2851,0x9e8,0x2857,1,1,1,1,1,0x9ec,0x285d,0x2863,0x9f4,0x2869,0x286f,0x9fc,0x2875,
-0x287b,0xa04,0x2881,0x2887,0xa0c,0x288d,0x2893,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0x2899,1,1,1,1,
-0xfc10,0xfc10,1,1,0xa14,0x289f,1,1,1,1,1,1,1,0xa18,1,1,
-1,1,0xa1c,0x28a5,0xa20,0x28ab,0xa24,0x28b1,0xa28,0x28b7,0xa2c,0x28bd,0xa30,0x28c3,0xa34,0x28c9,
-0xa38,0x28cf,0xa3c,0x28d5,0xa40,0x28db,0xa44,0x28e1,0xa48,0x28e7,1,0xa4c,0x28ed,0xa50,0x28f3,0xa54,
-0x28f9,1,1,1,1,1,0xa58,0x28ff,0x2905,0xa60,0x290b,0x2911,0xa68,0x2917,0x291d,0xa70,
-0x2923,0x2929,0xa78,0x292f,0x2935,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x293b,1,1,0x2941,0x2947,
-0x294d,0x2953,1,1,0xa90,0x2959,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x9ac,1,1,1,1,0x9b0,0x283d,0x9b4,0x2843,0x9b8,0x2849,0x9bc,0x284f,0x9c0,0x2855,0x9c4,
+0x285b,0x9c8,0x2861,0x9cc,0x2867,0x9d0,0x286d,0x9d4,0x2873,0x9d8,0x2879,0x9dc,0x287f,1,0x9e0,0x2885,
+0x9e4,0x288b,0x9e8,0x2891,1,1,1,1,1,0x9ec,0x2897,0x289d,0x9f4,0x28a3,0x28a9,0x9fc,
+0x28af,0x28b5,0xa04,0x28bb,0x28c1,0xa0c,0x28c7,0x28cd,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x28d3,1,1,1,
+1,0xfc10,0xfc10,1,1,0xa14,0x28d9,1,1,1,1,1,1,1,0xa18,1,
+1,1,1,0xa1c,0x28df,0xa20,0x28e5,0xa24,0x28eb,0xa28,0x28f1,0xa2c,0x28f7,0xa30,0x28fd,0xa34,
+0x2903,0xa38,0x2909,0xa3c,0x290f,0xa40,0x2915,0xa44,0x291b,0xa48,0x2921,1,0xa4c,0x2927,0xa50,0x292d,
+0xa54,0x2933,1,1,1,1,1,0xa58,0x2939,0x293f,0xa60,0x2945,0x294b,0xa68,0x2951,0x2957,
+0xa70,0x295d,0x2963,0xa78,0x2969,0x296f,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2975,1,1,0x297b,
+0x2981,0x2987,0x298d,1,1,0xa90,0x2993,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,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffcc,0xffcc,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,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfe12,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,0xfe12,1,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe12,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xfe12,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,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,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xfe12,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,1,1,1,1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1,
-0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,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,0xffcc,1,0xffcc,0xffcc,0xffb8,1,
+1,0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,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,0xfe12,
-1,1,1,1,1,1,1,1,1,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,
-0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,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,0x3c66,1,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c66,
-0x3c66,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,0x3c66,0x3c66,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfe12,1,1,1,1,1,1,1,1,1,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0xb0c,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0xb0c,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,
+0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,0x12c3,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,0x3cf0,0x29a0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,0x3cf0,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3cf0,1,
+0x3cf0,0x3cf0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x3cf0,1,1,1,1,0x3cf0,1,1,1,0x3cf0,0x3cf0,
+0x3cf0,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,1,1,1,1,1,1,0x3b97,1,
-0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d,
-0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d,
-0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d,
-0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd,
-0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d,
-0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2c31,0x2c35,0x2c39,0x2c3d,0x2b21,0x2c41,0x2c45,0x2c49,
-0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89,
-0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9,
-0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09,
-0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2d41,0x2d45,0x2d49,
-0x2d4d,0x2c89,0x2d51,0x2d55,0x2d59,0x2d5d,0x2d61,0x2d65,0x2d69,0x2d6d,0x2c49,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81,
-0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2db1,0x2db5,0x2db9,0x2dbd,0x2b21,
-0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd,
-0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2e1d,0x2e21,0x2e25,0x2e29,0x2c51,0x2e2d,0x2e31,0x2e35,0x2e39,
-0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79,
-0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9,
-0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,0x2ee5,0x2ee9,0x2eed,0x2ef1,1,1,
-0x2ef5,1,0x2ef9,1,1,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,0x2f15,0x2f19,0x2f1d,0x2f21,1,
-0x2f25,1,0x2f29,1,1,0x2f2d,0x2f31,1,1,1,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49,
-0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89,
-0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9,
-0x2fcd,0x2fd1,0x2fd5,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2d25,0x2fe9,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x2ffd,0x3001,
-0x3005,0x3009,0x300d,0x3011,0x3015,0x3019,0x301d,0x2f2d,0x3021,0x3025,0x3029,0x302d,0x3031,0x3037,1,1,
-0x303b,0x303f,0x3043,0x3047,0x304b,0x304f,0x3053,0x3057,0x2f65,0x305b,0x305f,0x3063,0x2ef5,0x3067,0x306b,0x306f,
-0x3073,0x3077,0x307b,0x307f,0x3083,0x3087,0x308b,0x308f,0x3093,0x2f89,0x3097,0x2f8d,0x309b,0x309f,0x30a3,0x30a7,
-0x30ab,0x2ef9,0x2b75,0x30af,0x30b3,0x30b7,0x2c8d,0x2de9,0x30bb,0x30bf,0x2fa9,0x30c3,0x2fad,0x30c7,0x30cb,0x30cf,
-0x2f01,0x30d3,0x30d7,0x30db,0x30df,0x30e3,0x2f05,0x30e7,0x30eb,0x30ef,0x30f3,0x30f7,0x30fb,0x2fe5,0x30ff,0x3103,
-0x2d25,0x3107,0x2ff5,0x310b,0x310f,0x3113,0x3117,0x311b,0x3009,0x311f,0x2f29,0x3123,0x300d,0x2c41,0x3127,0x3011,
-0x312b,0x3019,0x312f,0x3133,0x3137,0x313b,0x313f,0x3021,0x2f19,0x3143,0x3025,0x3147,0x3029,0x314b,0x2af1,0x314f,
-0x3155,0x315b,0x3161,0x3165,0x3169,0x316d,0x3173,0x3179,0x317f,0x3183,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,0x3c21,
+1,0x2b5f,0x2b63,0x2b67,0x2b6b,0x2b6f,0x2b73,0x2b77,0x2b7b,0x2b7b,0x2b7f,0x2b83,0x2b87,0x2b8b,0x2b8f,0x2b93,
+0x2b97,0x2b9b,0x2b9f,0x2ba3,0x2ba7,0x2bab,0x2baf,0x2bb3,0x2bb7,0x2bbb,0x2bbf,0x2bc3,0x2bc7,0x2bcb,0x2bcf,0x2bd3,
+0x2bd7,0x2bdb,0x2bdf,0x2be3,0x2be7,0x2beb,0x2bef,0x2bf3,0x2bf7,0x2bfb,0x2bff,0x2c03,0x2c07,0x2c0b,0x2c0f,0x2c13,
+0x2c17,0x2c1b,0x2c1f,0x2c23,0x2c27,0x2c2b,0x2c2f,0x2c33,0x2c37,0x2c3b,0x2c3f,0x2c43,0x2c47,0x2c4b,0x2c4f,0x2c53,
+0x2c57,0x2c5b,0x2c5f,0x2c63,0x2c67,0x2c6b,0x2c6f,0x2c73,0x2c77,0x2c7b,0x2c7f,0x2c83,0x2c87,0x2c8b,0x2c8f,0x2c93,
+0x2c97,0x2c9b,0x2c9f,0x2ca3,0x2ca7,0x2cab,0x2caf,0x2cb3,0x2cb7,0x2cbb,0x2cbf,0x2cc3,0x2cc7,0x2bab,0x2ccb,0x2ccf,
+0x2cd3,0x2cd7,0x2cdb,0x2cdf,0x2ce3,0x2ce7,0x2ceb,0x2cef,0x2cf3,0x2cf7,0x2cfb,0x2cff,0x2d03,0x2d07,0x2d0b,0x2d0f,
+0x2d13,0x2d17,0x2d1b,0x2d1f,0x2d23,0x2d27,0x2d2b,0x2d2f,0x2d33,0x2d37,0x2d3b,0x2d3f,0x2d43,0x2d47,0x2d4b,0x2d4f,
+0x2d53,0x2d57,0x2d5b,0x2d5f,0x2d63,0x2d67,0x2d6b,0x2d6f,0x2d73,0x2d77,0x2d7b,0x2d7f,0x2d83,0x2d87,0x2d8b,0x2d8f,
+0x2d93,0x2d97,0x2d9b,0x2d9f,0x2da3,0x2da7,0x2dab,0x2daf,0x2db3,0x2db7,0x2dbb,0x2dbf,0x2dc3,0x2dc7,0x2dcb,0x2dcf,
+0x2dd3,0x2dd7,0x2d13,0x2ddb,0x2ddf,0x2de3,0x2de7,0x2deb,0x2def,0x2df3,0x2df7,0x2cd3,0x2dfb,0x2dff,0x2e03,0x2e07,
+0x2e0b,0x2e0f,0x2e13,0x2e17,0x2e1b,0x2e1f,0x2e23,0x2e27,0x2e2b,0x2e2f,0x2e33,0x2e37,0x2e3b,0x2e3f,0x2e43,0x2e47,
+0x2bab,0x2e4b,0x2e4f,0x2e53,0x2e57,0x2e5b,0x2e5f,0x2e63,0x2e67,0x2e6b,0x2e6f,0x2e73,0x2e77,0x2e7b,0x2e7f,0x2e83,
+0x2e87,0x2e8b,0x2e8f,0x2e93,0x2e97,0x2e9b,0x2e9f,0x2ea3,0x2ea7,0x2eab,0x2eaf,0x2eb3,0x2cdb,0x2eb7,0x2ebb,0x2ebf,
+0x2ec3,0x2ec7,0x2ecb,0x2ecf,0x2ed3,0x2ed7,0x2edb,0x2edf,0x2ee3,0x2ee7,0x2eeb,0x2eef,0x2ef3,0x2ef7,0x2efb,0x2eff,
+0x2f03,0x2f07,0x2f0b,0x2f0f,0x2f13,0x2f17,0x2f1b,0x2f1f,0x2f23,0x2f27,0x2f2b,0x2f2f,0x2f33,0x2f37,0x2f3b,0x2f3f,
+0x2f43,0x2f47,0x2f4b,0x2f4f,0x2f53,0x2f57,0x2f5b,0x2f5f,0x2f63,0x2f67,0x2f6b,0x2f6f,0x2f73,0x2f77,0x2f7b,1,
+1,0x2f7f,1,0x2f83,1,1,0x2f87,0x2f8b,0x2f8f,0x2f93,0x2f97,0x2f9b,0x2f9f,0x2fa3,0x2fa7,0x2fab,
+1,0x2faf,1,0x2fb3,1,1,0x2fb7,0x2fbb,1,1,1,0x2fbf,0x2fc3,0x2fc7,0x2fcb,0x2fcf,
+0x2fd3,0x2fd7,0x2fdb,0x2fdf,0x2fe3,0x2fe7,0x2feb,0x2fef,0x2ff3,0x2ff7,0x2ffb,0x2fff,0x3003,0x3007,0x300b,0x300f,
+0x3013,0x3017,0x301b,0x301f,0x3023,0x3027,0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x304b,0x304f,
+0x3053,0x3057,0x305b,0x305f,0x3063,0x3067,0x306b,0x306f,0x2daf,0x3073,0x3077,0x307b,0x307f,0x3083,0x3087,0x3087,
+0x308b,0x308f,0x3093,0x3097,0x309b,0x309f,0x30a3,0x30a7,0x2fb7,0x30ab,0x30af,0x30b3,0x30b7,0x30bb,0x30c1,1,
+1,0x30c5,0x30c9,0x30cd,0x30d1,0x30d5,0x30d9,0x30dd,0x30e1,0x2fef,0x30e5,0x30e9,0x30ed,0x2f7f,0x30f1,0x30f5,
+0x30f9,0x30fd,0x3101,0x3105,0x3109,0x310d,0x3111,0x3115,0x3119,0x311d,0x3013,0x3121,0x3017,0x3125,0x3129,0x312d,
+0x3131,0x3135,0x2f83,0x2bff,0x3139,0x313d,0x3141,0x2d17,0x2e73,0x3145,0x3149,0x3033,0x314d,0x3037,0x3151,0x3155,
+0x3159,0x2f8b,0x315d,0x3161,0x3165,0x3169,0x316d,0x2f8f,0x3171,0x3175,0x3179,0x317d,0x3181,0x3185,0x306f,0x3189,
+0x318d,0x2daf,0x3191,0x307f,0x3195,0x3199,0x319d,0x31a1,0x31a5,0x3093,0x31a9,0x2fb3,0x31ad,0x3097,0x2ccb,0x31b1,
+0x309b,0x31b5,0x30a3,0x31b9,0x31bd,0x31c1,0x31c5,0x31c9,0x30ab,0x2fa3,0x31cd,0x30af,0x31d1,0x30b3,0x31d5,0x2b7b,
+0x31d9,0x31df,0x31e5,0x31eb,0x31ef,0x31f3,0x31f7,0x31fd,0x3203,0x3209,0x320d,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x3186,0xfe34,0x318c,1,1,1,1,1,1,1,1,1,1,0x3192,0x3198,0x31a0,
-0x31aa,0x31b2,0x31b8,0x31be,0x31c4,0x31ca,0x31d0,0x31d6,0x31dc,0x31e2,1,0x31e8,0x31ee,0x31f4,0x31fa,0x3200,
-1,0x3206,1,0x320c,0x3212,1,0x3218,0x321e,1,0x3224,0x322a,0x3230,0x3236,0x323c,0x3242,0x3248,
-0x324e,0x3254,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,0x3210,0xfe34,0x3216,1,1,1,1,1,1,1,1,1,1,0x321c,0x3222,
+0x322a,0x3234,0x323c,0x3242,0x3248,0x324e,0x3254,0x325a,0x3260,0x3266,0x326c,1,0x3272,0x3278,0x327e,0x3284,
+0x328a,1,0x3290,1,0x3296,0x329c,1,0x32a2,0x32a8,1,0x32ae,0x32b4,0x32ba,0x32c0,0x32c6,0x32cc,
+0x32d2,0x32d8,0x32de,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,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
-0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,0xffcc,0xfe02,
-0xffb8,1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
+0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x2999,1,1,1,1,1,1,0xa94,1,1,1,1,
+1,1,1,0xa9a,1,1,1,1,1,0x29a1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,
+1,1,0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc,
+0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
 1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,
 1,1,0xffcc,0xffb8,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,
 0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
-1,1,1,1,1,1,1,1,1,0xa94,0x295f,0xa9a,0x2969,1,1,1,
-1,1,0xaa0,1,1,1,1,1,0x2973,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xaa0,0x29a9,0xaa6,0x29b3,1,1,1,
+1,1,0xaac,1,1,1,1,1,0x29bd,1,1,1,1,1,1,1,
 1,1,0xfe12,0xfc0e,1,1,1,1,1,1,1,0xfc00,1,1,1,1,
-1,1,0x297d,0x2987,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,1,1,1,1,
+1,1,0x29c7,0x29d1,1,0xab2,0xab8,0xfe12,0xfe12,1,1,1,1,1,1,1,
 1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xfe0e,1,
 1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,0xfe0e,
 0xfe12,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00,
-1,1,1,1,1,1,1,0xab2,1,1,1,0x2991,0x299b,0xfe12,1,1,
-1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xfe12,1,
-1,1,0xfe0e,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1,
-1,1,1,1,1,0xabe,0xfc00,0x29a5,0x29af,0xfc00,0x29b9,1,1,0xfe12,0xfe0e,1,
-1,1,1,1,1,1,1,1,1,1,1,0xad0,0xad6,0x29c3,0x29cd,1,
-1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,0xfc00,1,1,
-1,1,0xadc,1,1,0x29d7,1,1,1,1,0xfe12,0xfe12,1,0xfe02,0xfe02,0xfe02,
-0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1,1,0xfe0c,0xfe0c,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x325a,0x3264,0x3278,0x3290,
-0x32a8,0x32c0,0x32d8,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1,
-1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,0xffcc,
-0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x32e6,0x32f0,
-0x3304,0x331c,0x3334,0x334c,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffd0,0xffd0,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1,
-1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1,
-0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51,0x3381,0x3385,0x3389,0x2f55,0x338f,
-0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf,0x303f,0x33c3,0x33c9,0x33cd,0x33d1,
-0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed,0x2c59,0x33f1,0x2f61,0x33f5,0x33f9,
-0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435,
-0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459,0x345d,0x2f69,0x3461,0x3465,0x3469,
-0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493,0x3497,0x349b,0x349f,0x34a3,0x34a7,
-0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7,0x34db,0x34e1,0x34e5,0x2c49,
-0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f,0x3513,0x3519,0x351d,0x3523,0x3527,
-0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555,0x3559,0x355d,0x3561,0x2b71,0x3565,
-0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x35a5,
-0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7,0x2f89,0x35cb,0x35cf,0x35d3,0x35d7,
-0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd,0x3601,0x3605,0x3609,0x360d,0x3613,
-0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b,0x3641,0x3645,0x3649,0x364d,0x2f99,
-0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671,0x3675,0x3679,0x367d,0x3683,0x3687,
-0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad,0x36b1,0x36b5,0x36bb,0x36bf,0x36c3,
-0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3,0x36f7,0x36fd,0x3701,0x3705,0x3709,
-0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f,0x30bf,0x3733,0x3737,0x373d,0x3741,
-0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d,0x3771,0x3777,0x377b,0x3781,0x3785,
-0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9,0x37bd,0x37bd,0x37c1,0x37c5,
-0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef,0x37f3,0x37f9,0x37ff,0x3805,0x3809,
-0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d,0x3831,0x3835,0x3839,0x383f,0x2bbd,
-0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861,0x3865,0x3869,0x386f,0x386f,0x3875,
-0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5,0x38a9,0x38af,0x38b3,0x38b7,0x38bb,
-0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5,0x38ef,0x38f5,0x38fb,0x38ff,0x3905,
-0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939,0x3575,0x393f,0x3943,0x3947,0x394b,
-0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975,0x3979,0x397d,0x3981,0x3985,0x3001,
-0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7,0x39bb,0x39c1,0x39c5,0x39cb,0x39cf,
-0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb,0x3113,0x39ff,0x3a03,0x3a07,0x3a0b,
-0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39,0x3a3d,0x3a43,0x3a49,0x3a4d,0x3a51,
-0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b,0x3a7f,0x3a83,0x3a87,0x3a8d,0x312f,
-0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3,0x3ac7,0x3acb,0x3ad1,0x3ad5,
-0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07,0x3b0b,0x3b11,0x3b15,0x3147,0x3147,
-0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b,0x3b47,0x3b4b,0x3b4f,0x3b53,0x3b57,
-0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b,0x3b8f,0x3b93,0x3b97,1,1
+1,1,1,1,1,1,1,0xabe,1,1,1,0x29db,0x29e5,0xfe12,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xaca,0x29ef,
+0xad0,0x29f9,1,1,1,1,1,0xad6,1,1,0x2a03,1,0xadc,0x2a0d,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,1,1,0xfc00,
+1,1,1,1,0xfbc4,1,1,0xfb10,1,0xfb1a,0xfb24,0xfc00,1,1,1,1,
+0xfe12,0xfe12,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,1,1,
+1,1,0xfc00,1,1,1,1,1,1,1,1,0xae2,0xfc00,0x2a17,0x2a21,0xfc00,
+0x2a2b,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,
+1,0xaf4,0xafa,0x2a35,0x2a3f,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
+1,1,1,0xfc00,1,1,1,1,0xb00,1,1,0x2a49,1,1,1,1,
+0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfbd6,0xfc00,0xfb9e,0xfbb4,0xfb2e,0xfb38,0xfb42,0xfb56,0xfb6e,0xfb86,0xfbee,1,1,1,1,1,
+0xfe12,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1,
+1,0xb06,1,1,1,0xfbf4,0xfb94,0x12b2,0x2a5d,1,1,1,1,1,0xfe0c,0xfe0c,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x32e4,0x32ee,0x3302,
+0x331a,0x3332,0x334a,0x3362,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,
+1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x3370,
+0x337a,0x338e,0x33a6,0x33be,0x33d6,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffd0,0xffd0,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,
+1,0x33e5,0x33e9,0x33ed,0x33f1,0x33f7,0x2fd7,0x33fb,0x33ff,0x3403,0x3407,0x2fdb,0x340b,0x340f,0x3413,0x2fdf,
+0x3419,0x341d,0x3421,0x3425,0x342b,0x342f,0x3433,0x3437,0x343d,0x3441,0x3445,0x3449,0x30c9,0x344d,0x3453,0x3457,
+0x345b,0x345f,0x3463,0x3467,0x346b,0x346f,0x30dd,0x2fe3,0x2fe7,0x30e1,0x3473,0x3477,0x2ce3,0x347b,0x2feb,0x347f,
+0x3483,0x3487,0x348b,0x348b,0x348b,0x348f,0x3495,0x3499,0x349d,0x34a1,0x34a7,0x34ab,0x34af,0x34b3,0x34b7,0x34bb,
+0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7,0x30e9,0x34db,0x34df,0x34e3,0x34e7,0x2ff3,0x34eb,0x34ef,
+0x34f3,0x2f47,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x350b,0x350f,0x3513,0x3517,0x351d,0x3521,0x3525,0x3529,0x352d,
+0x3531,0x3535,0x353b,0x3541,0x3545,0x3549,0x354d,0x3551,0x3555,0x3559,0x355d,0x3561,0x3561,0x3565,0x356b,0x356f,
+0x2cd3,0x3573,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3007,0x3595,0x3599,0x359d,0x35a3,0x35a7,0x35ad,
+0x35b1,0x35b5,0x35b9,0x35bd,0x35c1,0x35c5,0x35c9,0x35cd,0x35d1,0x35d5,0x35d9,0x35df,0x35e3,0x35e7,0x35eb,0x2bfb,
+0x35ef,0x35f5,0x35f9,0x35f9,0x35ff,0x3603,0x3603,0x3607,0x360b,0x3611,0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,
+0x362f,0x3633,0x3637,0x363b,0x300b,0x363f,0x3645,0x3649,0x364d,0x3119,0x364d,0x3651,0x3013,0x3655,0x3659,0x365d,
+0x3661,0x3017,0x2b8f,0x3665,0x3669,0x366d,0x3671,0x3675,0x3679,0x367d,0x3683,0x3687,0x368b,0x368f,0x3693,0x3697,
+0x369d,0x36a1,0x36a5,0x36a9,0x36ad,0x36b1,0x36b5,0x36b9,0x36bd,0x301b,0x36c1,0x36c5,0x36cb,0x36cf,0x36d3,0x36d7,
+0x3023,0x36db,0x36df,0x36e3,0x36e7,0x36eb,0x36ef,0x36f3,0x36f7,0x2bff,0x3139,0x36fb,0x36ff,0x3703,0x3707,0x370d,
+0x3711,0x3715,0x3719,0x3027,0x371d,0x3723,0x3727,0x372b,0x31eb,0x372f,0x3733,0x3737,0x373b,0x373f,0x3745,0x3749,
+0x374d,0x3751,0x3757,0x375b,0x375f,0x3763,0x2d17,0x3767,0x376b,0x3771,0x3777,0x377d,0x3781,0x3787,0x378b,0x378f,
+0x3793,0x3797,0x302b,0x2e73,0x379b,0x379f,0x37a3,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9,0x3149,0x37bd,0x37c1,0x37c7,
+0x37cb,0x37cf,0x37d5,0x37db,0x37df,0x314d,0x37e3,0x37e7,0x37eb,0x37ef,0x37f3,0x37f7,0x37fb,0x3801,0x3805,0x380b,
+0x380f,0x3815,0x3155,0x3819,0x381d,0x3823,0x3827,0x382b,0x3831,0x3837,0x383b,0x383f,0x3843,0x3847,0x3847,0x384b,
+0x384f,0x315d,0x3853,0x3857,0x385b,0x385f,0x3863,0x3869,0x386d,0x2cdf,0x3873,0x3879,0x387d,0x3883,0x3889,0x388f,
+0x3893,0x3175,0x3897,0x389d,0x38a3,0x38a9,0x38af,0x38b3,0x38b3,0x3179,0x31f3,0x38b7,0x38bb,0x38bf,0x38c3,0x38c9,
+0x2c47,0x3181,0x38cd,0x38d1,0x3057,0x38d7,0x38dd,0x2f9f,0x38e3,0x38e7,0x3067,0x38eb,0x38ef,0x38f3,0x38f9,0x38f9,
+0x38ff,0x3903,0x3907,0x390d,0x3911,0x3915,0x3919,0x391f,0x3923,0x3927,0x392b,0x392f,0x3933,0x3939,0x393d,0x3941,
+0x3945,0x3949,0x394d,0x3951,0x3957,0x395d,0x3961,0x3967,0x396b,0x3971,0x3975,0x307f,0x3979,0x397f,0x3985,0x3989,
+0x398f,0x3993,0x3999,0x399d,0x39a1,0x39a5,0x39a9,0x39ad,0x39b1,0x39b7,0x39bd,0x39c3,0x35ff,0x39c9,0x39cd,0x39d1,
+0x39d5,0x39d9,0x39dd,0x39e1,0x39e5,0x39e9,0x39ed,0x39f1,0x39f5,0x2d27,0x39fb,0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f,
+0x308b,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2f,0x3a35,0x3a39,0x3a3d,0x3a41,0x3a45,0x3a4b,0x3a4f,0x3a55,
+0x3a59,0x3a5d,0x3a63,0x3a69,0x3a6d,0x2c33,0x3a71,0x3a75,0x3a79,0x3a7d,0x3a81,0x3a85,0x319d,0x3a89,0x3a8d,0x3a91,
+0x3a95,0x3a99,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aad,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3,0x3ac7,0x3acd,0x3ad3,0x3ad7,
+0x3adb,0x31b1,0x31b5,0x3adf,0x3ae3,0x3ae9,0x3aed,0x3af1,0x3af5,0x3af9,0x3aff,0x3b05,0x3b09,0x3b0d,0x3b11,0x3b17,
+0x31b9,0x3b1b,0x3b21,0x3b27,0x3b2b,0x3b2f,0x3b33,0x3b39,0x3b3d,0x3b41,0x3b45,0x3b49,0x3b4d,0x3b51,0x3b55,0x3b5b,
+0x3b5f,0x3b63,0x3b67,0x3b6d,0x3b71,0x3b75,0x3b79,0x3b7d,0x3b83,0x3b89,0x3b8d,0x3b91,0x3b95,0x3b9b,0x3b9f,0x31d1,
+0x31d1,0x3ba5,0x3ba9,0x3baf,0x3bb3,0x3bb7,0x3bbb,0x3bbf,0x3bc3,0x3bc7,0x3bcb,0x31d5,0x3bd1,0x3bd5,0x3bd9,0x3bdd,
+0x3be1,0x3be5,0x3beb,0x3bef,0x3bf5,0x3bfb,0x3c01,0x3c05,0x3c09,0x3c0d,0x3c11,0x3c15,0x3c19,0x3c1d,0x3c21,1,
+1
 };
 
 static const UCPTrie norm2_nfc_data_trie={
     norm2_nfc_data_trieIndex,
     { norm2_nfc_data_trieData },
-    1788, 7984,
+    1869, 8129,
     0x2fc00, 0x30,
     0, 0,
     0, 0,
@@ -645,7 +660,7 @@
     0x1,
 };
 
-static const uint16_t norm2_nfc_data_extraData[7732]={
+static const uint16_t norm2_nfc_data_extraData[7918]={
 0xffff,0xffff,0x8670,0x44dc,0x8670,0x44c0,0x8670,0x44de,0x600,0x180,0x602,0x182,0x604,0x185,0x606,0x186,
 0x608,0x200,0x60c,0x205,0x60e,0x44d,0x610,0x189,0x612,0x3d44,0x614,0x18b,0x618,0x39a,0x61e,0x400,
 0x622,0x404,0x646,0x3d41,0x64a,0x3c00,0x8650,0x208,0x60e,0x3c04,0x646,0x3c08,0x8662,0x3c0c,0x602,0x20c,
@@ -730,406 +745,417 @@
 0xe132,0x615c,0xe132,0x6160,0xe132,0x6164,0xe132,0x6168,0xe132,0x616c,0xe132,0x6170,0xe132,0x6174,0xe132,0x6178,
 0xe132,0x617c,0xe132,0x6180,0xe132,0x6184,0xe132,0x618a,0xe132,0x618e,0xe132,0x6192,0x6132,0x61a0,0xe134,0x61a2,
 0x6132,0x61a6,0xe134,0x61a8,0x6132,0x61ac,0xe134,0x61ae,0x6132,0x61b2,0xe134,0x61b4,0x6132,0x61b8,0xe134,0x61ba,
-0xe132,0x61ee,0xe132,0x61f0,0xe132,0x61f2,0xe132,0x61f4,0xe132,0x61fc,0xb489,0x2e82,0x2134,0xb489,0x2e82,0x2138,
-0xb489,0x2e82,0x2156,0xb489,0x49c2,0x225c,0xb489,0x49c2,0x225e,0x3489,0xcf82,0x2696,0xb489,0xd5c2,0x2698,0x348b,
-0x2c02,0x2978,0x348b,0x2e82,0x2976,0xb48b,0x2f42,0x297c,0xb48b,0x6bc2,0x2b74,0xb48b,0x6bc2,0x2b76,0xb48d,0x4c02,
-0x3270,2,0xe602,0x41,0x302,0x600,0x3d4c,0x602,0x3d48,0x606,0x3d54,0x8612,0x3d50,0xe602,0x41,0x308,
-0x8608,0x3bc,0xe602,0x41,0x30a,0x8602,0x3f4,0xca02,0x43,0x327,0x8602,0x3c10,0xe602,0x45,0x302,0x600,
-0x3d80,0x602,0x3d7c,0x606,0x3d88,0x8612,0x3d84,0xe602,0x49,0x308,0x8602,0x3c5c,0xe602,0x4f,0x302,0x600,
-0x3da4,0x602,0x3da0,0x606,0x3dac,0x8612,0x3da8,0xe602,0x4f,0x303,0x602,0x3c98,0x608,0x458,0x8610,0x3c9c,
-0xe602,0x4f,0x308,0x8608,0x454,0xe602,0x55,0x308,0x600,0x3b6,0x602,0x3ae,0x608,0x3aa,0x8618,0x3b2,
-0xe602,0x61,0x302,0x600,0x3d4e,0x602,0x3d4a,0x606,0x3d56,0x8612,0x3d52,0xe602,0x61,0x308,0x8608,0x3be,
-0xe602,0x61,0x30a,0x8602,0x3f6,0xca02,0x63,0x327,0x8602,0x3c12,0xe602,0x65,0x302,0x600,0x3d82,0x602,
-0x3d7e,0x606,0x3d8a,0x8612,0x3d86,0xe602,0x69,0x308,0x8602,0x3c5e,0xe602,0x6f,0x302,0x600,0x3da6,0x602,
-0x3da2,0x606,0x3dae,0x8612,0x3daa,0xe602,0x6f,0x303,0x602,0x3c9a,0x608,0x45a,0x8610,0x3c9e,0xe602,0x6f,
-0x308,0x8608,0x456,0xe602,0x75,0x308,0x600,0x3b8,0x602,0x3b0,0x608,0x3ac,0x8618,0x3b4,0xe602,0x41,
-0x306,0x600,0x3d60,0x602,0x3d5c,0x606,0x3d68,0x8612,0x3d64,0xe602,0x61,0x306,0x600,0x3d62,0x602,0x3d5e,
-0x606,0x3d6a,0x8612,0x3d66,0xe602,0x45,0x304,0x600,0x3c28,0x8602,0x3c2c,0xe602,0x65,0x304,0x600,0x3c2a,
-0x8602,0x3c2e,0xe602,0x4f,0x304,0x600,0x3ca0,0x8602,0x3ca4,0xe602,0x6f,0x304,0x600,0x3ca2,0x8602,0x3ca6,
-0xe602,0x53,0x301,0x860e,0x3cc8,0xe602,0x73,0x301,0x860e,0x3cca,0xe602,0x53,0x30c,0x860e,0x3ccc,0xe602,
-0x73,0x30c,0x860e,0x3cce,0xe602,0x55,0x303,0x8602,0x3cf0,0xe602,0x75,0x303,0x8602,0x3cf2,0xe602,0x55,
-0x304,0x8610,0x3cf4,0xe602,0x75,0x304,0x8610,0x3cf6,0xd802,0x4f,0x31b,0x600,0x3db8,0x602,0x3db4,0x606,
-0x3dc0,0x612,0x3dbc,0x8646,0x3dc4,0xd802,0x6f,0x31b,0x600,0x3dba,0x602,0x3db6,0x606,0x3dc2,0x612,0x3dbe,
-0x8646,0x3dc6,0xd802,0x55,0x31b,0x600,0x3dd4,0x602,0x3dd0,0x606,0x3ddc,0x612,0x3dd8,0x8646,0x3de0,0xd802,
-0x75,0x31b,0x600,0x3dd6,0x602,0x3dd2,0x606,0x3dde,0x612,0x3dda,0x8646,0x3de2,0xca02,0x4f,0x328,0x8608,
-0x3d8,0xca02,0x6f,0x328,0x8608,0x3da,0xe602,0x41,0x307,0x8608,0x3c0,0xe602,0x61,0x307,0x8608,0x3c2,
-0xca02,0x45,0x327,0x860c,0x3c38,0xca02,0x65,0x327,0x860c,0x3c3a,0xe602,0x4f,0x307,0x8608,0x460,0xe602,
-0x6f,0x307,0x8608,0x462,0xe602,0x3b1,0x301,0x868a,0x3f68,0xe602,0x3b7,0x301,0x868a,0x3f88,0xe602,0x3b9,
-0x308,0x600,0x3fa4,0x602,0x720,0x8684,0x3fae,0xe602,0x3c5,0x308,0x600,0x3fc4,0x602,0x760,0x8684,0x3fce,
-0xe602,0x3c9,0x301,0x868a,0x3fe8,2,0xcc6,0xcc2,0x99aa,0x1996,2,0xdd9,0xdcf,0x9b94,0x1bba,0xdc02,
-0x4c,0x323,0x8608,0x3c70,0xdc02,0x6c,0x323,0x8608,0x3c72,0xdc02,0x52,0x323,0x8608,0x3cb8,0xdc02,0x72,
-0x323,0x8608,0x3cba,0xdc02,0x53,0x323,0x860e,0x3cd0,0xdc02,0x73,0x323,0x860e,0x3cd2,0xdc02,0x41,0x323,
-0x604,0x3d58,0x860c,0x3d6c,0xdc02,0x61,0x323,0x604,0x3d5a,0x860c,0x3d6e,0xdc02,0x45,0x323,0x8604,0x3d8c,
-0xdc02,0x65,0x323,0x8604,0x3d8e,0xdc02,0x4f,0x323,0x8604,0x3db0,0xdc02,0x6f,0x323,0x8604,0x3db2,0xe602,
-0x3b1,0x313,0x600,0x3e05,0x602,0x3e09,0x684,0x3e0d,0x868a,0x3f00,0xe602,0x3b1,0x314,0x600,0x3e07,0x602,
-0x3e0b,0x684,0x3e0f,0x868a,0x3f02,0x1f00,0xe643,0x3b1,0x313,0x300,0x868a,0x3f04,0x1f01,0xe643,0x3b1,0x314,
-0x300,0x868a,0x3f06,0x1f00,0xe643,0x3b1,0x313,0x301,0x868a,0x3f08,0x1f01,0xe643,0x3b1,0x314,0x301,0x868a,
-0x3f0a,0x1f00,0xe643,0x3b1,0x313,0x342,0x868a,0x3f0c,0x1f01,0xe643,0x3b1,0x314,0x342,0x868a,0x3f0e,0xe602,
-0x391,0x313,0x600,0x3e15,0x602,0x3e19,0x684,0x3e1d,0x868a,0x3f10,0xe602,0x391,0x314,0x600,0x3e17,0x602,
-0x3e1b,0x684,0x3e1f,0x868a,0x3f12,0x1f08,0xe643,0x391,0x313,0x300,0x868a,0x3f14,0x1f09,0xe643,0x391,0x314,
-0x300,0x868a,0x3f16,0x1f08,0xe643,0x391,0x313,0x301,0x868a,0x3f18,0x1f09,0xe643,0x391,0x314,0x301,0x868a,
-0x3f1a,0x1f08,0xe643,0x391,0x313,0x342,0x868a,0x3f1c,0x1f09,0xe643,0x391,0x314,0x342,0x868a,0x3f1e,0xe602,
-0x3b5,0x313,0x600,0x3e24,0x8602,0x3e28,0xe602,0x3b5,0x314,0x600,0x3e26,0x8602,0x3e2a,0xe602,0x395,0x313,
-0x600,0x3e34,0x8602,0x3e38,0xe602,0x395,0x314,0x600,0x3e36,0x8602,0x3e3a,0xe602,0x3b7,0x313,0x600,0x3e45,
-0x602,0x3e49,0x684,0x3e4d,0x868a,0x3f20,0xe602,0x3b7,0x314,0x600,0x3e47,0x602,0x3e4b,0x684,0x3e4f,0x868a,
-0x3f22,0x1f20,0xe643,0x3b7,0x313,0x300,0x868a,0x3f24,0x1f21,0xe643,0x3b7,0x314,0x300,0x868a,0x3f26,0x1f20,
-0xe643,0x3b7,0x313,0x301,0x868a,0x3f28,0x1f21,0xe643,0x3b7,0x314,0x301,0x868a,0x3f2a,0x1f20,0xe643,0x3b7,
-0x313,0x342,0x868a,0x3f2c,0x1f21,0xe643,0x3b7,0x314,0x342,0x868a,0x3f2e,0xe602,0x397,0x313,0x600,0x3e55,
-0x602,0x3e59,0x684,0x3e5d,0x868a,0x3f30,0xe602,0x397,0x314,0x600,0x3e57,0x602,0x3e5b,0x684,0x3e5f,0x868a,
-0x3f32,0x1f28,0xe643,0x397,0x313,0x300,0x868a,0x3f34,0x1f29,0xe643,0x397,0x314,0x300,0x868a,0x3f36,0x1f28,
-0xe643,0x397,0x313,0x301,0x868a,0x3f38,0x1f29,0xe643,0x397,0x314,0x301,0x868a,0x3f3a,0x1f28,0xe643,0x397,
-0x313,0x342,0x868a,0x3f3c,0x1f29,0xe643,0x397,0x314,0x342,0x868a,0x3f3e,0xe602,0x3b9,0x313,0x600,0x3e64,
-0x602,0x3e68,0x8684,0x3e6c,0xe602,0x3b9,0x314,0x600,0x3e66,0x602,0x3e6a,0x8684,0x3e6e,0xe602,0x399,0x313,
-0x600,0x3e74,0x602,0x3e78,0x8684,0x3e7c,0xe602,0x399,0x314,0x600,0x3e76,0x602,0x3e7a,0x8684,0x3e7e,0xe602,
-0x3bf,0x313,0x600,0x3e84,0x8602,0x3e88,0xe602,0x3bf,0x314,0x600,0x3e86,0x8602,0x3e8a,0xe602,0x39f,0x313,
-0x600,0x3e94,0x8602,0x3e98,0xe602,0x39f,0x314,0x600,0x3e96,0x8602,0x3e9a,0xe602,0x3c5,0x313,0x600,0x3ea4,
-0x602,0x3ea8,0x8684,0x3eac,0xe602,0x3c5,0x314,0x600,0x3ea6,0x602,0x3eaa,0x8684,0x3eae,0xe602,0x3a5,0x314,
-0x600,0x3eb6,0x602,0x3eba,0x8684,0x3ebe,0xe602,0x3c9,0x313,0x600,0x3ec5,0x602,0x3ec9,0x684,0x3ecd,0x868a,
-0x3f40,0xe602,0x3c9,0x314,0x600,0x3ec7,0x602,0x3ecb,0x684,0x3ecf,0x868a,0x3f42,0x1f60,0xe643,0x3c9,0x313,
-0x300,0x868a,0x3f44,0x1f61,0xe643,0x3c9,0x314,0x300,0x868a,0x3f46,0x1f60,0xe643,0x3c9,0x313,0x301,0x868a,
-0x3f48,0x1f61,0xe643,0x3c9,0x314,0x301,0x868a,0x3f4a,0x1f60,0xe643,0x3c9,0x313,0x342,0x868a,0x3f4c,0x1f61,
-0xe643,0x3c9,0x314,0x342,0x868a,0x3f4e,0xe602,0x3a9,0x313,0x600,0x3ed5,0x602,0x3ed9,0x684,0x3edd,0x868a,
-0x3f50,0xe602,0x3a9,0x314,0x600,0x3ed7,0x602,0x3edb,0x684,0x3edf,0x868a,0x3f52,0x1f68,0xe643,0x3a9,0x313,
-0x300,0x868a,0x3f54,0x1f69,0xe643,0x3a9,0x314,0x300,0x868a,0x3f56,0x1f68,0xe643,0x3a9,0x313,0x301,0x868a,
-0x3f58,0x1f69,0xe643,0x3a9,0x314,0x301,0x868a,0x3f5a,0x1f68,0xe643,0x3a9,0x313,0x342,0x868a,0x3f5c,0x1f69,
-0xe643,0x3a9,0x314,0x342,0x868a,0x3f5e,0xe602,0x3b1,0x300,0x868a,0x3f64,0xe602,0x3b7,0x300,0x868a,0x3f84,
-0xe602,0x3c9,0x300,0x868a,0x3fe4,0xe602,0x3b1,0x342,0x868a,0x3f6e,0xe602,0x3b7,0x342,0x868a,0x3f8e,0xe602,
-0x3c9,0x342,0x868a,0x3fee,3,0xe602,0x41,0x300,0xe602,0x41,0x301,0xe602,0x41,0x303,0xe602,0x45,
-0x300,0xe602,0x45,0x301,0xe602,0x45,0x308,0xe602,0x49,0x300,0xe602,0x49,0x301,0xe602,0x49,0x302,
-0xe602,0x4e,0x303,0xe602,0x4f,0x300,0xe602,0x4f,0x301,0xe602,0x55,0x300,0xe602,0x55,0x301,0xe602,
-0x55,0x302,0xe602,0x59,0x301,0xe602,0x61,0x300,0xe602,0x61,0x301,0xe602,0x61,0x303,0xe602,0x65,
-0x300,0xe602,0x65,0x301,0xe602,0x65,0x308,0xe602,0x69,0x300,0xe602,0x69,0x301,0xe602,0x69,0x302,
-0xe602,0x6e,0x303,0xe602,0x6f,0x300,0xe602,0x6f,0x301,0xe602,0x75,0x300,0xe602,0x75,0x301,0xe602,
-0x75,0x302,0xe602,0x79,0x301,0xe602,0x79,0x308,0xe602,0x41,0x304,0xe602,0x61,0x304,0xca02,0x41,
-0x328,0xca02,0x61,0x328,0xe602,0x43,0x301,0xe602,0x63,0x301,0xe602,0x43,0x302,0xe602,0x63,0x302,
-0xe602,0x43,0x307,0xe602,0x63,0x307,0xe602,0x43,0x30c,0xe602,0x63,0x30c,0xe602,0x44,0x30c,0xe602,
-0x64,0x30c,0xe602,0x45,0x306,0xe602,0x65,0x306,0xe602,0x45,0x307,0xe602,0x65,0x307,0xca02,0x45,
-0x328,0xca02,0x65,0x328,0xe602,0x45,0x30c,0xe602,0x65,0x30c,0xe602,0x47,0x302,0xe602,0x67,0x302,
-0xe602,0x47,0x306,0xe602,0x67,0x306,0xe602,0x47,0x307,0xe602,0x67,0x307,0xca02,0x47,0x327,0xca02,
-0x67,0x327,0xe602,0x48,0x302,0xe602,0x68,0x302,0xe602,0x49,0x303,0xe602,0x69,0x303,0xe602,0x49,
-0x304,0xe602,0x69,0x304,0xe602,0x49,0x306,0xe602,0x69,0x306,0xca02,0x49,0x328,0xca02,0x69,0x328,
-0xe602,0x49,0x307,0xe602,0x4a,0x302,0xe602,0x6a,0x302,0xca02,0x4b,0x327,0xca02,0x6b,0x327,0xe602,
-0x4c,0x301,0xe602,0x6c,0x301,0xca02,0x4c,0x327,0xca02,0x6c,0x327,0xe602,0x4c,0x30c,0xe602,0x6c,
-0x30c,0xe602,0x4e,0x301,0xe602,0x6e,0x301,0xca02,0x4e,0x327,0xca02,0x6e,0x327,0xe602,0x4e,0x30c,
-0xe602,0x6e,0x30c,0xe602,0x4f,0x306,0xe602,0x6f,0x306,0xe602,0x4f,0x30b,0xe602,0x6f,0x30b,0xe602,
-0x52,0x301,0xe602,0x72,0x301,0xca02,0x52,0x327,0xca02,0x72,0x327,0xe602,0x52,0x30c,0xe602,0x72,
-0x30c,0xe602,0x53,0x302,0xe602,0x73,0x302,0xca02,0x53,0x327,0xca02,0x73,0x327,0xca02,0x54,0x327,
-0xca02,0x74,0x327,0xe602,0x54,0x30c,0xe602,0x74,0x30c,0xe602,0x55,0x306,0xe602,0x75,0x306,0xe602,
-0x55,0x30a,0xe602,0x75,0x30a,0xe602,0x55,0x30b,0xe602,0x75,0x30b,0xca02,0x55,0x328,0xca02,0x75,
-0x328,0xe602,0x57,0x302,0xe602,0x77,0x302,0xe602,0x59,0x302,0xe602,0x79,0x302,0xe602,0x59,0x308,
-0xe602,0x5a,0x301,0xe602,0x7a,0x301,0xe602,0x5a,0x307,0xe602,0x7a,0x307,0xe602,0x5a,0x30c,0xe602,
-0x7a,0x30c,0xe602,0x41,0x30c,0xe602,0x61,0x30c,0xe602,0x49,0x30c,0xe602,0x69,0x30c,0xe602,0x4f,
-0x30c,0xe602,0x6f,0x30c,0xe602,0x55,0x30c,0xe602,0x75,0x30c,0xdc,0xe643,0x55,0x308,0x304,0xfc,
-0xe643,0x75,0x308,0x304,0xdc,0xe643,0x55,0x308,0x301,0xfc,0xe643,0x75,0x308,0x301,0xdc,0xe643,
-0x55,0x308,0x30c,0xfc,0xe643,0x75,0x308,0x30c,0xdc,0xe643,0x55,0x308,0x300,0xfc,0xe643,0x75,
-0x308,0x300,0xc4,0xe643,0x41,0x308,0x304,0xe4,0xe643,0x61,0x308,0x304,0x226,0xe643,0x41,0x307,
-0x304,0x227,0xe643,0x61,0x307,0x304,0xe602,0xc6,0x304,0xe602,0xe6,0x304,0xe602,0x47,0x30c,0xe602,
-0x67,0x30c,0xe602,0x4b,0x30c,0xe602,0x6b,0x30c,0x1ea,0xe643,0x4f,0x328,0x304,0x1eb,0xe643,0x6f,
-0x328,0x304,0xe602,0x1b7,0x30c,0xe602,0x292,0x30c,0xe602,0x6a,0x30c,0xe602,0x47,0x301,0xe602,0x67,
-0x301,0xe602,0x4e,0x300,0xe602,0x6e,0x300,0xc5,0xe643,0x41,0x30a,0x301,0xe5,0xe643,0x61,0x30a,
-0x301,0xe602,0xc6,0x301,0xe602,0xe6,0x301,0xe602,0xd8,0x301,0xe602,0xf8,0x301,0xe602,0x41,0x30f,
-0xe602,0x61,0x30f,0xe602,0x41,0x311,0xe602,0x61,0x311,0xe602,0x45,0x30f,0xe602,0x65,0x30f,0xe602,
-0x45,0x311,0xe602,0x65,0x311,0xe602,0x49,0x30f,0xe602,0x69,0x30f,0xe602,0x49,0x311,0xe602,0x69,
-0x311,0xe602,0x4f,0x30f,0xe602,0x6f,0x30f,0xe602,0x4f,0x311,0xe602,0x6f,0x311,0xe602,0x52,0x30f,
-0xe602,0x72,0x30f,0xe602,0x52,0x311,0xe602,0x72,0x311,0xe602,0x55,0x30f,0xe602,0x75,0x30f,0xe602,
-0x55,0x311,0xe602,0x75,0x311,0xdc02,0x53,0x326,0xdc02,0x73,0x326,0xdc02,0x54,0x326,0xdc02,0x74,
-0x326,0xe602,0x48,0x30c,0xe602,0x68,0x30c,0xd6,0xe643,0x4f,0x308,0x304,0xf6,0xe643,0x6f,0x308,
-0x304,0xd5,0xe643,0x4f,0x303,0x304,0xf5,0xe643,0x6f,0x303,0x304,0x22e,0xe643,0x4f,0x307,0x304,
-0x22f,0xe643,0x6f,0x307,0x304,0xe602,0x59,0x304,0xe602,0x79,0x304,0xe602,0xa8,0x301,0xe602,0x391,
-0x301,0xe602,0x395,0x301,0xe602,0x397,0x301,0xe602,0x399,0x301,0xe602,0x39f,0x301,0xe602,0x3a5,0x301,
-0xe602,0x3a9,0x301,0x3ca,0xe643,0x3b9,0x308,0x301,0xe602,0x399,0x308,0xe602,0x3a5,0x308,0xe602,0x3b5,
-0x301,0xe602,0x3b9,0x301,0x3cb,0xe643,0x3c5,0x308,0x301,0xe602,0x3bf,0x301,0xe602,0x3c5,0x301,0xe602,
-0x3d2,0x301,0xe602,0x3d2,0x308,0xe602,0x415,0x300,0xe602,0x415,0x308,0xe602,0x413,0x301,0xe602,0x406,
-0x308,0xe602,0x41a,0x301,0xe602,0x418,0x300,0xe602,0x423,0x306,0xe602,0x418,0x306,0xe602,0x438,0x306,
-0xe602,0x435,0x300,0xe602,0x435,0x308,0xe602,0x433,0x301,0xe602,0x456,0x308,0xe602,0x43a,0x301,0xe602,
-0x438,0x300,0xe602,0x443,0x306,0xe602,0x474,0x30f,0xe602,0x475,0x30f,0xe602,0x416,0x306,0xe602,0x436,
-0x306,0xe602,0x410,0x306,0xe602,0x430,0x306,0xe602,0x410,0x308,0xe602,0x430,0x308,0xe602,0x415,0x306,
-0xe602,0x435,0x306,0xe602,0x4d8,0x308,0xe602,0x4d9,0x308,0xe602,0x416,0x308,0xe602,0x436,0x308,0xe602,
-0x417,0x308,0xe602,0x437,0x308,0xe602,0x418,0x304,0xe602,0x438,0x304,0xe602,0x418,0x308,0xe602,0x438,
-0x308,0xe602,0x41e,0x308,0xe602,0x43e,0x308,0xe602,0x4e8,0x308,0xe602,0x4e9,0x308,0xe602,0x42d,0x308,
-0xe602,0x44d,0x308,0xe602,0x423,0x304,0xe602,0x443,0x304,0xe602,0x423,0x308,0xe602,0x443,0x308,0xe602,
-0x423,0x30b,0xe602,0x443,0x30b,0xe602,0x427,0x308,0xe602,0x447,0x308,0xe602,0x42b,0x308,0xe602,0x44b,
-0x308,0xe602,0x627,0x653,0xe602,0x627,0x654,0xe602,0x648,0x654,0xdc02,0x627,0x655,0xe602,0x64a,0x654,
-0xe602,0x6d5,0x654,0xe602,0x6c1,0x654,0xe602,0x6d2,0x654,0x702,0x928,0x93c,0x702,0x930,0x93c,0x702,
-0x933,0x93c,2,0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,2,0xb47,0xb3e,2,0xb47,
-0xb57,2,0xb92,0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,0xbc6,0xbd7,0x5b02,0xc46,0xc56,
-2,0xcbf,0xcd5,2,0xcc6,0xcd5,2,0xcc6,0xcd6,0xcca,0x43,0xcc6,0xcc2,0xcd5,2,0xd46,
-0xd3e,2,0xd47,0xd3e,2,0xd46,0xd57,0x902,0xdd9,0xdca,0xddc,0x943,0xdd9,0xdcf,0xdca,2,
-0xdd9,0xddf,2,0x1025,0x102e,2,0x1b05,0x1b35,2,0x1b07,0x1b35,2,0x1b09,0x1b35,2,0x1b0b,
-0x1b35,2,0x1b0d,0x1b35,2,0x1b11,0x1b35,2,0x1b3a,0x1b35,2,0x1b3c,0x1b35,2,0x1b3e,0x1b35,
-2,0x1b3f,0x1b35,2,0x1b42,0x1b35,0xdc02,0x41,0x325,0xdc02,0x61,0x325,0xe602,0x42,0x307,0xe602,
-0x62,0x307,0xdc02,0x42,0x323,0xdc02,0x62,0x323,0xdc02,0x42,0x331,0xdc02,0x62,0x331,0xc7,0xe643,
-0x43,0x327,0x301,0xe7,0xe643,0x63,0x327,0x301,0xe602,0x44,0x307,0xe602,0x64,0x307,0xdc02,0x44,
-0x323,0xdc02,0x64,0x323,0xdc02,0x44,0x331,0xdc02,0x64,0x331,0xca02,0x44,0x327,0xca02,0x64,0x327,
-0xdc02,0x44,0x32d,0xdc02,0x64,0x32d,0x112,0xe643,0x45,0x304,0x300,0x113,0xe643,0x65,0x304,0x300,
-0x112,0xe643,0x45,0x304,0x301,0x113,0xe643,0x65,0x304,0x301,0xdc02,0x45,0x32d,0xdc02,0x65,0x32d,
-0xdc02,0x45,0x330,0xdc02,0x65,0x330,0x228,0xe643,0x45,0x327,0x306,0x229,0xe643,0x65,0x327,0x306,
-0xe602,0x46,0x307,0xe602,0x66,0x307,0xe602,0x47,0x304,0xe602,0x67,0x304,0xe602,0x48,0x307,0xe602,
-0x68,0x307,0xdc02,0x48,0x323,0xdc02,0x68,0x323,0xe602,0x48,0x308,0xe602,0x68,0x308,0xca02,0x48,
-0x327,0xca02,0x68,0x327,0xdc02,0x48,0x32e,0xdc02,0x68,0x32e,0xdc02,0x49,0x330,0xdc02,0x69,0x330,
-0xcf,0xe643,0x49,0x308,0x301,0xef,0xe643,0x69,0x308,0x301,0xe602,0x4b,0x301,0xe602,0x6b,0x301,
-0xdc02,0x4b,0x323,0xdc02,0x6b,0x323,0xdc02,0x4b,0x331,0xdc02,0x6b,0x331,0x1e36,0xe643,0x4c,0x323,
-0x304,0x1e37,0xe643,0x6c,0x323,0x304,0xdc02,0x4c,0x331,0xdc02,0x6c,0x331,0xdc02,0x4c,0x32d,0xdc02,
-0x6c,0x32d,0xe602,0x4d,0x301,0xe602,0x6d,0x301,0xe602,0x4d,0x307,0xe602,0x6d,0x307,0xdc02,0x4d,
-0x323,0xdc02,0x6d,0x323,0xe602,0x4e,0x307,0xe602,0x6e,0x307,0xdc02,0x4e,0x323,0xdc02,0x6e,0x323,
-0xdc02,0x4e,0x331,0xdc02,0x6e,0x331,0xdc02,0x4e,0x32d,0xdc02,0x6e,0x32d,0xd5,0xe643,0x4f,0x303,
-0x301,0xf5,0xe643,0x6f,0x303,0x301,0xd5,0xe643,0x4f,0x303,0x308,0xf5,0xe643,0x6f,0x303,0x308,
-0x14c,0xe643,0x4f,0x304,0x300,0x14d,0xe643,0x6f,0x304,0x300,0x14c,0xe643,0x4f,0x304,0x301,0x14d,
-0xe643,0x6f,0x304,0x301,0xe602,0x50,0x301,0xe602,0x70,0x301,0xe602,0x50,0x307,0xe602,0x70,0x307,
-0xe602,0x52,0x307,0xe602,0x72,0x307,0x1e5a,0xe643,0x52,0x323,0x304,0x1e5b,0xe643,0x72,0x323,0x304,
-0xdc02,0x52,0x331,0xdc02,0x72,0x331,0xe602,0x53,0x307,0xe602,0x73,0x307,0x15a,0xe643,0x53,0x301,
-0x307,0x15b,0xe643,0x73,0x301,0x307,0x160,0xe643,0x53,0x30c,0x307,0x161,0xe643,0x73,0x30c,0x307,
-0x1e62,0xe643,0x53,0x323,0x307,0x1e63,0xe643,0x73,0x323,0x307,0xe602,0x54,0x307,0xe602,0x74,0x307,
-0xdc02,0x54,0x323,0xdc02,0x74,0x323,0xdc02,0x54,0x331,0xdc02,0x74,0x331,0xdc02,0x54,0x32d,0xdc02,
-0x74,0x32d,0xdc02,0x55,0x324,0xdc02,0x75,0x324,0xdc02,0x55,0x330,0xdc02,0x75,0x330,0xdc02,0x55,
-0x32d,0xdc02,0x75,0x32d,0x168,0xe643,0x55,0x303,0x301,0x169,0xe643,0x75,0x303,0x301,0x16a,0xe643,
-0x55,0x304,0x308,0x16b,0xe643,0x75,0x304,0x308,0xe602,0x56,0x303,0xe602,0x76,0x303,0xdc02,0x56,
-0x323,0xdc02,0x76,0x323,0xe602,0x57,0x300,0xe602,0x77,0x300,0xe602,0x57,0x301,0xe602,0x77,0x301,
-0xe602,0x57,0x308,0xe602,0x77,0x308,0xe602,0x57,0x307,0xe602,0x77,0x307,0xdc02,0x57,0x323,0xdc02,
-0x77,0x323,0xe602,0x58,0x307,0xe602,0x78,0x307,0xe602,0x58,0x308,0xe602,0x78,0x308,0xe602,0x59,
-0x307,0xe602,0x79,0x307,0xe602,0x5a,0x302,0xe602,0x7a,0x302,0xdc02,0x5a,0x323,0xdc02,0x7a,0x323,
-0xdc02,0x5a,0x331,0xdc02,0x7a,0x331,0xdc02,0x68,0x331,0xe602,0x74,0x308,0xe602,0x77,0x30a,0xe602,
-0x79,0x30a,0xe602,0x17f,0x307,0xe602,0x41,0x309,0xe602,0x61,0x309,0xc2,0xe643,0x41,0x302,0x301,
-0xe2,0xe643,0x61,0x302,0x301,0xc2,0xe643,0x41,0x302,0x300,0xe2,0xe643,0x61,0x302,0x300,0xc2,
-0xe643,0x41,0x302,0x309,0xe2,0xe643,0x61,0x302,0x309,0xc2,0xe643,0x41,0x302,0x303,0xe2,0xe643,
-0x61,0x302,0x303,0x1ea0,0xe643,0x41,0x323,0x302,0x1ea1,0xe643,0x61,0x323,0x302,0x102,0xe643,0x41,
-0x306,0x301,0x103,0xe643,0x61,0x306,0x301,0x102,0xe643,0x41,0x306,0x300,0x103,0xe643,0x61,0x306,
-0x300,0x102,0xe643,0x41,0x306,0x309,0x103,0xe643,0x61,0x306,0x309,0x102,0xe643,0x41,0x306,0x303,
-0x103,0xe643,0x61,0x306,0x303,0x1ea0,0xe643,0x41,0x323,0x306,0x1ea1,0xe643,0x61,0x323,0x306,0xe602,
-0x45,0x309,0xe602,0x65,0x309,0xe602,0x45,0x303,0xe602,0x65,0x303,0xca,0xe643,0x45,0x302,0x301,
-0xea,0xe643,0x65,0x302,0x301,0xca,0xe643,0x45,0x302,0x300,0xea,0xe643,0x65,0x302,0x300,0xca,
-0xe643,0x45,0x302,0x309,0xea,0xe643,0x65,0x302,0x309,0xca,0xe643,0x45,0x302,0x303,0xea,0xe643,
-0x65,0x302,0x303,0x1eb8,0xe643,0x45,0x323,0x302,0x1eb9,0xe643,0x65,0x323,0x302,0xe602,0x49,0x309,
-0xe602,0x69,0x309,0xdc02,0x49,0x323,0xdc02,0x69,0x323,0xe602,0x4f,0x309,0xe602,0x6f,0x309,0xd4,
-0xe643,0x4f,0x302,0x301,0xf4,0xe643,0x6f,0x302,0x301,0xd4,0xe643,0x4f,0x302,0x300,0xf4,0xe643,
-0x6f,0x302,0x300,0xd4,0xe643,0x4f,0x302,0x309,0xf4,0xe643,0x6f,0x302,0x309,0xd4,0xe643,0x4f,
-0x302,0x303,0xf4,0xe643,0x6f,0x302,0x303,0x1ecc,0xe643,0x4f,0x323,0x302,0x1ecd,0xe643,0x6f,0x323,
-0x302,0x1a0,0xe643,0x4f,0x31b,0x301,0x1a1,0xe643,0x6f,0x31b,0x301,0x1a0,0xe643,0x4f,0x31b,0x300,
-0x1a1,0xe643,0x6f,0x31b,0x300,0x1a0,0xe643,0x4f,0x31b,0x309,0x1a1,0xe643,0x6f,0x31b,0x309,0x1a0,
-0xe643,0x4f,0x31b,0x303,0x1a1,0xe643,0x6f,0x31b,0x303,0x1a0,0xdc43,0x4f,0x31b,0x323,0x1a1,0xdc43,
-0x6f,0x31b,0x323,0xdc02,0x55,0x323,0xdc02,0x75,0x323,0xe602,0x55,0x309,0xe602,0x75,0x309,0x1af,
-0xe643,0x55,0x31b,0x301,0x1b0,0xe643,0x75,0x31b,0x301,0x1af,0xe643,0x55,0x31b,0x300,0x1b0,0xe643,
-0x75,0x31b,0x300,0x1af,0xe643,0x55,0x31b,0x309,0x1b0,0xe643,0x75,0x31b,0x309,0x1af,0xe643,0x55,
-0x31b,0x303,0x1b0,0xe643,0x75,0x31b,0x303,0x1af,0xdc43,0x55,0x31b,0x323,0x1b0,0xdc43,0x75,0x31b,
-0x323,0xe602,0x59,0x300,0xe602,0x79,0x300,0xdc02,0x59,0x323,0xdc02,0x79,0x323,0xe602,0x59,0x309,
-0xe602,0x79,0x309,0xe602,0x59,0x303,0xe602,0x79,0x303,0x1f10,0xe643,0x3b5,0x313,0x300,0x1f11,0xe643,
-0x3b5,0x314,0x300,0x1f10,0xe643,0x3b5,0x313,0x301,0x1f11,0xe643,0x3b5,0x314,0x301,0x1f18,0xe643,0x395,
-0x313,0x300,0x1f19,0xe643,0x395,0x314,0x300,0x1f18,0xe643,0x395,0x313,0x301,0x1f19,0xe643,0x395,0x314,
-0x301,0x1f30,0xe643,0x3b9,0x313,0x300,0x1f31,0xe643,0x3b9,0x314,0x300,0x1f30,0xe643,0x3b9,0x313,0x301,
-0x1f31,0xe643,0x3b9,0x314,0x301,0x1f30,0xe643,0x3b9,0x313,0x342,0x1f31,0xe643,0x3b9,0x314,0x342,0x1f38,
-0xe643,0x399,0x313,0x300,0x1f39,0xe643,0x399,0x314,0x300,0x1f38,0xe643,0x399,0x313,0x301,0x1f39,0xe643,
-0x399,0x314,0x301,0x1f38,0xe643,0x399,0x313,0x342,0x1f39,0xe643,0x399,0x314,0x342,0x1f40,0xe643,0x3bf,
-0x313,0x300,0x1f41,0xe643,0x3bf,0x314,0x300,0x1f40,0xe643,0x3bf,0x313,0x301,0x1f41,0xe643,0x3bf,0x314,
-0x301,0x1f48,0xe643,0x39f,0x313,0x300,0x1f49,0xe643,0x39f,0x314,0x300,0x1f48,0xe643,0x39f,0x313,0x301,
-0x1f49,0xe643,0x39f,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x300,0x1f51,0xe643,0x3c5,0x314,0x300,0x1f50,
-0xe643,0x3c5,0x313,0x301,0x1f51,0xe643,0x3c5,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x342,0x1f51,0xe643,
-0x3c5,0x314,0x342,0x1f59,0xe643,0x3a5,0x314,0x300,0x1f59,0xe643,0x3a5,0x314,0x301,0x1f59,0xe643,0x3a5,
-0x314,0x342,0xe602,0x3b5,0x300,0xe602,0x3b9,0x300,0xe602,0x3bf,0x300,0xe602,0x3c5,0x300,0x1f00,0xf043,
-0x3b1,0x313,0x345,0x1f01,0xf043,0x3b1,0x314,0x345,0x1f02,0x345,2,0xf044,0x3b1,0x313,0x300,0x345,
-0x1f03,0x345,2,0xf044,0x3b1,0x314,0x300,0x345,0x1f04,0x345,2,0xf044,0x3b1,0x313,0x301,0x345,
-0x1f05,0x345,2,0xf044,0x3b1,0x314,0x301,0x345,0x1f06,0x345,2,0xf044,0x3b1,0x313,0x342,0x345,
-0x1f07,0x345,2,0xf044,0x3b1,0x314,0x342,0x345,0x1f08,0xf043,0x391,0x313,0x345,0x1f09,0xf043,0x391,
-0x314,0x345,0x1f0a,0x345,2,0xf044,0x391,0x313,0x300,0x345,0x1f0b,0x345,2,0xf044,0x391,0x314,
-0x300,0x345,0x1f0c,0x345,2,0xf044,0x391,0x313,0x301,0x345,0x1f0d,0x345,2,0xf044,0x391,0x314,
-0x301,0x345,0x1f0e,0x345,2,0xf044,0x391,0x313,0x342,0x345,0x1f0f,0x345,2,0xf044,0x391,0x314,
-0x342,0x345,0x1f20,0xf043,0x3b7,0x313,0x345,0x1f21,0xf043,0x3b7,0x314,0x345,0x1f22,0x345,2,0xf044,
-0x3b7,0x313,0x300,0x345,0x1f23,0x345,2,0xf044,0x3b7,0x314,0x300,0x345,0x1f24,0x345,2,0xf044,
-0x3b7,0x313,0x301,0x345,0x1f25,0x345,2,0xf044,0x3b7,0x314,0x301,0x345,0x1f26,0x345,2,0xf044,
-0x3b7,0x313,0x342,0x345,0x1f27,0x345,2,0xf044,0x3b7,0x314,0x342,0x345,0x1f28,0xf043,0x397,0x313,
-0x345,0x1f29,0xf043,0x397,0x314,0x345,0x1f2a,0x345,2,0xf044,0x397,0x313,0x300,0x345,0x1f2b,0x345,
-2,0xf044,0x397,0x314,0x300,0x345,0x1f2c,0x345,2,0xf044,0x397,0x313,0x301,0x345,0x1f2d,0x345,
-2,0xf044,0x397,0x314,0x301,0x345,0x1f2e,0x345,2,0xf044,0x397,0x313,0x342,0x345,0x1f2f,0x345,
-2,0xf044,0x397,0x314,0x342,0x345,0x1f60,0xf043,0x3c9,0x313,0x345,0x1f61,0xf043,0x3c9,0x314,0x345,
-0x1f62,0x345,2,0xf044,0x3c9,0x313,0x300,0x345,0x1f63,0x345,2,0xf044,0x3c9,0x314,0x300,0x345,
-0x1f64,0x345,2,0xf044,0x3c9,0x313,0x301,0x345,0x1f65,0x345,2,0xf044,0x3c9,0x314,0x301,0x345,
-0x1f66,0x345,2,0xf044,0x3c9,0x313,0x342,0x345,0x1f67,0x345,2,0xf044,0x3c9,0x314,0x342,0x345,
-0x1f68,0xf043,0x3a9,0x313,0x345,0x1f69,0xf043,0x3a9,0x314,0x345,0x1f6a,0x345,2,0xf044,0x3a9,0x313,
-0x300,0x345,0x1f6b,0x345,2,0xf044,0x3a9,0x314,0x300,0x345,0x1f6c,0x345,2,0xf044,0x3a9,0x313,
-0x301,0x345,0x1f6d,0x345,2,0xf044,0x3a9,0x314,0x301,0x345,0x1f6e,0x345,2,0xf044,0x3a9,0x313,
-0x342,0x345,0x1f6f,0x345,2,0xf044,0x3a9,0x314,0x342,0x345,0xe602,0x3b1,0x306,0xe602,0x3b1,0x304,
-0x1f70,0xf043,0x3b1,0x300,0x345,0xf002,0x3b1,0x345,0x3ac,0xf043,0x3b1,0x301,0x345,0x1fb6,0xf043,0x3b1,
-0x342,0x345,0xe602,0x391,0x306,0xe602,0x391,0x304,0xe602,0x391,0x300,0xf002,0x391,0x345,0xe602,0xa8,
-0x342,0x1f74,0xf043,0x3b7,0x300,0x345,0xf002,0x3b7,0x345,0x3ae,0xf043,0x3b7,0x301,0x345,0x1fc6,0xf043,
-0x3b7,0x342,0x345,0xe602,0x395,0x300,0xe602,0x397,0x300,0xf002,0x397,0x345,0xe602,0x1fbf,0x300,0xe602,
-0x1fbf,0x301,0xe602,0x1fbf,0x342,0xe602,0x3b9,0x306,0xe602,0x3b9,0x304,0x3ca,0xe643,0x3b9,0x308,0x300,
-0xe602,0x3b9,0x342,0x3ca,0xe643,0x3b9,0x308,0x342,0xe602,0x399,0x306,0xe602,0x399,0x304,0xe602,0x399,
-0x300,0xe602,0x1ffe,0x300,0xe602,0x1ffe,0x301,0xe602,0x1ffe,0x342,0xe602,0x3c5,0x306,0xe602,0x3c5,0x304,
-0x3cb,0xe643,0x3c5,0x308,0x300,0xe602,0x3c1,0x313,0xe602,0x3c1,0x314,0xe602,0x3c5,0x342,0x3cb,0xe643,
-0x3c5,0x308,0x342,0xe602,0x3a5,0x306,0xe602,0x3a5,0x304,0xe602,0x3a5,0x300,0xe602,0x3a1,0x314,0xe602,
-0xa8,0x300,0x1f7c,0xf043,0x3c9,0x300,0x345,0xf002,0x3c9,0x345,0x3ce,0xf043,0x3c9,0x301,0x345,0x1ff6,
-0xf043,0x3c9,0x342,0x345,0xe602,0x39f,0x300,0xe602,0x3a9,0x300,0xf002,0x3a9,0x345,0x102,0x2190,0x338,
-0x102,0x2192,0x338,0x102,0x2194,0x338,0x102,0x21d0,0x338,0x102,0x21d4,0x338,0x102,0x21d2,0x338,0x102,
-0x2203,0x338,0x102,0x2208,0x338,0x102,0x220b,0x338,0x102,0x2223,0x338,0x102,0x2225,0x338,0x102,0x223c,
-0x338,0x102,0x2243,0x338,0x102,0x2245,0x338,0x102,0x2248,0x338,0x102,0x3d,0x338,0x102,0x2261,0x338,
-0x102,0x224d,0x338,0x102,0x3c,0x338,0x102,0x3e,0x338,0x102,0x2264,0x338,0x102,0x2265,0x338,0x102,
-0x2272,0x338,0x102,0x2273,0x338,0x102,0x2276,0x338,0x102,0x2277,0x338,0x102,0x227a,0x338,0x102,0x227b,
-0x338,0x102,0x2282,0x338,0x102,0x2283,0x338,0x102,0x2286,0x338,0x102,0x2287,0x338,0x102,0x22a2,0x338,
-0x102,0x22a8,0x338,0x102,0x22a9,0x338,0x102,0x22ab,0x338,0x102,0x227c,0x338,0x102,0x227d,0x338,0x102,
-0x2291,0x338,0x102,0x2292,0x338,0x102,0x22b2,0x338,0x102,0x22b3,0x338,0x102,0x22b4,0x338,0x102,0x22b5,
-0x338,0x802,0x304b,0x3099,0x802,0x304d,0x3099,0x802,0x304f,0x3099,0x802,0x3051,0x3099,0x802,0x3053,0x3099,
-0x802,0x3055,0x3099,0x802,0x3057,0x3099,0x802,0x3059,0x3099,0x802,0x305b,0x3099,0x802,0x305d,0x3099,0x802,
-0x305f,0x3099,0x802,0x3061,0x3099,0x802,0x3064,0x3099,0x802,0x3066,0x3099,0x802,0x3068,0x3099,0x802,0x306f,
-0x3099,0x802,0x306f,0x309a,0x802,0x3072,0x3099,0x802,0x3072,0x309a,0x802,0x3075,0x3099,0x802,0x3075,0x309a,
-0x802,0x3078,0x3099,0x802,0x3078,0x309a,0x802,0x307b,0x3099,0x802,0x307b,0x309a,0x802,0x3046,0x3099,0x802,
-0x309d,0x3099,0x802,0x30ab,0x3099,0x802,0x30ad,0x3099,0x802,0x30af,0x3099,0x802,0x30b1,0x3099,0x802,0x30b3,
-0x3099,0x802,0x30b5,0x3099,0x802,0x30b7,0x3099,0x802,0x30b9,0x3099,0x802,0x30bb,0x3099,0x802,0x30bd,0x3099,
-0x802,0x30bf,0x3099,0x802,0x30c1,0x3099,0x802,0x30c4,0x3099,0x802,0x30c6,0x3099,0x802,0x30c8,0x3099,0x802,
-0x30cf,0x3099,0x802,0x30cf,0x309a,0x802,0x30d2,0x3099,0x802,0x30d2,0x309a,0x802,0x30d5,0x3099,0x802,0x30d5,
-0x309a,0x802,0x30d8,0x3099,0x802,0x30d8,0x309a,0x802,0x30db,0x3099,0x802,0x30db,0x309a,0x802,0x30a6,0x3099,
-0x802,0x30ef,0x3099,0x802,0x30f0,0x3099,0x802,0x30f1,0x3099,0x802,0x30f2,0x3099,0x802,0x30fd,0x3099,0x704,
-0xd804,0xdc99,0xd804,0xdcba,0x704,0xd804,0xdc9b,0xd804,0xdcba,0x704,0xd804,0xdca5,0xd804,0xdcba,4,0xd804,
-0xdd31,0xd804,0xdd27,4,0xd804,0xdd32,0xd804,0xdd27,4,0xd804,0xdf47,0xd804,0xdf3e,4,0xd804,0xdf47,
-0xd804,0xdf57,4,0xd805,0xdcb9,0xd805,0xdcba,4,0xd805,0xdcb9,0xd805,0xdcb0,4,0xd805,0xdcb9,0xd805,
-0xdcbd,4,0xd805,0xddb8,0xd805,0xddaf,4,0xd805,0xddb9,0xd805,0xddaf,4,0xd806,0xdd35,0xd806,0xdd30,
-1,0x2b9,1,0x3b,1,0xb7,0x702,0x915,0x93c,0x702,0x916,0x93c,0x702,0x917,0x93c,0x702,
-0x91c,0x93c,0x702,0x921,0x93c,0x702,0x922,0x93c,0x702,0x92b,0x93c,0x702,0x92f,0x93c,0x702,0x9a1,
-0x9bc,0x702,0x9a2,0x9bc,0x702,0x9af,0x9bc,0x702,0xa32,0xa3c,0x702,0xa38,0xa3c,0x702,0xa16,0xa3c,
-0x702,0xa17,0xa3c,0x702,0xa1c,0xa3c,0x702,0xa2b,0xa3c,0x702,0xb21,0xb3c,0x702,0xb22,0xb3c,2,
-0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7,2,0xf5b,0xfb7,2,0xf40,
-0xfb5,0x8202,0xfb2,0xf80,0x8202,0xfb3,0xf80,2,0xf92,0xfb7,2,0xf9c,0xfb7,2,0xfa1,0xfb7,
-2,0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,1,0x3b9,1,0x60,1,0xb4,1,
-0x3a9,1,0x4b,1,0x3008,1,0x3009,0x102,0x2add,0x338,1,0x8c48,1,0x66f4,1,0x8eca,
-1,0x8cc8,1,0x6ed1,1,0x4e32,1,0x53e5,1,0x9f9c,1,0x5951,1,0x91d1,1,0x5587,
-1,0x5948,1,0x61f6,1,0x7669,1,0x7f85,1,0x863f,1,0x87ba,1,0x88f8,1,0x908f,
-1,0x6a02,1,0x6d1b,1,0x70d9,1,0x73de,1,0x843d,1,0x916a,1,0x99f1,1,0x4e82,
-1,0x5375,1,0x6b04,1,0x721b,1,0x862d,1,0x9e1e,1,0x5d50,1,0x6feb,1,0x85cd,
-1,0x8964,1,0x62c9,1,0x81d8,1,0x881f,1,0x5eca,1,0x6717,1,0x6d6a,1,0x72fc,
-1,0x90ce,1,0x4f86,1,0x51b7,1,0x52de,1,0x64c4,1,0x6ad3,1,0x7210,1,0x76e7,
-1,0x8001,1,0x8606,1,0x865c,1,0x8def,1,0x9732,1,0x9b6f,1,0x9dfa,1,0x788c,
-1,0x797f,1,0x7da0,1,0x83c9,1,0x9304,1,0x9e7f,1,0x8ad6,1,0x58df,1,0x5f04,
-1,0x7c60,1,0x807e,1,0x7262,1,0x78ca,1,0x8cc2,1,0x96f7,1,0x58d8,1,0x5c62,
-1,0x6a13,1,0x6dda,1,0x6f0f,1,0x7d2f,1,0x7e37,1,0x964b,1,0x52d2,1,0x808b,
-1,0x51dc,1,0x51cc,1,0x7a1c,1,0x7dbe,1,0x83f1,1,0x9675,1,0x8b80,1,0x62cf,
-1,0x8afe,1,0x4e39,1,0x5be7,1,0x6012,1,0x7387,1,0x7570,1,0x5317,1,0x78fb,
-1,0x4fbf,1,0x5fa9,1,0x4e0d,1,0x6ccc,1,0x6578,1,0x7d22,1,0x53c3,1,0x585e,
-1,0x7701,1,0x8449,1,0x8aaa,1,0x6bba,1,0x8fb0,1,0x6c88,1,0x62fe,1,0x82e5,
-1,0x63a0,1,0x7565,1,0x4eae,1,0x5169,1,0x51c9,1,0x6881,1,0x7ce7,1,0x826f,
-1,0x8ad2,1,0x91cf,1,0x52f5,1,0x5442,1,0x5973,1,0x5eec,1,0x65c5,1,0x6ffe,
-1,0x792a,1,0x95ad,1,0x9a6a,1,0x9e97,1,0x9ece,1,0x529b,1,0x66c6,1,0x6b77,
-1,0x8f62,1,0x5e74,1,0x6190,1,0x6200,1,0x649a,1,0x6f23,1,0x7149,1,0x7489,
-1,0x79ca,1,0x7df4,1,0x806f,1,0x8f26,1,0x84ee,1,0x9023,1,0x934a,1,0x5217,
-1,0x52a3,1,0x54bd,1,0x70c8,1,0x88c2,1,0x5ec9,1,0x5ff5,1,0x637b,1,0x6bae,
-1,0x7c3e,1,0x7375,1,0x4ee4,1,0x56f9,1,0x5dba,1,0x601c,1,0x73b2,1,0x7469,
-1,0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1,0x9818,1,0x4f8b,1,0x79ae,
-1,0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1,0x5bee,1,0x5c3f,1,0x6599,
-1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1,0x6688,1,0x962e,1,0x5289,
-1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1,0x7559,1,0x786b,1,0x7d10,
-1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1,0x5d19,1,0x6dea,1,0x8f2a,
-1,0x5f8b,1,0x6144,1,0x6817,1,0x9686,1,0x5229,1,0x540f,1,0x5c65,1,0x6613,
-1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,0x75e2,1,0x7f79,1,0x88cf,1,0x88e1,
-1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,0x541d,1,0x71d0,1,0x7498,1,0x85fa,
-1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,0x6dcb,1,0x81e8,1,0x7acb,1,0x7b20,
-1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,0x4ec0,1,0x8336,1,0x523a,1,0x5207,
-1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,0x6d1e,1,0x66b4,1,0x8f3b,1,0x884c,
-1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,0x55c0,1,0x585a,1,0x6674,1,0x51de,
-1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,0x7965,1,0x798f,1,0x9756,1,0x7cbe,
-1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,0x90fd,1,0x98ef,1,0x98fc,1,0x9928,
-1,0x9db4,1,0x90de,1,0x96b7,1,0x4fae,1,0x50e7,1,0x514d,1,0x52c9,1,0x52e4,
-1,0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1,0x58a8,1,0x5c64,1,0x5c6e,
-1,0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1,0x65e2,1,0x6691,1,0x6885,
-1,0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1,0x7422,1,0x7891,1,0x793e,
-1,0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1,0x798d,1,0x798e,1,0x7a40,
-1,0x7a81,1,0x7bc0,1,0x7e09,1,0x7e41,1,0x7f72,1,0x8005,1,0x81ed,1,0x8279,
-1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,0x8b39,1,0x8cd3,1,0x8d08,1,0x8fb6,
-1,0x96e3,1,0x97ff,1,0x983b,1,0x6075,2,0xd850,0xdeee,1,0x8218,1,0x4e26,1,
-0x51b5,1,0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7,1,0x52fa,1,0x5555,1,
-0x5599,1,0x55e2,1,0x58b3,1,0x5944,1,0x5954,1,0x5a62,1,0x5b28,1,0x5ed2,1,
-0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,0x6108,1,0x6160,1,0x6234,1,
-0x63c4,1,0x641c,1,0x6452,1,0x6556,1,0x671b,1,0x6756,1,0x6b79,1,0x6edb,1,
-0x6ecb,1,0x701e,1,0x77a7,1,0x7235,1,0x72af,1,0x7471,1,0x7506,1,0x753b,1,
-0x761d,1,0x761f,1,0x76db,1,0x76f4,1,0x774a,1,0x7740,1,0x78cc,1,0x7ab1,1,
-0x7c7b,1,0x7d5b,1,0x7f3e,1,0x8352,1,0x83ef,1,0x8779,1,0x8941,1,0x8986,1,
-0x8abf,1,0x8acb,1,0x8aed,1,0x8b8a,1,0x8f38,1,0x9072,1,0x9199,1,0x9276,1,
-0x967c,1,0x97db,1,0x980b,1,0x9b12,2,0xd84a,0xdc4a,2,0xd84a,0xdc44,2,0xd84c,0xdfd5,
-1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,0xd857,0xdcd0,2,0xd85f,0xded3,1,
-0x9f43,1,0x9f8e,0xe02,0x5d9,0x5b4,0x1102,0x5f2,0x5b7,0x1802,0x5e9,0x5c1,0x1902,0x5e9,0x5c2,0xfb49,
-0x1843,0x5e9,0x5bc,0x5c1,0xfb49,0x1943,0x5e9,0x5bc,0x5c2,0x1102,0x5d0,0x5b7,0x1202,0x5d0,0x5b8,0x1502,
-0x5d0,0x5bc,0x1502,0x5d1,0x5bc,0x1502,0x5d2,0x5bc,0x1502,0x5d3,0x5bc,0x1502,0x5d4,0x5bc,0x1502,0x5d5,
-0x5bc,0x1502,0x5d6,0x5bc,0x1502,0x5d8,0x5bc,0x1502,0x5d9,0x5bc,0x1502,0x5da,0x5bc,0x1502,0x5db,0x5bc,
-0x1502,0x5dc,0x5bc,0x1502,0x5de,0x5bc,0x1502,0x5e0,0x5bc,0x1502,0x5e1,0x5bc,0x1502,0x5e3,0x5bc,0x1502,
-0x5e4,0x5bc,0x1502,0x5e6,0x5bc,0x1502,0x5e7,0x5bc,0x1502,0x5e8,0x5bc,0x1502,0x5e9,0x5bc,0x1502,0x5ea,
-0x5bc,0x1302,0x5d5,0x5b9,0x1702,0x5d1,0x5bf,0x1702,0x5db,0x5bf,0x1702,0x5e4,0x5bf,0xd804,0xd834,0xdd57,
-0xd834,0xdd65,0xd804,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd5f,0xd834,0xdd6e,4,0xd846,0xd834,0xdd58,0xd834,
-0xdd65,0xd834,0xdd6e,0xd834,0xdd5f,0xd834,0xdd6f,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6f,0xd834,
-0xdd5f,0xd834,0xdd70,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd70,0xd834,0xdd5f,0xd834,0xdd71,4,
-0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0xd834,0xdd5f,0xd834,0xdd72,4,0xd846,0xd834,0xdd58,0xd834,
-0xdd65,0xd834,0xdd72,0xd804,0xd834,0xddb9,0xd834,0xdd65,0xd804,0xd834,0xddba,0xd834,0xdd65,0xd834,0xddbb,0xd834,
-0xdd6e,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbc,0xd834,0xdd6e,4,0xd846,0xd834,
-0xddba,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbb,0xd834,0xdd6f,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834,
-0xdd6f,0xd834,0xddbc,0xd834,0xdd6f,4,0xd846,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6f,1,0x4e3d,1,
-0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fbb,1,0x5002,1,0x507a,1,0x5099,
-1,0x50cf,1,0x349e,2,0xd841,0xde3a,1,0x5154,1,0x5164,1,0x5177,2,0xd841,0xdd1c,
-1,0x34b9,1,0x5167,1,0x518d,2,0xd841,0xdd4b,1,0x5197,1,0x51a4,1,0x4ecc,1,
-0x51ac,2,0xd864,0xdddf,1,0x51f5,1,0x5203,1,0x34df,1,0x523b,1,0x5246,1,0x5272,
-1,0x5277,1,0x3515,1,0x5305,1,0x5306,1,0x5349,1,0x535a,1,0x5373,1,0x537d,
-1,0x537f,2,0xd842,0xde2c,1,0x7070,1,0x53ca,1,0x53df,2,0xd842,0xdf63,1,0x53eb,
-1,0x53f1,1,0x5406,1,0x549e,1,0x5438,1,0x5448,1,0x5468,1,0x54a2,1,0x54f6,
-1,0x5510,1,0x5553,1,0x5563,1,0x5584,1,0x55ab,1,0x55b3,1,0x55c2,1,0x5716,
-1,0x5717,1,0x5651,1,0x5674,1,0x58ee,1,0x57ce,1,0x57f4,1,0x580d,1,0x578b,
-1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,0x58f2,1,0x58f7,1,0x5906,1,
-0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,0xdeea,1,0x59ec,1,0x5a1b,1,
-0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,0x5b08,1,0x5b3e,2,0xd846,0xddc8,
-1,0x5bc3,1,0x5bd8,1,0x5bf3,2,0xd846,0xdf18,1,0x5bff,1,0x5c06,1,0x5f53,1,
-0x5c22,1,0x3781,1,0x5c60,1,0x5cc0,1,0x5c8d,2,0xd847,0xdde4,1,0x5d43,2,0xd847,
-0xdde6,1,0x5d6e,1,0x5d6b,1,0x5d7c,1,0x5de1,1,0x5de2,1,0x382f,1,0x5dfd,1,
-0x5e28,1,0x5e3d,1,0x5e69,1,0x3862,2,0xd848,0xdd83,1,0x387c,1,0x5eb0,1,0x5eb3,
-1,0x5eb6,2,0xd868,0xdf92,1,0x5efe,2,0xd848,0xdf31,1,0x8201,1,0x5f22,1,0x38c7,
-2,0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1,0x38e3,1,0x5f9a,1,0x5fcd,
-1,0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,2,0xd849,0xded4,1,0x60c7,1,
-0x6148,1,0x614c,1,0x617a,1,0x61b2,1,0x61a4,1,0x61af,1,0x61de,1,0x6210,1,
-0x621b,1,0x625d,1,0x62b1,1,0x62d4,1,0x6350,2,0xd84a,0xdf0c,1,0x633d,1,0x62fc,
-1,0x6368,1,0x6383,1,0x63e4,2,0xd84a,0xdff1,1,0x6422,1,0x63c5,1,0x63a9,1,
-0x3a2e,1,0x6469,1,0x647e,1,0x649d,1,0x6477,1,0x3a6c,1,0x656c,2,0xd84c,0xdc0a,
-1,0x65e3,1,0x66f8,1,0x6649,1,0x3b19,1,0x3b08,1,0x3ae4,1,0x5192,1,0x5195,
-1,0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6721,1,0x675e,1,0x6753,2,0xd84c,
-0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,2,0xd84d,0xdc6d,1,0x688e,1,0x681f,
-1,0x6914,1,0x6942,1,0x69a3,1,0x69ea,1,0x6aa8,2,0xd84d,0xdea3,1,0x6adb,1,
-0x3c18,1,0x6b21,2,0xd84e,0xdca7,1,0x6b54,1,0x3c4e,1,0x6b72,1,0x6b9f,1,0x6bbb,
-2,0xd84e,0xde8d,2,0xd847,0xdd0b,2,0xd84e,0xdefa,1,0x6c4e,2,0xd84f,0xdcbc,1,0x6cbf,
-1,0x6ccd,1,0x6c67,1,0x6d16,1,0x6d3e,1,0x6d69,1,0x6d78,1,0x6d85,2,0xd84f,
-0xdd1e,1,0x6d34,1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ec7,2,0xd84f,0xded1,1,0x6df9,
-1,0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1,0x7039,1,0x701b,1,0x3d96,
-1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25,1,0x7145,2,0xd850,0xde63,
-1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7250,2,0xd851,0xde08,1,0x7280,1,0x7295,
-2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,0x738b,1,0x3eac,1,0x73a5,1,0x3eb8,
-1,0x7447,1,0x745c,1,0x7485,1,0x74ca,1,0x3f1b,1,0x7524,2,0xd853,0xdc36,1,
-0x753e,2,0xd853,0xdc92,2,0xd848,0xdd9f,1,0x7610,2,0xd853,0xdfa1,2,0xd853,0xdfb8,2,
-0xd854,0xdc44,1,0x3ffc,1,0x4008,2,0xd854,0xdcf3,2,0xd854,0xdcf2,2,0xd854,0xdd19,2,
-0xd854,0xdd33,1,0x771e,1,0x771f,1,0x778b,1,0x4046,1,0x4096,2,0xd855,0xdc1d,1,
-0x784e,1,0x40e3,2,0xd855,0xde26,2,0xd855,0xde9a,2,0xd855,0xdec5,1,0x79eb,1,0x412f,
-1,0x7a4a,1,0x7a4f,2,0xd856,0xdd7c,2,0xd856,0xdea7,1,0x7aee,1,0x4202,2,0xd856,
-0xdfab,1,0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1,0x7cd2,1,0x42a0,1,0x7ce8,
-1,0x7ce3,1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301,1,0x7dc7,1,0x7e02,1,
-0x7e45,1,0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359,2,0xd858,0xded9,1,0x7f7a,
-2,0xd858,0xdf3e,1,0x7f95,1,0x7ffa,2,0xd859,0xdcda,2,0xd859,0xdd23,1,0x8060,2,
-0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2,1,0x8103,1,0x440b,1,
-0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c,0xdf93,2,0xd84c,0xdf9c,1,
-0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,0x829d,1,0x52b3,1,0x82b1,1,
-0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x831d,1,0x8363,1,0x83ad,1,0x8323,
-1,0x83bd,1,0x83e7,1,0x8353,1,0x83ca,1,0x83cc,1,0x83dc,2,0xd85b,0xdc36,2,
-0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,0x452b,1,0x84f1,1,0x84f3,1,0x8516,2,0xd85c,0xdfca,
-1,0x8564,2,0xd85b,0xdf2c,1,0x455d,1,0x4561,2,0xd85b,0xdfb1,2,0xd85c,0xdcd2,1,
-0x456b,1,0x8650,1,0x8667,1,0x8669,1,0x86a9,1,0x8688,1,0x870e,1,0x86e2,1,
-0x8728,1,0x876b,1,0x8786,1,0x45d7,1,0x87e1,1,0x8801,1,0x45f9,1,0x8860,1,
-0x8863,2,0xd85d,0xde67,1,0x88d7,1,0x88de,1,0x4635,1,0x88fa,1,0x34bb,2,0xd85e,
-0xdcae,2,0xd85e,0xdd66,1,0x46be,1,0x46c7,1,0x8aa0,1,0x8c55,2,0xd85f,0xdca8,1,
-0x8cab,1,0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2,0xd842,0xdc04,1,0x8dcb,1,
-0x8dbc,1,0x8df0,2,0xd842,0xdcde,1,0x8ed4,2,0xd861,0xddd2,2,0xd861,0xdded,1,0x9094,
-1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238,1,0x92d7,1,0x92d8,1,
-0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1,0x4995,1,0x95b7,2,0xd863,
-0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864,0xdd45,2,0xd864,0xde1a,1,
-0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2,0xd865,0xdc96,1,0x9829,2,
-0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,1,0x99a7,1,0x99c2,1,0x99fe,1,0x4bce,
-2,0xd866,0xdf30,1,0x9c40,1,0x9cfd,1,0x4cce,1,0x4ced,1,0x9d67,2,0xd868,0xdcce,
-1,0x4cf8,2,0xd868,0xdd05,2,0xd868,0xde0e,2,0xd868,0xde91,1,0x9ebb,1,0x4d56,1,
-0x9ef9,1,0x9efe,1,0x9f05,1,0x9f0f,1,0x9f16,1,0x9f3b,2,0xd869,0xde00,0x3ac,0xe642,
-0x3b1,0x301,0x3ad,0xe642,0x3b5,0x301,0x3ae,0xe642,0x3b7,0x301,0x3af,0xe642,0x3b9,0x301,0x3cc,0xe642,
-0x3bf,0x301,0x3cd,0xe642,0x3c5,0x301,0x3ce,0xe642,0x3c9,0x301,0x386,0xe642,0x391,0x301,0x388,0xe642,
-0x395,0x301,0x389,0xe642,0x397,0x301,0x390,1,0xe643,0x3b9,0x308,0x301,0x38a,0xe642,0x399,0x301,
-0x3b0,1,0xe643,0x3c5,0x308,0x301,0x38e,0xe642,0x3a5,0x301,0x385,0xe642,0xa8,0x301,0x38c,0xe642,
-0x39f,0x301,0x38f,0xe642,0x3a9,0x301,0xc5,0xe642,0x41,0x30a,0xe6e6,0xe681,0x300,0xe6e6,0xe681,0x301,
-0xe6e6,0xe681,0x313,0xe6e6,0xe682,0x308,0x301,0x8100,0x8282,0xf71,0xf72,0x8100,0x8482,0xf71,0xf74,0x8100,
-0x8282,0xf71,0xf80,0
+0xe132,0x61ee,0xe132,0x61f0,0xe132,0x61f2,0xe132,0x61f4,0xe132,0x61fc,0x860f,2,0xb92,0x860f,2,0xbc8,
+0xb489,0x2e82,0x2134,0xb489,0x2e82,0x2138,0xb489,0x2e82,0x2156,0xb489,0x49c2,0x225c,0xb489,0x49c2,0x225e,0x3489,
+0xcf82,0x2696,0xb489,0xd5c2,0x2698,0xb489,0xf242,0x2706,0xb489,0xeec2,0x270a,0xb489,0xf082,0x271c,0xb489,0xf242,
+0x2722,0x348b,0x2c02,0x2978,0x348b,0x2e82,0x2976,0xb48b,0x2f42,0x297c,0xb48b,0x6bc2,0x2b74,0xb48b,0x6bc2,0x2b76,
+0xb48d,0x4c02,0x3270,0xb4b7,0x59c2,0xdad3,2,0xe602,0x41,0x302,0x600,0x3d4c,0x602,0x3d48,0x606,0x3d54,
+0x8612,0x3d50,0xe602,0x41,0x308,0x8608,0x3bc,0xe602,0x41,0x30a,0x8602,0x3f4,0xca02,0x43,0x327,0x8602,
+0x3c10,0xe602,0x45,0x302,0x600,0x3d80,0x602,0x3d7c,0x606,0x3d88,0x8612,0x3d84,0xe602,0x49,0x308,0x8602,
+0x3c5c,0xe602,0x4f,0x302,0x600,0x3da4,0x602,0x3da0,0x606,0x3dac,0x8612,0x3da8,0xe602,0x4f,0x303,0x602,
+0x3c98,0x608,0x458,0x8610,0x3c9c,0xe602,0x4f,0x308,0x8608,0x454,0xe602,0x55,0x308,0x600,0x3b6,0x602,
+0x3ae,0x608,0x3aa,0x8618,0x3b2,0xe602,0x61,0x302,0x600,0x3d4e,0x602,0x3d4a,0x606,0x3d56,0x8612,0x3d52,
+0xe602,0x61,0x308,0x8608,0x3be,0xe602,0x61,0x30a,0x8602,0x3f6,0xca02,0x63,0x327,0x8602,0x3c12,0xe602,
+0x65,0x302,0x600,0x3d82,0x602,0x3d7e,0x606,0x3d8a,0x8612,0x3d86,0xe602,0x69,0x308,0x8602,0x3c5e,0xe602,
+0x6f,0x302,0x600,0x3da6,0x602,0x3da2,0x606,0x3dae,0x8612,0x3daa,0xe602,0x6f,0x303,0x602,0x3c9a,0x608,
+0x45a,0x8610,0x3c9e,0xe602,0x6f,0x308,0x8608,0x456,0xe602,0x75,0x308,0x600,0x3b8,0x602,0x3b0,0x608,
+0x3ac,0x8618,0x3b4,0xe602,0x41,0x306,0x600,0x3d60,0x602,0x3d5c,0x606,0x3d68,0x8612,0x3d64,0xe602,0x61,
+0x306,0x600,0x3d62,0x602,0x3d5e,0x606,0x3d6a,0x8612,0x3d66,0xe602,0x45,0x304,0x600,0x3c28,0x8602,0x3c2c,
+0xe602,0x65,0x304,0x600,0x3c2a,0x8602,0x3c2e,0xe602,0x4f,0x304,0x600,0x3ca0,0x8602,0x3ca4,0xe602,0x6f,
+0x304,0x600,0x3ca2,0x8602,0x3ca6,0xe602,0x53,0x301,0x860e,0x3cc8,0xe602,0x73,0x301,0x860e,0x3cca,0xe602,
+0x53,0x30c,0x860e,0x3ccc,0xe602,0x73,0x30c,0x860e,0x3cce,0xe602,0x55,0x303,0x8602,0x3cf0,0xe602,0x75,
+0x303,0x8602,0x3cf2,0xe602,0x55,0x304,0x8610,0x3cf4,0xe602,0x75,0x304,0x8610,0x3cf6,0xd802,0x4f,0x31b,
+0x600,0x3db8,0x602,0x3db4,0x606,0x3dc0,0x612,0x3dbc,0x8646,0x3dc4,0xd802,0x6f,0x31b,0x600,0x3dba,0x602,
+0x3db6,0x606,0x3dc2,0x612,0x3dbe,0x8646,0x3dc6,0xd802,0x55,0x31b,0x600,0x3dd4,0x602,0x3dd0,0x606,0x3ddc,
+0x612,0x3dd8,0x8646,0x3de0,0xd802,0x75,0x31b,0x600,0x3dd6,0x602,0x3dd2,0x606,0x3dde,0x612,0x3dda,0x8646,
+0x3de2,0xca02,0x4f,0x328,0x8608,0x3d8,0xca02,0x6f,0x328,0x8608,0x3da,0xe602,0x41,0x307,0x8608,0x3c0,
+0xe602,0x61,0x307,0x8608,0x3c2,0xca02,0x45,0x327,0x860c,0x3c38,0xca02,0x65,0x327,0x860c,0x3c3a,0xe602,
+0x4f,0x307,0x8608,0x460,0xe602,0x6f,0x307,0x8608,0x462,0xe602,0x3b1,0x301,0x868a,0x3f68,0xe602,0x3b7,
+0x301,0x868a,0x3f88,0xe602,0x3b9,0x308,0x600,0x3fa4,0x602,0x720,0x8684,0x3fae,0xe602,0x3c5,0x308,0x600,
+0x3fc4,0x602,0x760,0x8684,0x3fce,0xe602,0x3c9,0x301,0x868a,0x3fe8,2,0xcc6,0xcc2,0x99aa,0x1996,2,
+0xdd9,0xdcf,0x9b94,0x1bba,0xdc02,0x4c,0x323,0x8608,0x3c70,0xdc02,0x6c,0x323,0x8608,0x3c72,0xdc02,0x52,
+0x323,0x8608,0x3cb8,0xdc02,0x72,0x323,0x8608,0x3cba,0xdc02,0x53,0x323,0x860e,0x3cd0,0xdc02,0x73,0x323,
+0x860e,0x3cd2,0xdc02,0x41,0x323,0x604,0x3d58,0x860c,0x3d6c,0xdc02,0x61,0x323,0x604,0x3d5a,0x860c,0x3d6e,
+0xdc02,0x45,0x323,0x8604,0x3d8c,0xdc02,0x65,0x323,0x8604,0x3d8e,0xdc02,0x4f,0x323,0x8604,0x3db0,0xdc02,
+0x6f,0x323,0x8604,0x3db2,0xe602,0x3b1,0x313,0x600,0x3e05,0x602,0x3e09,0x684,0x3e0d,0x868a,0x3f00,0xe602,
+0x3b1,0x314,0x600,0x3e07,0x602,0x3e0b,0x684,0x3e0f,0x868a,0x3f02,0x1f00,0xe643,0x3b1,0x313,0x300,0x868a,
+0x3f04,0x1f01,0xe643,0x3b1,0x314,0x300,0x868a,0x3f06,0x1f00,0xe643,0x3b1,0x313,0x301,0x868a,0x3f08,0x1f01,
+0xe643,0x3b1,0x314,0x301,0x868a,0x3f0a,0x1f00,0xe643,0x3b1,0x313,0x342,0x868a,0x3f0c,0x1f01,0xe643,0x3b1,
+0x314,0x342,0x868a,0x3f0e,0xe602,0x391,0x313,0x600,0x3e15,0x602,0x3e19,0x684,0x3e1d,0x868a,0x3f10,0xe602,
+0x391,0x314,0x600,0x3e17,0x602,0x3e1b,0x684,0x3e1f,0x868a,0x3f12,0x1f08,0xe643,0x391,0x313,0x300,0x868a,
+0x3f14,0x1f09,0xe643,0x391,0x314,0x300,0x868a,0x3f16,0x1f08,0xe643,0x391,0x313,0x301,0x868a,0x3f18,0x1f09,
+0xe643,0x391,0x314,0x301,0x868a,0x3f1a,0x1f08,0xe643,0x391,0x313,0x342,0x868a,0x3f1c,0x1f09,0xe643,0x391,
+0x314,0x342,0x868a,0x3f1e,0xe602,0x3b5,0x313,0x600,0x3e24,0x8602,0x3e28,0xe602,0x3b5,0x314,0x600,0x3e26,
+0x8602,0x3e2a,0xe602,0x395,0x313,0x600,0x3e34,0x8602,0x3e38,0xe602,0x395,0x314,0x600,0x3e36,0x8602,0x3e3a,
+0xe602,0x3b7,0x313,0x600,0x3e45,0x602,0x3e49,0x684,0x3e4d,0x868a,0x3f20,0xe602,0x3b7,0x314,0x600,0x3e47,
+0x602,0x3e4b,0x684,0x3e4f,0x868a,0x3f22,0x1f20,0xe643,0x3b7,0x313,0x300,0x868a,0x3f24,0x1f21,0xe643,0x3b7,
+0x314,0x300,0x868a,0x3f26,0x1f20,0xe643,0x3b7,0x313,0x301,0x868a,0x3f28,0x1f21,0xe643,0x3b7,0x314,0x301,
+0x868a,0x3f2a,0x1f20,0xe643,0x3b7,0x313,0x342,0x868a,0x3f2c,0x1f21,0xe643,0x3b7,0x314,0x342,0x868a,0x3f2e,
+0xe602,0x397,0x313,0x600,0x3e55,0x602,0x3e59,0x684,0x3e5d,0x868a,0x3f30,0xe602,0x397,0x314,0x600,0x3e57,
+0x602,0x3e5b,0x684,0x3e5f,0x868a,0x3f32,0x1f28,0xe643,0x397,0x313,0x300,0x868a,0x3f34,0x1f29,0xe643,0x397,
+0x314,0x300,0x868a,0x3f36,0x1f28,0xe643,0x397,0x313,0x301,0x868a,0x3f38,0x1f29,0xe643,0x397,0x314,0x301,
+0x868a,0x3f3a,0x1f28,0xe643,0x397,0x313,0x342,0x868a,0x3f3c,0x1f29,0xe643,0x397,0x314,0x342,0x868a,0x3f3e,
+0xe602,0x3b9,0x313,0x600,0x3e64,0x602,0x3e68,0x8684,0x3e6c,0xe602,0x3b9,0x314,0x600,0x3e66,0x602,0x3e6a,
+0x8684,0x3e6e,0xe602,0x399,0x313,0x600,0x3e74,0x602,0x3e78,0x8684,0x3e7c,0xe602,0x399,0x314,0x600,0x3e76,
+0x602,0x3e7a,0x8684,0x3e7e,0xe602,0x3bf,0x313,0x600,0x3e84,0x8602,0x3e88,0xe602,0x3bf,0x314,0x600,0x3e86,
+0x8602,0x3e8a,0xe602,0x39f,0x313,0x600,0x3e94,0x8602,0x3e98,0xe602,0x39f,0x314,0x600,0x3e96,0x8602,0x3e9a,
+0xe602,0x3c5,0x313,0x600,0x3ea4,0x602,0x3ea8,0x8684,0x3eac,0xe602,0x3c5,0x314,0x600,0x3ea6,0x602,0x3eaa,
+0x8684,0x3eae,0xe602,0x3a5,0x314,0x600,0x3eb6,0x602,0x3eba,0x8684,0x3ebe,0xe602,0x3c9,0x313,0x600,0x3ec5,
+0x602,0x3ec9,0x684,0x3ecd,0x868a,0x3f40,0xe602,0x3c9,0x314,0x600,0x3ec7,0x602,0x3ecb,0x684,0x3ecf,0x868a,
+0x3f42,0x1f60,0xe643,0x3c9,0x313,0x300,0x868a,0x3f44,0x1f61,0xe643,0x3c9,0x314,0x300,0x868a,0x3f46,0x1f60,
+0xe643,0x3c9,0x313,0x301,0x868a,0x3f48,0x1f61,0xe643,0x3c9,0x314,0x301,0x868a,0x3f4a,0x1f60,0xe643,0x3c9,
+0x313,0x342,0x868a,0x3f4c,0x1f61,0xe643,0x3c9,0x314,0x342,0x868a,0x3f4e,0xe602,0x3a9,0x313,0x600,0x3ed5,
+0x602,0x3ed9,0x684,0x3edd,0x868a,0x3f50,0xe602,0x3a9,0x314,0x600,0x3ed7,0x602,0x3edb,0x684,0x3edf,0x868a,
+0x3f52,0x1f68,0xe643,0x3a9,0x313,0x300,0x868a,0x3f54,0x1f69,0xe643,0x3a9,0x314,0x300,0x868a,0x3f56,0x1f68,
+0xe643,0x3a9,0x313,0x301,0x868a,0x3f58,0x1f69,0xe643,0x3a9,0x314,0x301,0x868a,0x3f5a,0x1f68,0xe643,0x3a9,
+0x313,0x342,0x868a,0x3f5c,0x1f69,0xe643,0x3a9,0x314,0x342,0x868a,0x3f5e,0xe602,0x3b1,0x300,0x868a,0x3f64,
+0xe602,0x3b7,0x300,0x868a,0x3f84,0xe602,0x3c9,0x300,0x868a,0x3fe4,0xe602,0x3b1,0x342,0x868a,0x3f6e,0xe602,
+0x3b7,0x342,0x868a,0x3f8e,0xe602,0x3c9,0x342,0x868a,0x3fee,4,0xd81b,0xdd63,0xd81b,0xdd67,0xb4b7,0x59c2,
+0xdad4,3,0xe602,0x41,0x300,0xe602,0x41,0x301,0xe602,0x41,0x303,0xe602,0x45,0x300,0xe602,0x45,
+0x301,0xe602,0x45,0x308,0xe602,0x49,0x300,0xe602,0x49,0x301,0xe602,0x49,0x302,0xe602,0x4e,0x303,
+0xe602,0x4f,0x300,0xe602,0x4f,0x301,0xe602,0x55,0x300,0xe602,0x55,0x301,0xe602,0x55,0x302,0xe602,
+0x59,0x301,0xe602,0x61,0x300,0xe602,0x61,0x301,0xe602,0x61,0x303,0xe602,0x65,0x300,0xe602,0x65,
+0x301,0xe602,0x65,0x308,0xe602,0x69,0x300,0xe602,0x69,0x301,0xe602,0x69,0x302,0xe602,0x6e,0x303,
+0xe602,0x6f,0x300,0xe602,0x6f,0x301,0xe602,0x75,0x300,0xe602,0x75,0x301,0xe602,0x75,0x302,0xe602,
+0x79,0x301,0xe602,0x79,0x308,0xe602,0x41,0x304,0xe602,0x61,0x304,0xca02,0x41,0x328,0xca02,0x61,
+0x328,0xe602,0x43,0x301,0xe602,0x63,0x301,0xe602,0x43,0x302,0xe602,0x63,0x302,0xe602,0x43,0x307,
+0xe602,0x63,0x307,0xe602,0x43,0x30c,0xe602,0x63,0x30c,0xe602,0x44,0x30c,0xe602,0x64,0x30c,0xe602,
+0x45,0x306,0xe602,0x65,0x306,0xe602,0x45,0x307,0xe602,0x65,0x307,0xca02,0x45,0x328,0xca02,0x65,
+0x328,0xe602,0x45,0x30c,0xe602,0x65,0x30c,0xe602,0x47,0x302,0xe602,0x67,0x302,0xe602,0x47,0x306,
+0xe602,0x67,0x306,0xe602,0x47,0x307,0xe602,0x67,0x307,0xca02,0x47,0x327,0xca02,0x67,0x327,0xe602,
+0x48,0x302,0xe602,0x68,0x302,0xe602,0x49,0x303,0xe602,0x69,0x303,0xe602,0x49,0x304,0xe602,0x69,
+0x304,0xe602,0x49,0x306,0xe602,0x69,0x306,0xca02,0x49,0x328,0xca02,0x69,0x328,0xe602,0x49,0x307,
+0xe602,0x4a,0x302,0xe602,0x6a,0x302,0xca02,0x4b,0x327,0xca02,0x6b,0x327,0xe602,0x4c,0x301,0xe602,
+0x6c,0x301,0xca02,0x4c,0x327,0xca02,0x6c,0x327,0xe602,0x4c,0x30c,0xe602,0x6c,0x30c,0xe602,0x4e,
+0x301,0xe602,0x6e,0x301,0xca02,0x4e,0x327,0xca02,0x6e,0x327,0xe602,0x4e,0x30c,0xe602,0x6e,0x30c,
+0xe602,0x4f,0x306,0xe602,0x6f,0x306,0xe602,0x4f,0x30b,0xe602,0x6f,0x30b,0xe602,0x52,0x301,0xe602,
+0x72,0x301,0xca02,0x52,0x327,0xca02,0x72,0x327,0xe602,0x52,0x30c,0xe602,0x72,0x30c,0xe602,0x53,
+0x302,0xe602,0x73,0x302,0xca02,0x53,0x327,0xca02,0x73,0x327,0xca02,0x54,0x327,0xca02,0x74,0x327,
+0xe602,0x54,0x30c,0xe602,0x74,0x30c,0xe602,0x55,0x306,0xe602,0x75,0x306,0xe602,0x55,0x30a,0xe602,
+0x75,0x30a,0xe602,0x55,0x30b,0xe602,0x75,0x30b,0xca02,0x55,0x328,0xca02,0x75,0x328,0xe602,0x57,
+0x302,0xe602,0x77,0x302,0xe602,0x59,0x302,0xe602,0x79,0x302,0xe602,0x59,0x308,0xe602,0x5a,0x301,
+0xe602,0x7a,0x301,0xe602,0x5a,0x307,0xe602,0x7a,0x307,0xe602,0x5a,0x30c,0xe602,0x7a,0x30c,0xe602,
+0x41,0x30c,0xe602,0x61,0x30c,0xe602,0x49,0x30c,0xe602,0x69,0x30c,0xe602,0x4f,0x30c,0xe602,0x6f,
+0x30c,0xe602,0x55,0x30c,0xe602,0x75,0x30c,0xdc,0xe643,0x55,0x308,0x304,0xfc,0xe643,0x75,0x308,
+0x304,0xdc,0xe643,0x55,0x308,0x301,0xfc,0xe643,0x75,0x308,0x301,0xdc,0xe643,0x55,0x308,0x30c,
+0xfc,0xe643,0x75,0x308,0x30c,0xdc,0xe643,0x55,0x308,0x300,0xfc,0xe643,0x75,0x308,0x300,0xc4,
+0xe643,0x41,0x308,0x304,0xe4,0xe643,0x61,0x308,0x304,0x226,0xe643,0x41,0x307,0x304,0x227,0xe643,
+0x61,0x307,0x304,0xe602,0xc6,0x304,0xe602,0xe6,0x304,0xe602,0x47,0x30c,0xe602,0x67,0x30c,0xe602,
+0x4b,0x30c,0xe602,0x6b,0x30c,0x1ea,0xe643,0x4f,0x328,0x304,0x1eb,0xe643,0x6f,0x328,0x304,0xe602,
+0x1b7,0x30c,0xe602,0x292,0x30c,0xe602,0x6a,0x30c,0xe602,0x47,0x301,0xe602,0x67,0x301,0xe602,0x4e,
+0x300,0xe602,0x6e,0x300,0xc5,0xe643,0x41,0x30a,0x301,0xe5,0xe643,0x61,0x30a,0x301,0xe602,0xc6,
+0x301,0xe602,0xe6,0x301,0xe602,0xd8,0x301,0xe602,0xf8,0x301,0xe602,0x41,0x30f,0xe602,0x61,0x30f,
+0xe602,0x41,0x311,0xe602,0x61,0x311,0xe602,0x45,0x30f,0xe602,0x65,0x30f,0xe602,0x45,0x311,0xe602,
+0x65,0x311,0xe602,0x49,0x30f,0xe602,0x69,0x30f,0xe602,0x49,0x311,0xe602,0x69,0x311,0xe602,0x4f,
+0x30f,0xe602,0x6f,0x30f,0xe602,0x4f,0x311,0xe602,0x6f,0x311,0xe602,0x52,0x30f,0xe602,0x72,0x30f,
+0xe602,0x52,0x311,0xe602,0x72,0x311,0xe602,0x55,0x30f,0xe602,0x75,0x30f,0xe602,0x55,0x311,0xe602,
+0x75,0x311,0xdc02,0x53,0x326,0xdc02,0x73,0x326,0xdc02,0x54,0x326,0xdc02,0x74,0x326,0xe602,0x48,
+0x30c,0xe602,0x68,0x30c,0xd6,0xe643,0x4f,0x308,0x304,0xf6,0xe643,0x6f,0x308,0x304,0xd5,0xe643,
+0x4f,0x303,0x304,0xf5,0xe643,0x6f,0x303,0x304,0x22e,0xe643,0x4f,0x307,0x304,0x22f,0xe643,0x6f,
+0x307,0x304,0xe602,0x59,0x304,0xe602,0x79,0x304,0xe602,0xa8,0x301,0xe602,0x391,0x301,0xe602,0x395,
+0x301,0xe602,0x397,0x301,0xe602,0x399,0x301,0xe602,0x39f,0x301,0xe602,0x3a5,0x301,0xe602,0x3a9,0x301,
+0x3ca,0xe643,0x3b9,0x308,0x301,0xe602,0x399,0x308,0xe602,0x3a5,0x308,0xe602,0x3b5,0x301,0xe602,0x3b9,
+0x301,0x3cb,0xe643,0x3c5,0x308,0x301,0xe602,0x3bf,0x301,0xe602,0x3c5,0x301,0xe602,0x3d2,0x301,0xe602,
+0x3d2,0x308,0xe602,0x415,0x300,0xe602,0x415,0x308,0xe602,0x413,0x301,0xe602,0x406,0x308,0xe602,0x41a,
+0x301,0xe602,0x418,0x300,0xe602,0x423,0x306,0xe602,0x418,0x306,0xe602,0x438,0x306,0xe602,0x435,0x300,
+0xe602,0x435,0x308,0xe602,0x433,0x301,0xe602,0x456,0x308,0xe602,0x43a,0x301,0xe602,0x438,0x300,0xe602,
+0x443,0x306,0xe602,0x474,0x30f,0xe602,0x475,0x30f,0xe602,0x416,0x306,0xe602,0x436,0x306,0xe602,0x410,
+0x306,0xe602,0x430,0x306,0xe602,0x410,0x308,0xe602,0x430,0x308,0xe602,0x415,0x306,0xe602,0x435,0x306,
+0xe602,0x4d8,0x308,0xe602,0x4d9,0x308,0xe602,0x416,0x308,0xe602,0x436,0x308,0xe602,0x417,0x308,0xe602,
+0x437,0x308,0xe602,0x418,0x304,0xe602,0x438,0x304,0xe602,0x418,0x308,0xe602,0x438,0x308,0xe602,0x41e,
+0x308,0xe602,0x43e,0x308,0xe602,0x4e8,0x308,0xe602,0x4e9,0x308,0xe602,0x42d,0x308,0xe602,0x44d,0x308,
+0xe602,0x423,0x304,0xe602,0x443,0x304,0xe602,0x423,0x308,0xe602,0x443,0x308,0xe602,0x423,0x30b,0xe602,
+0x443,0x30b,0xe602,0x427,0x308,0xe602,0x447,0x308,0xe602,0x42b,0x308,0xe602,0x44b,0x308,0xe602,0x627,
+0x653,0xe602,0x627,0x654,0xe602,0x648,0x654,0xdc02,0x627,0x655,0xe602,0x64a,0x654,0xe602,0x6d5,0x654,
+0xe602,0x6c1,0x654,0xe602,0x6d2,0x654,0x702,0x928,0x93c,0x702,0x930,0x93c,0x702,0x933,0x93c,2,
+0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,2,0xb47,0xb3e,2,0xb47,0xb57,2,0xb92,
+0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,0xbc6,0xbd7,0x5b02,0xc46,0xc56,2,0xcbf,0xcd5,
+2,0xcc6,0xcd5,2,0xcc6,0xcd6,0xcca,0x43,0xcc6,0xcc2,0xcd5,2,0xd46,0xd3e,2,0xd47,
+0xd3e,2,0xd46,0xd57,0x902,0xdd9,0xdca,0xddc,0x943,0xdd9,0xdcf,0xdca,2,0xdd9,0xddf,2,
+0x1025,0x102e,2,0x1b05,0x1b35,2,0x1b07,0x1b35,2,0x1b09,0x1b35,2,0x1b0b,0x1b35,2,0x1b0d,
+0x1b35,2,0x1b11,0x1b35,2,0x1b3a,0x1b35,2,0x1b3c,0x1b35,2,0x1b3e,0x1b35,2,0x1b3f,0x1b35,
+2,0x1b42,0x1b35,0xdc02,0x41,0x325,0xdc02,0x61,0x325,0xe602,0x42,0x307,0xe602,0x62,0x307,0xdc02,
+0x42,0x323,0xdc02,0x62,0x323,0xdc02,0x42,0x331,0xdc02,0x62,0x331,0xc7,0xe643,0x43,0x327,0x301,
+0xe7,0xe643,0x63,0x327,0x301,0xe602,0x44,0x307,0xe602,0x64,0x307,0xdc02,0x44,0x323,0xdc02,0x64,
+0x323,0xdc02,0x44,0x331,0xdc02,0x64,0x331,0xca02,0x44,0x327,0xca02,0x64,0x327,0xdc02,0x44,0x32d,
+0xdc02,0x64,0x32d,0x112,0xe643,0x45,0x304,0x300,0x113,0xe643,0x65,0x304,0x300,0x112,0xe643,0x45,
+0x304,0x301,0x113,0xe643,0x65,0x304,0x301,0xdc02,0x45,0x32d,0xdc02,0x65,0x32d,0xdc02,0x45,0x330,
+0xdc02,0x65,0x330,0x228,0xe643,0x45,0x327,0x306,0x229,0xe643,0x65,0x327,0x306,0xe602,0x46,0x307,
+0xe602,0x66,0x307,0xe602,0x47,0x304,0xe602,0x67,0x304,0xe602,0x48,0x307,0xe602,0x68,0x307,0xdc02,
+0x48,0x323,0xdc02,0x68,0x323,0xe602,0x48,0x308,0xe602,0x68,0x308,0xca02,0x48,0x327,0xca02,0x68,
+0x327,0xdc02,0x48,0x32e,0xdc02,0x68,0x32e,0xdc02,0x49,0x330,0xdc02,0x69,0x330,0xcf,0xe643,0x49,
+0x308,0x301,0xef,0xe643,0x69,0x308,0x301,0xe602,0x4b,0x301,0xe602,0x6b,0x301,0xdc02,0x4b,0x323,
+0xdc02,0x6b,0x323,0xdc02,0x4b,0x331,0xdc02,0x6b,0x331,0x1e36,0xe643,0x4c,0x323,0x304,0x1e37,0xe643,
+0x6c,0x323,0x304,0xdc02,0x4c,0x331,0xdc02,0x6c,0x331,0xdc02,0x4c,0x32d,0xdc02,0x6c,0x32d,0xe602,
+0x4d,0x301,0xe602,0x6d,0x301,0xe602,0x4d,0x307,0xe602,0x6d,0x307,0xdc02,0x4d,0x323,0xdc02,0x6d,
+0x323,0xe602,0x4e,0x307,0xe602,0x6e,0x307,0xdc02,0x4e,0x323,0xdc02,0x6e,0x323,0xdc02,0x4e,0x331,
+0xdc02,0x6e,0x331,0xdc02,0x4e,0x32d,0xdc02,0x6e,0x32d,0xd5,0xe643,0x4f,0x303,0x301,0xf5,0xe643,
+0x6f,0x303,0x301,0xd5,0xe643,0x4f,0x303,0x308,0xf5,0xe643,0x6f,0x303,0x308,0x14c,0xe643,0x4f,
+0x304,0x300,0x14d,0xe643,0x6f,0x304,0x300,0x14c,0xe643,0x4f,0x304,0x301,0x14d,0xe643,0x6f,0x304,
+0x301,0xe602,0x50,0x301,0xe602,0x70,0x301,0xe602,0x50,0x307,0xe602,0x70,0x307,0xe602,0x52,0x307,
+0xe602,0x72,0x307,0x1e5a,0xe643,0x52,0x323,0x304,0x1e5b,0xe643,0x72,0x323,0x304,0xdc02,0x52,0x331,
+0xdc02,0x72,0x331,0xe602,0x53,0x307,0xe602,0x73,0x307,0x15a,0xe643,0x53,0x301,0x307,0x15b,0xe643,
+0x73,0x301,0x307,0x160,0xe643,0x53,0x30c,0x307,0x161,0xe643,0x73,0x30c,0x307,0x1e62,0xe643,0x53,
+0x323,0x307,0x1e63,0xe643,0x73,0x323,0x307,0xe602,0x54,0x307,0xe602,0x74,0x307,0xdc02,0x54,0x323,
+0xdc02,0x74,0x323,0xdc02,0x54,0x331,0xdc02,0x74,0x331,0xdc02,0x54,0x32d,0xdc02,0x74,0x32d,0xdc02,
+0x55,0x324,0xdc02,0x75,0x324,0xdc02,0x55,0x330,0xdc02,0x75,0x330,0xdc02,0x55,0x32d,0xdc02,0x75,
+0x32d,0x168,0xe643,0x55,0x303,0x301,0x169,0xe643,0x75,0x303,0x301,0x16a,0xe643,0x55,0x304,0x308,
+0x16b,0xe643,0x75,0x304,0x308,0xe602,0x56,0x303,0xe602,0x76,0x303,0xdc02,0x56,0x323,0xdc02,0x76,
+0x323,0xe602,0x57,0x300,0xe602,0x77,0x300,0xe602,0x57,0x301,0xe602,0x77,0x301,0xe602,0x57,0x308,
+0xe602,0x77,0x308,0xe602,0x57,0x307,0xe602,0x77,0x307,0xdc02,0x57,0x323,0xdc02,0x77,0x323,0xe602,
+0x58,0x307,0xe602,0x78,0x307,0xe602,0x58,0x308,0xe602,0x78,0x308,0xe602,0x59,0x307,0xe602,0x79,
+0x307,0xe602,0x5a,0x302,0xe602,0x7a,0x302,0xdc02,0x5a,0x323,0xdc02,0x7a,0x323,0xdc02,0x5a,0x331,
+0xdc02,0x7a,0x331,0xdc02,0x68,0x331,0xe602,0x74,0x308,0xe602,0x77,0x30a,0xe602,0x79,0x30a,0xe602,
+0x17f,0x307,0xe602,0x41,0x309,0xe602,0x61,0x309,0xc2,0xe643,0x41,0x302,0x301,0xe2,0xe643,0x61,
+0x302,0x301,0xc2,0xe643,0x41,0x302,0x300,0xe2,0xe643,0x61,0x302,0x300,0xc2,0xe643,0x41,0x302,
+0x309,0xe2,0xe643,0x61,0x302,0x309,0xc2,0xe643,0x41,0x302,0x303,0xe2,0xe643,0x61,0x302,0x303,
+0x1ea0,0xe643,0x41,0x323,0x302,0x1ea1,0xe643,0x61,0x323,0x302,0x102,0xe643,0x41,0x306,0x301,0x103,
+0xe643,0x61,0x306,0x301,0x102,0xe643,0x41,0x306,0x300,0x103,0xe643,0x61,0x306,0x300,0x102,0xe643,
+0x41,0x306,0x309,0x103,0xe643,0x61,0x306,0x309,0x102,0xe643,0x41,0x306,0x303,0x103,0xe643,0x61,
+0x306,0x303,0x1ea0,0xe643,0x41,0x323,0x306,0x1ea1,0xe643,0x61,0x323,0x306,0xe602,0x45,0x309,0xe602,
+0x65,0x309,0xe602,0x45,0x303,0xe602,0x65,0x303,0xca,0xe643,0x45,0x302,0x301,0xea,0xe643,0x65,
+0x302,0x301,0xca,0xe643,0x45,0x302,0x300,0xea,0xe643,0x65,0x302,0x300,0xca,0xe643,0x45,0x302,
+0x309,0xea,0xe643,0x65,0x302,0x309,0xca,0xe643,0x45,0x302,0x303,0xea,0xe643,0x65,0x302,0x303,
+0x1eb8,0xe643,0x45,0x323,0x302,0x1eb9,0xe643,0x65,0x323,0x302,0xe602,0x49,0x309,0xe602,0x69,0x309,
+0xdc02,0x49,0x323,0xdc02,0x69,0x323,0xe602,0x4f,0x309,0xe602,0x6f,0x309,0xd4,0xe643,0x4f,0x302,
+0x301,0xf4,0xe643,0x6f,0x302,0x301,0xd4,0xe643,0x4f,0x302,0x300,0xf4,0xe643,0x6f,0x302,0x300,
+0xd4,0xe643,0x4f,0x302,0x309,0xf4,0xe643,0x6f,0x302,0x309,0xd4,0xe643,0x4f,0x302,0x303,0xf4,
+0xe643,0x6f,0x302,0x303,0x1ecc,0xe643,0x4f,0x323,0x302,0x1ecd,0xe643,0x6f,0x323,0x302,0x1a0,0xe643,
+0x4f,0x31b,0x301,0x1a1,0xe643,0x6f,0x31b,0x301,0x1a0,0xe643,0x4f,0x31b,0x300,0x1a1,0xe643,0x6f,
+0x31b,0x300,0x1a0,0xe643,0x4f,0x31b,0x309,0x1a1,0xe643,0x6f,0x31b,0x309,0x1a0,0xe643,0x4f,0x31b,
+0x303,0x1a1,0xe643,0x6f,0x31b,0x303,0x1a0,0xdc43,0x4f,0x31b,0x323,0x1a1,0xdc43,0x6f,0x31b,0x323,
+0xdc02,0x55,0x323,0xdc02,0x75,0x323,0xe602,0x55,0x309,0xe602,0x75,0x309,0x1af,0xe643,0x55,0x31b,
+0x301,0x1b0,0xe643,0x75,0x31b,0x301,0x1af,0xe643,0x55,0x31b,0x300,0x1b0,0xe643,0x75,0x31b,0x300,
+0x1af,0xe643,0x55,0x31b,0x309,0x1b0,0xe643,0x75,0x31b,0x309,0x1af,0xe643,0x55,0x31b,0x303,0x1b0,
+0xe643,0x75,0x31b,0x303,0x1af,0xdc43,0x55,0x31b,0x323,0x1b0,0xdc43,0x75,0x31b,0x323,0xe602,0x59,
+0x300,0xe602,0x79,0x300,0xdc02,0x59,0x323,0xdc02,0x79,0x323,0xe602,0x59,0x309,0xe602,0x79,0x309,
+0xe602,0x59,0x303,0xe602,0x79,0x303,0x1f10,0xe643,0x3b5,0x313,0x300,0x1f11,0xe643,0x3b5,0x314,0x300,
+0x1f10,0xe643,0x3b5,0x313,0x301,0x1f11,0xe643,0x3b5,0x314,0x301,0x1f18,0xe643,0x395,0x313,0x300,0x1f19,
+0xe643,0x395,0x314,0x300,0x1f18,0xe643,0x395,0x313,0x301,0x1f19,0xe643,0x395,0x314,0x301,0x1f30,0xe643,
+0x3b9,0x313,0x300,0x1f31,0xe643,0x3b9,0x314,0x300,0x1f30,0xe643,0x3b9,0x313,0x301,0x1f31,0xe643,0x3b9,
+0x314,0x301,0x1f30,0xe643,0x3b9,0x313,0x342,0x1f31,0xe643,0x3b9,0x314,0x342,0x1f38,0xe643,0x399,0x313,
+0x300,0x1f39,0xe643,0x399,0x314,0x300,0x1f38,0xe643,0x399,0x313,0x301,0x1f39,0xe643,0x399,0x314,0x301,
+0x1f38,0xe643,0x399,0x313,0x342,0x1f39,0xe643,0x399,0x314,0x342,0x1f40,0xe643,0x3bf,0x313,0x300,0x1f41,
+0xe643,0x3bf,0x314,0x300,0x1f40,0xe643,0x3bf,0x313,0x301,0x1f41,0xe643,0x3bf,0x314,0x301,0x1f48,0xe643,
+0x39f,0x313,0x300,0x1f49,0xe643,0x39f,0x314,0x300,0x1f48,0xe643,0x39f,0x313,0x301,0x1f49,0xe643,0x39f,
+0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x300,0x1f51,0xe643,0x3c5,0x314,0x300,0x1f50,0xe643,0x3c5,0x313,
+0x301,0x1f51,0xe643,0x3c5,0x314,0x301,0x1f50,0xe643,0x3c5,0x313,0x342,0x1f51,0xe643,0x3c5,0x314,0x342,
+0x1f59,0xe643,0x3a5,0x314,0x300,0x1f59,0xe643,0x3a5,0x314,0x301,0x1f59,0xe643,0x3a5,0x314,0x342,0xe602,
+0x3b5,0x300,0xe602,0x3b9,0x300,0xe602,0x3bf,0x300,0xe602,0x3c5,0x300,0x1f00,0xf043,0x3b1,0x313,0x345,
+0x1f01,0xf043,0x3b1,0x314,0x345,0x1f02,0x345,2,0xf044,0x3b1,0x313,0x300,0x345,0x1f03,0x345,2,
+0xf044,0x3b1,0x314,0x300,0x345,0x1f04,0x345,2,0xf044,0x3b1,0x313,0x301,0x345,0x1f05,0x345,2,
+0xf044,0x3b1,0x314,0x301,0x345,0x1f06,0x345,2,0xf044,0x3b1,0x313,0x342,0x345,0x1f07,0x345,2,
+0xf044,0x3b1,0x314,0x342,0x345,0x1f08,0xf043,0x391,0x313,0x345,0x1f09,0xf043,0x391,0x314,0x345,0x1f0a,
+0x345,2,0xf044,0x391,0x313,0x300,0x345,0x1f0b,0x345,2,0xf044,0x391,0x314,0x300,0x345,0x1f0c,
+0x345,2,0xf044,0x391,0x313,0x301,0x345,0x1f0d,0x345,2,0xf044,0x391,0x314,0x301,0x345,0x1f0e,
+0x345,2,0xf044,0x391,0x313,0x342,0x345,0x1f0f,0x345,2,0xf044,0x391,0x314,0x342,0x345,0x1f20,
+0xf043,0x3b7,0x313,0x345,0x1f21,0xf043,0x3b7,0x314,0x345,0x1f22,0x345,2,0xf044,0x3b7,0x313,0x300,
+0x345,0x1f23,0x345,2,0xf044,0x3b7,0x314,0x300,0x345,0x1f24,0x345,2,0xf044,0x3b7,0x313,0x301,
+0x345,0x1f25,0x345,2,0xf044,0x3b7,0x314,0x301,0x345,0x1f26,0x345,2,0xf044,0x3b7,0x313,0x342,
+0x345,0x1f27,0x345,2,0xf044,0x3b7,0x314,0x342,0x345,0x1f28,0xf043,0x397,0x313,0x345,0x1f29,0xf043,
+0x397,0x314,0x345,0x1f2a,0x345,2,0xf044,0x397,0x313,0x300,0x345,0x1f2b,0x345,2,0xf044,0x397,
+0x314,0x300,0x345,0x1f2c,0x345,2,0xf044,0x397,0x313,0x301,0x345,0x1f2d,0x345,2,0xf044,0x397,
+0x314,0x301,0x345,0x1f2e,0x345,2,0xf044,0x397,0x313,0x342,0x345,0x1f2f,0x345,2,0xf044,0x397,
+0x314,0x342,0x345,0x1f60,0xf043,0x3c9,0x313,0x345,0x1f61,0xf043,0x3c9,0x314,0x345,0x1f62,0x345,2,
+0xf044,0x3c9,0x313,0x300,0x345,0x1f63,0x345,2,0xf044,0x3c9,0x314,0x300,0x345,0x1f64,0x345,2,
+0xf044,0x3c9,0x313,0x301,0x345,0x1f65,0x345,2,0xf044,0x3c9,0x314,0x301,0x345,0x1f66,0x345,2,
+0xf044,0x3c9,0x313,0x342,0x345,0x1f67,0x345,2,0xf044,0x3c9,0x314,0x342,0x345,0x1f68,0xf043,0x3a9,
+0x313,0x345,0x1f69,0xf043,0x3a9,0x314,0x345,0x1f6a,0x345,2,0xf044,0x3a9,0x313,0x300,0x345,0x1f6b,
+0x345,2,0xf044,0x3a9,0x314,0x300,0x345,0x1f6c,0x345,2,0xf044,0x3a9,0x313,0x301,0x345,0x1f6d,
+0x345,2,0xf044,0x3a9,0x314,0x301,0x345,0x1f6e,0x345,2,0xf044,0x3a9,0x313,0x342,0x345,0x1f6f,
+0x345,2,0xf044,0x3a9,0x314,0x342,0x345,0xe602,0x3b1,0x306,0xe602,0x3b1,0x304,0x1f70,0xf043,0x3b1,
+0x300,0x345,0xf002,0x3b1,0x345,0x3ac,0xf043,0x3b1,0x301,0x345,0x1fb6,0xf043,0x3b1,0x342,0x345,0xe602,
+0x391,0x306,0xe602,0x391,0x304,0xe602,0x391,0x300,0xf002,0x391,0x345,0xe602,0xa8,0x342,0x1f74,0xf043,
+0x3b7,0x300,0x345,0xf002,0x3b7,0x345,0x3ae,0xf043,0x3b7,0x301,0x345,0x1fc6,0xf043,0x3b7,0x342,0x345,
+0xe602,0x395,0x300,0xe602,0x397,0x300,0xf002,0x397,0x345,0xe602,0x1fbf,0x300,0xe602,0x1fbf,0x301,0xe602,
+0x1fbf,0x342,0xe602,0x3b9,0x306,0xe602,0x3b9,0x304,0x3ca,0xe643,0x3b9,0x308,0x300,0xe602,0x3b9,0x342,
+0x3ca,0xe643,0x3b9,0x308,0x342,0xe602,0x399,0x306,0xe602,0x399,0x304,0xe602,0x399,0x300,0xe602,0x1ffe,
+0x300,0xe602,0x1ffe,0x301,0xe602,0x1ffe,0x342,0xe602,0x3c5,0x306,0xe602,0x3c5,0x304,0x3cb,0xe643,0x3c5,
+0x308,0x300,0xe602,0x3c1,0x313,0xe602,0x3c1,0x314,0xe602,0x3c5,0x342,0x3cb,0xe643,0x3c5,0x308,0x342,
+0xe602,0x3a5,0x306,0xe602,0x3a5,0x304,0xe602,0x3a5,0x300,0xe602,0x3a1,0x314,0xe602,0xa8,0x300,0x1f7c,
+0xf043,0x3c9,0x300,0x345,0xf002,0x3c9,0x345,0x3ce,0xf043,0x3c9,0x301,0x345,0x1ff6,0xf043,0x3c9,0x342,
+0x345,0xe602,0x39f,0x300,0xe602,0x3a9,0x300,0xf002,0x3a9,0x345,0x102,0x2190,0x338,0x102,0x2192,0x338,
+0x102,0x2194,0x338,0x102,0x21d0,0x338,0x102,0x21d4,0x338,0x102,0x21d2,0x338,0x102,0x2203,0x338,0x102,
+0x2208,0x338,0x102,0x220b,0x338,0x102,0x2223,0x338,0x102,0x2225,0x338,0x102,0x223c,0x338,0x102,0x2243,
+0x338,0x102,0x2245,0x338,0x102,0x2248,0x338,0x102,0x3d,0x338,0x102,0x2261,0x338,0x102,0x224d,0x338,
+0x102,0x3c,0x338,0x102,0x3e,0x338,0x102,0x2264,0x338,0x102,0x2265,0x338,0x102,0x2272,0x338,0x102,
+0x2273,0x338,0x102,0x2276,0x338,0x102,0x2277,0x338,0x102,0x227a,0x338,0x102,0x227b,0x338,0x102,0x2282,
+0x338,0x102,0x2283,0x338,0x102,0x2286,0x338,0x102,0x2287,0x338,0x102,0x22a2,0x338,0x102,0x22a8,0x338,
+0x102,0x22a9,0x338,0x102,0x22ab,0x338,0x102,0x227c,0x338,0x102,0x227d,0x338,0x102,0x2291,0x338,0x102,
+0x2292,0x338,0x102,0x22b2,0x338,0x102,0x22b3,0x338,0x102,0x22b4,0x338,0x102,0x22b5,0x338,0x802,0x304b,
+0x3099,0x802,0x304d,0x3099,0x802,0x304f,0x3099,0x802,0x3051,0x3099,0x802,0x3053,0x3099,0x802,0x3055,0x3099,
+0x802,0x3057,0x3099,0x802,0x3059,0x3099,0x802,0x305b,0x3099,0x802,0x305d,0x3099,0x802,0x305f,0x3099,0x802,
+0x3061,0x3099,0x802,0x3064,0x3099,0x802,0x3066,0x3099,0x802,0x3068,0x3099,0x802,0x306f,0x3099,0x802,0x306f,
+0x309a,0x802,0x3072,0x3099,0x802,0x3072,0x309a,0x802,0x3075,0x3099,0x802,0x3075,0x309a,0x802,0x3078,0x3099,
+0x802,0x3078,0x309a,0x802,0x307b,0x3099,0x802,0x307b,0x309a,0x802,0x3046,0x3099,0x802,0x309d,0x3099,0x802,
+0x30ab,0x3099,0x802,0x30ad,0x3099,0x802,0x30af,0x3099,0x802,0x30b1,0x3099,0x802,0x30b3,0x3099,0x802,0x30b5,
+0x3099,0x802,0x30b7,0x3099,0x802,0x30b9,0x3099,0x802,0x30bb,0x3099,0x802,0x30bd,0x3099,0x802,0x30bf,0x3099,
+0x802,0x30c1,0x3099,0x802,0x30c4,0x3099,0x802,0x30c6,0x3099,0x802,0x30c8,0x3099,0x802,0x30cf,0x3099,0x802,
+0x30cf,0x309a,0x802,0x30d2,0x3099,0x802,0x30d2,0x309a,0x802,0x30d5,0x3099,0x802,0x30d5,0x309a,0x802,0x30d8,
+0x3099,0x802,0x30d8,0x309a,0x802,0x30db,0x3099,0x802,0x30db,0x309a,0x802,0x30a6,0x3099,0x802,0x30ef,0x3099,
+0x802,0x30f0,0x3099,0x802,0x30f1,0x3099,0x802,0x30f2,0x3099,0x802,0x30fd,0x3099,0xe603,0xd801,0xddd2,0x307,
+0xe603,0xd801,0xddda,0x307,0x704,0xd804,0xdc99,0xd804,0xdcba,0x704,0xd804,0xdc9b,0xd804,0xdcba,0x704,0xd804,
+0xdca5,0xd804,0xdcba,4,0xd804,0xdd31,0xd804,0xdd27,4,0xd804,0xdd32,0xd804,0xdd27,4,0xd804,0xdf47,
+0xd804,0xdf3e,4,0xd804,0xdf47,0xd804,0xdf57,4,0xd804,0xdf82,0xd804,0xdfc9,4,0xd804,0xdf84,0xd804,
+0xdfbb,4,0xd804,0xdf8b,0xd804,0xdfc2,4,0xd804,0xdf90,0xd804,0xdfc9,4,0xd805,0xdcb9,0xd805,0xdcba,
+4,0xd805,0xdcb9,0xd805,0xdcb0,4,0xd805,0xdcb9,0xd805,0xdcbd,4,0xd805,0xddb8,0xd805,0xddaf,4,
+0xd805,0xddb9,0xd805,0xddaf,4,0xd806,0xdd35,0xd806,0xdd30,0xd81b,0xdd69,0xd81b,0xdd67,4,0x46,0xd81b,
+0xdd63,0xd81b,0xdd67,0xd81b,0xdd67,1,0x2b9,1,0x3b,1,0xb7,0x702,0x915,0x93c,0x702,0x916,
+0x93c,0x702,0x917,0x93c,0x702,0x91c,0x93c,0x702,0x921,0x93c,0x702,0x922,0x93c,0x702,0x92b,0x93c,
+0x702,0x92f,0x93c,0x702,0x9a1,0x9bc,0x702,0x9a2,0x9bc,0x702,0x9af,0x9bc,0x702,0xa32,0xa3c,0x702,
+0xa38,0xa3c,0x702,0xa16,0xa3c,0x702,0xa17,0xa3c,0x702,0xa1c,0xa3c,0x702,0xa2b,0xa3c,0x702,0xb21,
+0xb3c,0x702,0xb22,0xb3c,2,0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7,
+2,0xf5b,0xfb7,2,0xf40,0xfb5,0x8202,0xfb2,0xf80,0x8202,0xfb3,0xf80,2,0xf92,0xfb7,2,
+0xf9c,0xfb7,2,0xfa1,0xfb7,2,0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,1,0x3b9,
+1,0x60,1,0xb4,1,0x3a9,1,0x4b,1,0x3008,1,0x3009,0x102,0x2add,0x338,1,
+0x8c48,1,0x66f4,1,0x8eca,1,0x8cc8,1,0x6ed1,1,0x4e32,1,0x53e5,1,0x9f9c,1,
+0x5951,1,0x91d1,1,0x5587,1,0x5948,1,0x61f6,1,0x7669,1,0x7f85,1,0x863f,1,
+0x87ba,1,0x88f8,1,0x908f,1,0x6a02,1,0x6d1b,1,0x70d9,1,0x73de,1,0x843d,1,
+0x916a,1,0x99f1,1,0x4e82,1,0x5375,1,0x6b04,1,0x721b,1,0x862d,1,0x9e1e,1,
+0x5d50,1,0x6feb,1,0x85cd,1,0x8964,1,0x62c9,1,0x81d8,1,0x881f,1,0x5eca,1,
+0x6717,1,0x6d6a,1,0x72fc,1,0x90ce,1,0x4f86,1,0x51b7,1,0x52de,1,0x64c4,1,
+0x6ad3,1,0x7210,1,0x76e7,1,0x8001,1,0x8606,1,0x865c,1,0x8def,1,0x9732,1,
+0x9b6f,1,0x9dfa,1,0x788c,1,0x797f,1,0x7da0,1,0x83c9,1,0x9304,1,0x9e7f,1,
+0x8ad6,1,0x58df,1,0x5f04,1,0x7c60,1,0x807e,1,0x7262,1,0x78ca,1,0x8cc2,1,
+0x96f7,1,0x58d8,1,0x5c62,1,0x6a13,1,0x6dda,1,0x6f0f,1,0x7d2f,1,0x7e37,1,
+0x964b,1,0x52d2,1,0x808b,1,0x51dc,1,0x51cc,1,0x7a1c,1,0x7dbe,1,0x83f1,1,
+0x9675,1,0x8b80,1,0x62cf,1,0x8afe,1,0x4e39,1,0x5be7,1,0x6012,1,0x7387,1,
+0x7570,1,0x5317,1,0x78fb,1,0x4fbf,1,0x5fa9,1,0x4e0d,1,0x6ccc,1,0x6578,1,
+0x7d22,1,0x53c3,1,0x585e,1,0x7701,1,0x8449,1,0x8aaa,1,0x6bba,1,0x8fb0,1,
+0x6c88,1,0x62fe,1,0x82e5,1,0x63a0,1,0x7565,1,0x4eae,1,0x5169,1,0x51c9,1,
+0x6881,1,0x7ce7,1,0x826f,1,0x8ad2,1,0x91cf,1,0x52f5,1,0x5442,1,0x5973,1,
+0x5eec,1,0x65c5,1,0x6ffe,1,0x792a,1,0x95ad,1,0x9a6a,1,0x9e97,1,0x9ece,1,
+0x529b,1,0x66c6,1,0x6b77,1,0x8f62,1,0x5e74,1,0x6190,1,0x6200,1,0x649a,1,
+0x6f23,1,0x7149,1,0x7489,1,0x79ca,1,0x7df4,1,0x806f,1,0x8f26,1,0x84ee,1,
+0x9023,1,0x934a,1,0x5217,1,0x52a3,1,0x54bd,1,0x70c8,1,0x88c2,1,0x5ec9,1,
+0x5ff5,1,0x637b,1,0x6bae,1,0x7c3e,1,0x7375,1,0x4ee4,1,0x56f9,1,0x5dba,1,
+0x601c,1,0x73b2,1,0x7469,1,0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1,
+0x9818,1,0x4f8b,1,0x79ae,1,0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1,
+0x5bee,1,0x5c3f,1,0x6599,1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1,
+0x6688,1,0x962e,1,0x5289,1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1,
+0x7559,1,0x786b,1,0x7d10,1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1,
+0x5d19,1,0x6dea,1,0x8f2a,1,0x5f8b,1,0x6144,1,0x6817,1,0x9686,1,0x5229,1,
+0x540f,1,0x5c65,1,0x6613,1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,0x75e2,1,
+0x7f79,1,0x88cf,1,0x88e1,1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,0x541d,1,
+0x71d0,1,0x7498,1,0x85fa,1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,0x6dcb,1,
+0x81e8,1,0x7acb,1,0x7b20,1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,0x4ec0,1,
+0x8336,1,0x523a,1,0x5207,1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,0x6d1e,1,
+0x66b4,1,0x8f3b,1,0x884c,1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,0x55c0,1,
+0x585a,1,0x6674,1,0x51de,1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,0x7965,1,
+0x798f,1,0x9756,1,0x7cbe,1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,0x90fd,1,
+0x98ef,1,0x98fc,1,0x9928,1,0x9db4,1,0x90de,1,0x96b7,1,0x4fae,1,0x50e7,1,
+0x514d,1,0x52c9,1,0x52e4,1,0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1,
+0x58a8,1,0x5c64,1,0x5c6e,1,0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1,
+0x65e2,1,0x6691,1,0x6885,1,0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1,
+0x7422,1,0x7891,1,0x793e,1,0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1,
+0x798d,1,0x798e,1,0x7a40,1,0x7a81,1,0x7bc0,1,0x7e09,1,0x7e41,1,0x7f72,1,
+0x8005,1,0x81ed,1,0x8279,1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,0x8b39,1,
+0x8cd3,1,0x8d08,1,0x8fb6,1,0x96e3,1,0x97ff,1,0x983b,1,0x6075,2,0xd850,0xdeee,
+1,0x8218,1,0x4e26,1,0x51b5,1,0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7,
+1,0x52fa,1,0x5555,1,0x5599,1,0x55e2,1,0x58b3,1,0x5944,1,0x5954,1,0x5a62,
+1,0x5b28,1,0x5ed2,1,0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,0x6108,
+1,0x6160,1,0x6234,1,0x63c4,1,0x641c,1,0x6452,1,0x6556,1,0x671b,1,0x6756,
+1,0x6b79,1,0x6edb,1,0x6ecb,1,0x701e,1,0x77a7,1,0x7235,1,0x72af,1,0x7471,
+1,0x7506,1,0x753b,1,0x761d,1,0x761f,1,0x76db,1,0x76f4,1,0x774a,1,0x7740,
+1,0x78cc,1,0x7ab1,1,0x7c7b,1,0x7d5b,1,0x7f3e,1,0x8352,1,0x83ef,1,0x8779,
+1,0x8941,1,0x8986,1,0x8abf,1,0x8acb,1,0x8aed,1,0x8b8a,1,0x8f38,1,0x9072,
+1,0x9199,1,0x9276,1,0x967c,1,0x97db,1,0x980b,1,0x9b12,2,0xd84a,0xdc4a,2,
+0xd84a,0xdc44,2,0xd84c,0xdfd5,1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,0xd857,
+0xdcd0,2,0xd85f,0xded3,1,0x9f43,1,0x9f8e,0xe02,0x5d9,0x5b4,0x1102,0x5f2,0x5b7,0x1802,0x5e9,
+0x5c1,0x1902,0x5e9,0x5c2,0xfb49,0x1843,0x5e9,0x5bc,0x5c1,0xfb49,0x1943,0x5e9,0x5bc,0x5c2,0x1102,0x5d0,
+0x5b7,0x1202,0x5d0,0x5b8,0x1502,0x5d0,0x5bc,0x1502,0x5d1,0x5bc,0x1502,0x5d2,0x5bc,0x1502,0x5d3,0x5bc,
+0x1502,0x5d4,0x5bc,0x1502,0x5d5,0x5bc,0x1502,0x5d6,0x5bc,0x1502,0x5d8,0x5bc,0x1502,0x5d9,0x5bc,0x1502,
+0x5da,0x5bc,0x1502,0x5db,0x5bc,0x1502,0x5dc,0x5bc,0x1502,0x5de,0x5bc,0x1502,0x5e0,0x5bc,0x1502,0x5e1,
+0x5bc,0x1502,0x5e3,0x5bc,0x1502,0x5e4,0x5bc,0x1502,0x5e6,0x5bc,0x1502,0x5e7,0x5bc,0x1502,0x5e8,0x5bc,
+0x1502,0x5e9,0x5bc,0x1502,0x5ea,0x5bc,0x1302,0x5d5,0x5b9,0x1702,0x5d1,0x5bf,0x1702,0x5db,0x5bf,0x1702,
+0x5e4,0x5bf,0xd804,0xd834,0xdd57,0xd834,0xdd65,0xd804,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd5f,0xd834,0xdd6e,
+4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xdd5f,0xd834,0xdd6f,4,0xd846,0xd834,0xdd58,
+0xd834,0xdd65,0xd834,0xdd6f,0xd834,0xdd5f,0xd834,0xdd70,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd70,
+0xd834,0xdd5f,0xd834,0xdd71,4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0xd834,0xdd5f,0xd834,0xdd72,
+4,0xd846,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd72,0xd804,0xd834,0xddb9,0xd834,0xdd65,0xd804,0xd834,0xddba,
+0xd834,0xdd65,0xd834,0xddbb,0xd834,0xdd6e,4,0xd846,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbc,
+0xd834,0xdd6e,4,0xd846,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6e,0xd834,0xddbb,0xd834,0xdd6f,4,0xd846,
+0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6f,0xd834,0xddbc,0xd834,0xdd6f,4,0xd846,0xd834,0xddba,0xd834,0xdd65,
+0xd834,0xdd6f,1,0x4e3d,1,0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fbb,1,
+0x5002,1,0x507a,1,0x5099,1,0x50cf,1,0x349e,2,0xd841,0xde3a,1,0x5154,1,0x5164,
+1,0x5177,2,0xd841,0xdd1c,1,0x34b9,1,0x5167,1,0x518d,2,0xd841,0xdd4b,1,0x5197,
+1,0x51a4,1,0x4ecc,1,0x51ac,2,0xd864,0xdddf,1,0x51f5,1,0x5203,1,0x34df,1,
+0x523b,1,0x5246,1,0x5272,1,0x5277,1,0x3515,1,0x5305,1,0x5306,1,0x5349,1,
+0x535a,1,0x5373,1,0x537d,1,0x537f,2,0xd842,0xde2c,1,0x7070,1,0x53ca,1,0x53df,
+2,0xd842,0xdf63,1,0x53eb,1,0x53f1,1,0x5406,1,0x549e,1,0x5438,1,0x5448,1,
+0x5468,1,0x54a2,1,0x54f6,1,0x5510,1,0x5553,1,0x5563,1,0x5584,1,0x55ab,1,
+0x55b3,1,0x55c2,1,0x5716,1,0x5717,1,0x5651,1,0x5674,1,0x58ee,1,0x57ce,1,
+0x57f4,1,0x580d,1,0x578b,1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,0x58f2,
+1,0x58f7,1,0x5906,1,0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,0xdeea,
+1,0x59ec,1,0x5a1b,1,0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,0x5b08,
+1,0x5b3e,2,0xd846,0xddc8,1,0x5bc3,1,0x5bd8,1,0x5bf3,2,0xd846,0xdf18,1,0x5bff,
+1,0x5c06,1,0x5f53,1,0x5c22,1,0x3781,1,0x5c60,1,0x5cc0,1,0x5c8d,2,0xd847,
+0xdde4,1,0x5d43,2,0xd847,0xdde6,1,0x5d6e,1,0x5d6b,1,0x5d7c,1,0x5de1,1,0x5de2,
+1,0x382f,1,0x5dfd,1,0x5e28,1,0x5e3d,1,0x5e69,1,0x3862,2,0xd848,0xdd83,1,
+0x387c,1,0x5eb0,1,0x5eb3,1,0x5eb6,2,0xd868,0xdf92,1,0x5efe,2,0xd848,0xdf31,1,
+0x8201,1,0x5f22,1,0x38c7,2,0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1,
+0x38e3,1,0x5f9a,1,0x5fcd,1,0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,2,
+0xd849,0xded4,1,0x60c7,1,0x6148,1,0x614c,1,0x617a,1,0x61b2,1,0x61a4,1,0x61af,
+1,0x61de,1,0x6210,1,0x621b,1,0x625d,1,0x62b1,1,0x62d4,1,0x6350,2,0xd84a,
+0xdf0c,1,0x633d,1,0x62fc,1,0x6368,1,0x6383,1,0x63e4,2,0xd84a,0xdff1,1,0x6422,
+1,0x63c5,1,0x63a9,1,0x3a2e,1,0x6469,1,0x647e,1,0x649d,1,0x6477,1,0x3a6c,
+1,0x656c,2,0xd84c,0xdc0a,1,0x65e3,1,0x66f8,1,0x6649,1,0x3b19,1,0x3b08,1,
+0x3ae4,1,0x5192,1,0x5195,1,0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6721,1,
+0x675e,1,0x6753,2,0xd84c,0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,2,0xd84d,
+0xdc6d,1,0x688e,1,0x681f,1,0x6914,1,0x6942,1,0x69a3,1,0x69ea,1,0x6aa8,2,
+0xd84d,0xdea3,1,0x6adb,1,0x3c18,1,0x6b21,2,0xd84e,0xdca7,1,0x6b54,1,0x3c4e,1,
+0x6b72,1,0x6b9f,1,0x6bbb,2,0xd84e,0xde8d,2,0xd847,0xdd0b,2,0xd84e,0xdefa,1,0x6c4e,
+2,0xd84f,0xdcbc,1,0x6cbf,1,0x6ccd,1,0x6c67,1,0x6d16,1,0x6d3e,1,0x6d69,1,
+0x6d78,1,0x6d85,2,0xd84f,0xdd1e,1,0x6d34,1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ec7,
+2,0xd84f,0xded1,1,0x6df9,1,0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1,
+0x7039,1,0x701b,1,0x3d96,1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25,
+1,0x7145,2,0xd850,0xde63,1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7250,2,0xd851,
+0xde08,1,0x7280,1,0x7295,2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,0x738b,1,
+0x3eac,1,0x73a5,1,0x3eb8,1,0x7447,1,0x745c,1,0x7485,1,0x74ca,1,0x3f1b,1,
+0x7524,2,0xd853,0xdc36,1,0x753e,2,0xd853,0xdc92,2,0xd848,0xdd9f,1,0x7610,2,0xd853,
+0xdfa1,2,0xd853,0xdfb8,2,0xd854,0xdc44,1,0x3ffc,1,0x4008,2,0xd854,0xdcf3,2,0xd854,
+0xdcf2,2,0xd854,0xdd19,2,0xd854,0xdd33,1,0x771e,1,0x771f,1,0x778b,1,0x4046,1,
+0x4096,2,0xd855,0xdc1d,1,0x784e,1,0x40e3,2,0xd855,0xde26,2,0xd855,0xde9a,2,0xd855,
+0xdec5,1,0x79eb,1,0x412f,1,0x7a4a,1,0x7a4f,2,0xd856,0xdd7c,2,0xd856,0xdea7,1,
+0x7aee,1,0x4202,2,0xd856,0xdfab,1,0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1,
+0x7cd2,1,0x42a0,1,0x7ce8,1,0x7ce3,1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301,
+1,0x7dc7,1,0x7e02,1,0x7e45,1,0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359,
+2,0xd858,0xded9,1,0x7f7a,2,0xd858,0xdf3e,1,0x7f95,1,0x7ffa,2,0xd859,0xdcda,2,
+0xd859,0xdd23,1,0x8060,2,0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2,
+1,0x8103,1,0x440b,1,0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c,
+0xdf93,2,0xd84c,0xdf9c,1,0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,0x829d,
+1,0x52b3,1,0x82b1,1,0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x831d,1,
+0x8363,1,0x83ad,1,0x8323,1,0x83bd,1,0x83e7,1,0x8353,1,0x83ca,1,0x83cc,1,
+0x83dc,2,0xd85b,0xdc36,2,0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,0x452b,1,0x84f1,1,0x84f3,
+1,0x8516,2,0xd85c,0xdfca,1,0x8564,2,0xd85b,0xdf2c,1,0x455d,1,0x4561,2,0xd85b,
+0xdfb1,2,0xd85c,0xdcd2,1,0x456b,1,0x8650,1,0x8667,1,0x8669,1,0x86a9,1,0x8688,
+1,0x870e,1,0x86e2,1,0x8728,1,0x876b,1,0x8786,1,0x45d7,1,0x87e1,1,0x8801,
+1,0x45f9,1,0x8860,1,0x8863,2,0xd85d,0xde67,1,0x88d7,1,0x88de,1,0x4635,1,
+0x88fa,1,0x34bb,2,0xd85e,0xdcae,2,0xd85e,0xdd66,1,0x46be,1,0x46c7,1,0x8aa0,1,
+0x8c55,2,0xd85f,0xdca8,1,0x8cab,1,0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2,
+0xd842,0xdc04,1,0x8dcb,1,0x8dbc,1,0x8df0,2,0xd842,0xdcde,1,0x8ed4,2,0xd861,0xddd2,
+2,0xd861,0xdded,1,0x9094,1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238,
+1,0x92d7,1,0x92d8,1,0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1,
+0x4995,1,0x95b7,2,0xd863,0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864,
+0xdd45,2,0xd864,0xde1a,1,0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2,
+0xd865,0xdc96,1,0x9829,2,0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,1,0x99a7,1,
+0x99c2,1,0x99fe,1,0x4bce,2,0xd866,0xdf30,1,0x9c40,1,0x9cfd,1,0x4cce,1,0x4ced,
+1,0x9d67,2,0xd868,0xdcce,1,0x4cf8,2,0xd868,0xdd05,2,0xd868,0xde0e,2,0xd868,0xde91,
+1,0x9ebb,1,0x4d56,1,0x9ef9,1,0x9efe,1,0x9f05,1,0x9f0f,1,0x9f16,1,0x9f3b,
+2,0xd869,0xde00,0x3ac,0xe642,0x3b1,0x301,0x3ad,0xe642,0x3b5,0x301,0x3ae,0xe642,0x3b7,0x301,0x3af,
+0xe642,0x3b9,0x301,0x3cc,0xe642,0x3bf,0x301,0x3cd,0xe642,0x3c5,0x301,0x3ce,0xe642,0x3c9,0x301,0x386,
+0xe642,0x391,0x301,0x388,0xe642,0x395,0x301,0x389,0xe642,0x397,0x301,0x390,1,0xe643,0x3b9,0x308,
+0x301,0x38a,0xe642,0x399,0x301,0x3b0,1,0xe643,0x3c5,0x308,0x301,0x38e,0xe642,0x3a5,0x301,0x385,
+0xe642,0xa8,0x301,0x38c,0xe642,0x39f,0x301,0x38f,0xe642,0x3a9,0x301,0xc5,0xe642,0x41,0x30a,0xe6e6,
+0xe681,0x300,0xe6e6,0xe681,0x301,0xe6e6,0xe681,0x313,0xe6e6,0xe682,0x308,0x301,0x8100,0x8282,0xf71,0xf72,
+0x8100,0x8482,0xf71,0xf74,0x8100,0x8282,0xf71,0xf80,4,0xd804,0xdfc2,0xd804,0xdfc2,4,0xd804,0xdfc2,
+0xd804,0xdfb8,4,0xd804,0xdfc2,0xd804,0xdfc9,4,0xd818,0xdd1e,0xd818,0xdd1f,4,0xd818,0xdd29,0xd818,
+0xdd1f,4,0xd818,0xdd1e,0xd818,0xdd20,0xd818,0xdd21,0xd818,0xdd1f,4,0x46,0xd818,0xdd1e,0xd818,0xdd1e,
+0xd818,0xdd1f,0xd818,0xdd22,0xd818,0xdd1f,4,0x46,0xd818,0xdd1e,0xd818,0xdd29,0xd818,0xdd1f,0xd818,0xdd21,
+0xd818,0xdd20,4,0x46,0xd818,0xdd1e,0xd818,0xdd1e,0xd818,0xdd20,4,0xd81b,0xdd67,0xd81b,0xdd67,4,
+0xd818,0xdd1e,0xd818,0xdd1e,0x34b1,0x47c2,0xc24c,0xb4b1,0x4802,0xc250,4,0xd818,0xdd1e,0xd818,0xdd29,0xb4b1,
+0x47c2,0xc24e,0x3489,0xee02,0x278e,0x3489,0xf082,0x278a,0xb489,0xf242,0x2790,0x34b1,0x4782,0xc243,0x34b1,0x47c2,
+0xc246,0x34b1,0x4802,0xc24a,0xb4b1,0x4a42,0xc245,0xb4b1,0x47c2,0xc248,0xb4b7,0x59c2,0xdad0,0
 };
 
 static const uint8_t norm2_nfc_data_smallFCD[256]={

Modified: trunk/Build/source/libs/icu/icu-src/source/common/norm2allmodes.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/norm2allmodes.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/norm2allmodes.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -174,7 +174,7 @@
             errorCode=U_ILLEGAL_ARGUMENT_ERROR;
             return 0;
         }
-        return (int32_t)(spanQuickCheckYes(sArray, sArray+s.length(), errorCode)-sArray);
+        return static_cast<int32_t>(spanQuickCheckYes(sArray, sArray + s.length(), errorCode) - sArray);
     }
     virtual const char16_t *
     spanQuickCheckYes(const char16_t *src, const char16_t *limit, UErrorCode &errorCode) const = 0;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -380,8 +380,8 @@
     firstLength=firstString.length();  // In case it was -1.
     // secondLength==0: Nothing to do, and n2wi->normalizeAndAppend(nullptr, nullptr, buffer, ...) would crash.
     if(secondLength!=0) {
-        const Normalizer2 *n2=(const Normalizer2 *)norm2;
-        const Normalizer2WithImpl *n2wi=dynamic_cast<const Normalizer2WithImpl *>(n2);
+        const Normalizer2* n2 = reinterpret_cast<const Normalizer2*>(norm2);
+        const Normalizer2WithImpl* n2wi = dynamic_cast<const Normalizer2WithImpl*>(n2);
         if(n2wi!=nullptr) {
             // Avoid duplicate argument checking and support NUL-terminated src.
             UnicodeString safeMiddle;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -53,9 +53,9 @@
  */
 inline uint8_t leadByteForCP(UChar32 c) {
     if (c <= 0x7f) {
-        return (uint8_t)c;
+        return static_cast<uint8_t>(c);
     } else if (c <= 0x7ff) {
-        return (uint8_t)(0xc0+(c>>6));
+        return static_cast<uint8_t>(0xc0 + (c >> 6));
     } else {
         // Should not occur because ccc(U+0300)!=0.
         return 0xe0;
@@ -82,7 +82,7 @@
         return ((c&0x1f)<<6) | (cpStart[1]&0x3f);
     case 3:
         // no need for (c&0xf) because the upper bits are truncated after <<12 in the cast to (char16_t)
-        return (char16_t)((c<<12) | ((cpStart[1]&0x3f)<<6) | (cpStart[2]&0x3f));
+        return static_cast<char16_t>((c << 12) | ((cpStart[1] & 0x3f) << 6) | (cpStart[2] & 0x3f));
     case 4:
         return ((c&7)<<18) | ((cpStart[1]&0x3f)<<12) | ((cpStart[2]&0x3f)<<6) | (cpStart[3]&0x3f);
     default:
@@ -100,8 +100,8 @@
         uint8_t l = *p;
         uint8_t t1, t2;
         if (0xe1 <= l && l <= 0xed &&
-                (t1 = (uint8_t)(p[1] - 0x80)) <= 0x3f &&
-                (t2 = (uint8_t)(p[2] - 0x80)) <= 0x3f &&
+                (t1 = static_cast<uint8_t>(p[1] - 0x80)) <= 0x3f &&
+                (t2 = static_cast<uint8_t>(p[2] - 0x80)) <= 0x3f &&
                 (l < 0xed || t1 <= 0x1f)) {
             return ((l & 0xf) << 12) | (t1 << 6) | t2;
         }
@@ -125,7 +125,7 @@
             }
         } else if (src[1] == 0x87) {
             uint8_t t = src[2];
-            if ((int8_t)t <= (int8_t)0x82u) {
+            if (static_cast<int8_t>(t) <= static_cast<int8_t>(0x82u)) {
                 return t - (0xa7 - 0x40);
             }
         }
@@ -138,10 +138,10 @@
                      ByteSink &sink, Edits *edits) {
     char buffer[U8_MAX_LENGTH];
     int32_t length;
-    int32_t cpLength = (int32_t)(cpLimit - cpStart);
+    int32_t cpLength = static_cast<int32_t>(cpLimit - cpStart);
     if (cpLength == 1) {
         // The builder makes ASCII map to ASCII.
-        buffer[0] = (uint8_t)(*cpStart + delta);
+        buffer[0] = static_cast<uint8_t>(*cpStart + delta);
         length = 1;
     } else {
         int32_t trail = *(cpLimit-1) + delta;
@@ -150,7 +150,7 @@
             --cpLimit;
             length = 0;
             do { buffer[length++] = *cpStart++; } while (cpStart < cpLimit);
-            buffer[length++] = (uint8_t)trail;
+            buffer[length++] = static_cast<uint8_t>(trail);
         } else {
             // Decode the code point, add the delta, re-encode.
             UChar32 c = codePointFromValidUTF8(cpStart, cpLimit) + delta;
@@ -205,16 +205,16 @@
 }
 
 UBool ReorderingBuffer::equals(const char16_t *otherStart, const char16_t *otherLimit) const {
-    int32_t length=(int32_t)(limit-start);
+    int32_t length = static_cast<int32_t>(limit - start);
     return
-        length==(int32_t)(otherLimit-otherStart) &&
+        length == static_cast<int32_t>(otherLimit - otherStart) &&
         0==u_memcmp(start, otherStart, length);
 }
 
 UBool ReorderingBuffer::equals(const uint8_t *otherStart, const uint8_t *otherLimit) const {
     U_ASSERT((otherLimit - otherStart) <= INT32_MAX);  // ensured by caller
-    int32_t length = (int32_t)(limit - start);
-    int32_t otherLength = (int32_t)(otherLimit - otherStart);
+    int32_t length = static_cast<int32_t>(limit - start);
+    int32_t otherLength = static_cast<int32_t>(otherLimit - otherStart);
     // For equal strings, UTF-8 is at least as long as UTF-16, and at most three times as long.
     if (otherLength < length || (otherLength / 3) > length) {
         return false;
@@ -284,7 +284,7 @@
             U16_NEXT(s, i, length, c);
             if(i<length) {
                 if (isNFD) {
-                    leadCC = Normalizer2Impl::getCCFromYesOrMaybe(impl.getRawNorm16(c));
+                    leadCC = Normalizer2Impl::getCCFromYesOrMaybeYes(impl.getRawNorm16(c));
                 } else {
                     leadCC = impl.getCC(impl.getNorm16(c));
                 }
@@ -304,7 +304,7 @@
     }
     remainingCapacity-=cpLength;
     if(cpLength==1) {
-        *limit++=(char16_t)c;
+        *limit++ = static_cast<char16_t>(c);
     } else {
         limit[0]=U16_LEAD(c);
         limit[1]=U16_TRAIL(c);
@@ -319,7 +319,7 @@
     if(s==sLimit) {
         return true;
     }
-    int32_t length=(int32_t)(sLimit-s);
+    int32_t length = static_cast<int32_t>(sLimit - s);
     if(remainingCapacity<length && !resize(length, errorCode)) {
         return false;
     }
@@ -350,8 +350,8 @@
 }
 
 UBool ReorderingBuffer::resize(int32_t appendLength, UErrorCode &errorCode) {
-    int32_t reorderStartIndex=(int32_t)(reorderStart-start);
-    int32_t length=(int32_t)(limit-start);
+    int32_t reorderStartIndex = static_cast<int32_t>(reorderStart - start);
+    int32_t length = static_cast<int32_t>(limit - start);
     str.releaseBuffer(length);
     int32_t newCapacity=length+appendLength;
     int32_t doubleCapacity=2*str.getCapacity();
@@ -392,7 +392,7 @@
         --codePointStart;
         c=U16_GET_SUPPLEMENTARY(c2, c);
     }
-    return impl.getCCFromYesOrMaybeCP(c);
+    return impl.getCCFromYesOrMaybeYesCP(c);
 }
 
 // Inserts c somewhere before the last character.
@@ -440,15 +440,14 @@
     minNoNoCompNoMaybeCC = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]);
     minNoNoEmpty = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_EMPTY]);
     limitNoNo = static_cast<uint16_t>(inIndexes[IX_LIMIT_NO_NO]);
+    minMaybeNo = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_NO]);
+    minMaybeNoCombinesFwd = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_NO_COMBINES_FWD]);
     minMaybeYes = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_YES]);
-    U_ASSERT((minMaybeYes & 7) == 0);  // 8-aligned for noNoDelta bit fields
-    centerNoNoDelta = (minMaybeYes >> DELTA_SHIFT) - MAX_DELTA - 1;
+    U_ASSERT((minMaybeNo & 7) == 0);  // 8-aligned for noNoDelta bit fields
+    centerNoNoDelta = (minMaybeNo >> DELTA_SHIFT) - MAX_DELTA - 1;
 
     normTrie=inTrie;
-
-    maybeYesCompositions=inExtraData;
-    extraData=maybeYesCompositions+((MIN_NORMAL_MAYBE_YES-minMaybeYes)>>OFFSET_SHIFT);
-
+    extraData=inExtraData;
     smallFCD=inSmallFCD;
 }
 
@@ -486,7 +485,7 @@
     while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
                                    nullptr, nullptr, &value)) >= 0) {
         sa->add(sa->set, start);
-        if (start != end && isAlgorithmicNoNo((uint16_t)value) &&
+        if (start != end && isAlgorithmicNoNo(static_cast<uint16_t>(value)) &&
                 (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
             // Range of code points with same-norm16-value algorithmic decompositions.
             // They might have different non-zero FCD16 values.
@@ -570,7 +569,7 @@
                            int32_t destLengthEstimate,
                            UErrorCode &errorCode) const {
     if(destLengthEstimate<0 && limit!=nullptr) {
-        destLengthEstimate=(int32_t)(limit-src);
+        destLengthEstimate = static_cast<int32_t>(limit - src);
     }
     dest.remove();
     ReorderingBuffer buffer(*this, dest);
@@ -650,7 +649,7 @@
             }
         } else {
             if(isDecompYes(norm16)) {
-                uint8_t cc=getCCFromYesOrMaybe(norm16);
+                uint8_t cc=getCCFromYesOrMaybeYes(norm16);
                 if(prevCC<=cc || cc==0) {
                     prevCC=cc;
                     if(cc<=1) {
@@ -702,12 +701,13 @@
                                  UErrorCode &errorCode) const {
     // get the decomposition and the lead and trail cc's
     if (norm16 >= limitNoNo) {
-        if (isMaybeOrNonZeroCC(norm16)) {
-            return buffer.append(c, getCCFromYesOrMaybe(norm16), errorCode);
+        if (isMaybeYesOrNonZeroCC(norm16)) {
+            return buffer.append(c, getCCFromYesOrMaybeYes(norm16), errorCode);
+        } else if (norm16 < minMaybeNo) {
+            // Maps to an isCompYesAndZeroCC.
+            c=mapAlgorithmic(c, norm16);
+            norm16=getRawNorm16(c);
         }
-        // Maps to an isCompYesAndZeroCC.
-        c=mapAlgorithmic(c, norm16);
-        norm16=getRawNorm16(c);
     }
     if (norm16 < minYesNo) {
         // c does not decompose
@@ -718,17 +718,17 @@
         return buffer.appendZeroCC(jamos, jamos+Hangul::decompose(c, jamos), errorCode);
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getData(norm16);
     uint16_t firstUnit=*mapping;
     int32_t length=firstUnit&MAPPING_LENGTH_MASK;
     uint8_t leadCC, trailCC;
-    trailCC=(uint8_t)(firstUnit>>8);
+    trailCC = static_cast<uint8_t>(firstUnit >> 8);
     if(firstUnit&MAPPING_HAS_CCC_LCCC_WORD) {
-        leadCC=(uint8_t)(*(mapping-1)>>8);
+        leadCC = static_cast<uint8_t>(*(mapping - 1) >> 8);
     } else {
         leadCC=0;
     }
-    return buffer.append((const char16_t *)mapping+1, length, true, leadCC, trailCC, errorCode);
+    return buffer.append(reinterpret_cast<const char16_t*>(mapping) + 1, length, true, leadCC, trailCC, errorCode);
 }
 
 // Dual functionality:
@@ -787,9 +787,9 @@
         }
 
         // Medium-fast path: Quick check.
-        if (isMaybeOrNonZeroCC(norm16)) {
+        if (isMaybeYesOrNonZeroCC(norm16)) {
             // Does not decompose.
-            uint8_t cc = getCCFromYesOrMaybe(norm16);
+            uint8_t cc = getCCFromYesOrMaybeYes(norm16);
             if (prevCC <= cc || cc == 0) {
                 prevCC = cc;
                 if (cc <= 1) {
@@ -836,7 +836,7 @@
         }
         // We already know there was a change if the original character decomposed;
         // otherwise compare.
-        if (isMaybeOrNonZeroCC(norm16) && buffer.equals(prevBoundary, src)) {
+        if (isMaybeYesOrNonZeroCC(norm16) && buffer.equals(prevBoundary, src)) {
             if (!ByteSinkUtil::appendUnchanged(prevBoundary, src,
                                                *sink, options, edits, errorCode)) {
                 break;
@@ -867,9 +867,9 @@
         // Get the decomposition and the lead and trail cc's.
         UChar32 c = U_SENTINEL;
         if (norm16 >= limitNoNo) {
-            if (isMaybeOrNonZeroCC(norm16)) {
+            if (isMaybeYesOrNonZeroCC(norm16)) {
                 // No comp boundaries around this character.
-                uint8_t cc = getCCFromYesOrMaybe(norm16);
+                uint8_t cc = getCCFromYesOrMaybeYes(norm16);
                 if (cc == 0 && stopAt == STOP_AT_DECOMP_BOUNDARY) {
                     return prevSrc;
                 }
@@ -881,14 +881,15 @@
                     return src;
                 }
                 continue;
+            } else if (norm16 < minMaybeNo) {
+                // Maps to an isCompYesAndZeroCC.
+                if (stopAt != STOP_AT_LIMIT) {
+                    return prevSrc;
+                }
+                c = codePointFromValidUTF8(prevSrc, src);
+                c = mapAlgorithmic(c, norm16);
+                norm16 = getRawNorm16(c);
             }
-            // Maps to an isCompYesAndZeroCC.
-            if (stopAt != STOP_AT_LIMIT) {
-                return prevSrc;
-            }
-            c = codePointFromValidUTF8(prevSrc, src);
-            c = mapAlgorithmic(c, norm16);
-            norm16 = getRawNorm16(c);
         } else if (stopAt != STOP_AT_LIMIT && norm16 < minNoNoCompNoMaybeCC) {
             return prevSrc;
         }
@@ -918,13 +919,13 @@
             }
         } else {
             // The character decomposes, get everything from the variable-length extra data.
-            const uint16_t *mapping = getMapping(norm16);
+            const uint16_t *mapping = getData(norm16);
             uint16_t firstUnit = *mapping;
             int32_t length = firstUnit & MAPPING_LENGTH_MASK;
-            uint8_t trailCC = (uint8_t)(firstUnit >> 8);
+            uint8_t trailCC = static_cast<uint8_t>(firstUnit >> 8);
             uint8_t leadCC;
             if (firstUnit & MAPPING_HAS_CCC_LCCC_WORD) {
-                leadCC = (uint8_t)(*(mapping-1) >> 8);
+                leadCC = static_cast<uint8_t>(*(mapping - 1) >> 8);
             } else {
                 leadCC = 0;
             }
@@ -931,7 +932,7 @@
             if (leadCC == 0 && stopAt == STOP_AT_DECOMP_BOUNDARY) {
                 return prevSrc;
             }
-            if (!buffer.append((const char16_t *)mapping+1, length, true, leadCC, trailCC, errorCode)) {
+            if (!buffer.append(reinterpret_cast<const char16_t*>(mapping) + 1, length, true, leadCC, trailCC, errorCode)) {
                 return nullptr;
             }
         }
@@ -946,7 +947,7 @@
 const char16_t *
 Normalizer2Impl::getDecomposition(UChar32 c, char16_t buffer[4], int32_t &length) const {
     uint16_t norm16;
-    if(c<minDecompNoCP || isMaybeOrNonZeroCC(norm16=getNorm16(c))) {
+    if(c<minDecompNoCP || isMaybeYesOrNonZeroCC(norm16=getNorm16(c))) {
         // c does not decompose
         return nullptr;
     }
@@ -968,9 +969,9 @@
         return buffer;
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getData(norm16);
     length=*mapping&MAPPING_LENGTH_MASK;
-    return (const char16_t *)mapping+1;
+    return reinterpret_cast<const char16_t*>(mapping) + 1;
 }
 
 // The capacity of the buffer must be 30=MAPPING_LENGTH_MASK-1
@@ -995,7 +996,7 @@
         return buffer;
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getData(norm16);
     uint16_t firstUnit=*mapping;
     int32_t mLength=firstUnit&MAPPING_LENGTH_MASK;  // length of normal mapping
     if(firstUnit&MAPPING_HAS_RAW_MAPPING) {
@@ -1005,17 +1006,17 @@
         uint16_t rm0=*rawMapping;
         if(rm0<=MAPPING_LENGTH_MASK) {
             length=rm0;
-            return (const char16_t *)rawMapping-rm0;
+            return reinterpret_cast<const char16_t*>(rawMapping) - rm0;
         } else {
             // Copy the normal mapping and replace its first two code units with rm0.
-            buffer[0]=(char16_t)rm0;
-            u_memcpy(buffer+1, (const char16_t *)mapping+1+2, mLength-2);
+            buffer[0] = static_cast<char16_t>(rm0);
+            u_memcpy(buffer + 1, reinterpret_cast<const char16_t*>(mapping) + 1 + 2, mLength - 2);
             length=mLength-1;
             return buffer;
         }
     } else {
         length=mLength;
-        return (const char16_t *)mapping+1;
+        return reinterpret_cast<const char16_t*>(mapping) + 1;
     }
 }
 
@@ -1052,7 +1053,7 @@
         limit=u_strchr(p, 0);
     }
 
-    if (buffer.append(src, (int32_t)(p - src), false, firstCC, prevCC, errorCode)) {
+    if (buffer.append(src, static_cast<int32_t>(p - src), false, firstCC, prevCC, errorCode)) {
         buffer.appendZeroCC(p, limit, errorCode);
     }
 }
@@ -1070,7 +1071,7 @@
         return norm16 <= MIN_NORMAL_MAYBE_YES || norm16 == JAMO_VT;
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getDataForYesOrNo(norm16);
     uint16_t firstUnit=*mapping;
     // true if leadCC==0 (hasFCDBoundaryBefore())
     return (firstUnit&MAPPING_HAS_CCC_LCCC_WORD)==0 || (*(mapping-1)&0xff00)==0;
@@ -1091,14 +1092,15 @@
         return true;
     }
     if (norm16 >= limitNoNo) {
-        if (isMaybeOrNonZeroCC(norm16)) {
+        if (isMaybeYesOrNonZeroCC(norm16)) {
             return norm16 <= MIN_NORMAL_MAYBE_YES || norm16 == JAMO_VT;
+        } else if (norm16 < minMaybeNo) {
+            // Maps to an isCompYesAndZeroCC.
+            return (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1;
         }
-        // Maps to an isCompYesAndZeroCC.
-        return (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1;
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getData(norm16);
     uint16_t firstUnit=*mapping;
     // decomp after-boundary: same as hasFCDBoundaryAfter(),
     // fcd16<=1 || trailCC==0
@@ -1140,13 +1142,13 @@
     if(trail<COMP_1_TRAIL_LIMIT) {
         // trail character is 0..33FF
         // result entry may have 2 or 3 units
-        key1=(uint16_t)(trail<<1);
+        key1 = static_cast<uint16_t>(trail << 1);
         while(key1>(firstUnit=*list)) {
             list+=2+(firstUnit&COMP_1_TRIPLE);
         }
         if(key1==(firstUnit&COMP_1_TRAIL_MASK)) {
             if(firstUnit&COMP_1_TRIPLE) {
-                return ((int32_t)list[1]<<16)|list[2];
+                return (static_cast<int32_t>(list[1]) << 16) | list[2];
             } else {
                 return list[1];
             }
@@ -1154,10 +1156,10 @@
     } else {
         // trail character is 3400..10FFFF
         // result entry has 3 units
-        key1=(uint16_t)(COMP_1_TRAIL_LIMIT+
+        key1 = static_cast<uint16_t>(COMP_1_TRAIL_LIMIT +
                         (((trail>>COMP_1_TRAIL_SHIFT))&
                           ~COMP_1_TRIPLE));
-        uint16_t key2=(uint16_t)(trail<<COMP_2_TRAIL_SHIFT);
+        uint16_t key2 = static_cast<uint16_t>(trail << COMP_2_TRAIL_SHIFT);
         uint16_t secondUnit;
         for(;;) {
             if(key1>(firstUnit=*list)) {
@@ -1170,7 +1172,7 @@
                         list+=3;
                     }
                 } else if(key2==(secondUnit&COMP_2_TRAIL_MASK)) {
-                    return ((int32_t)(secondUnit&~COMP_2_TRAIL_MASK)<<16)|list[2];
+                    return (static_cast<int32_t>(secondUnit & ~COMP_2_TRAIL_MASK) << 16) | list[2];
                 } else {
                     break;
                 }
@@ -1195,7 +1197,7 @@
             compositeAndFwd=list[1];
             list+=2;
         } else {
-            compositeAndFwd=(((int32_t)list[1]&~COMP_2_TRAIL_MASK)<<16)|list[2];
+            compositeAndFwd = ((static_cast<int32_t>(list[1]) & ~COMP_2_TRAIL_MASK) << 16) | list[2];
             list+=3;
         }
         UChar32 composite=compositeAndFwd>>1;
@@ -1240,7 +1242,7 @@
 
     for(;;) {
         UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
-        cc=getCCFromYesOrMaybe(norm16);
+        cc=getCCFromYesOrMaybeYes(norm16);
         if( // this character combines backward and
             isMaybe(norm16) &&
             // we have seen a starter that combines forward and
@@ -1252,15 +1254,15 @@
                 // c is a Jamo V/T, see if we can compose it with the previous character.
                 if(c<Hangul::JAMO_T_BASE) {
                     // c is a Jamo Vowel, compose with previous Jamo L and following Jamo T.
-                    char16_t prev=(char16_t)(*starter-Hangul::JAMO_L_BASE);
+                    char16_t prev = static_cast<char16_t>(*starter - Hangul::JAMO_L_BASE);
                     if(prev<Hangul::JAMO_L_COUNT) {
                         pRemove=p-1;
-                        char16_t syllable=(char16_t)
-                            (Hangul::HANGUL_BASE+
+                        char16_t syllable = static_cast<char16_t>(
+                            Hangul::HANGUL_BASE +
                              (prev*Hangul::JAMO_V_COUNT+(c-Hangul::JAMO_V_BASE))*
                              Hangul::JAMO_T_COUNT);
                         char16_t t;
-                        if(p!=limit && (t=(char16_t)(*p-Hangul::JAMO_T_BASE))<Hangul::JAMO_T_COUNT) {
+                        if (p != limit && (t = static_cast<char16_t>(*p - Hangul::JAMO_T_BASE)) < Hangul::JAMO_T_COUNT) {
                             ++p;
                             syllable+=t;  // The next character was a Jamo T.
                         }
@@ -1298,7 +1300,7 @@
                         starter[0]=U16_LEAD(composite);
                         starter[1]=U16_TRAIL(composite);
                     } else {
-                        *starter=(char16_t)composite;
+                        *starter = static_cast<char16_t>(composite);
                         // The composite is shorter than the starter,
                         // move the intermediate characters forward one.
                         starterIsSupplementary=false;
@@ -1323,7 +1325,7 @@
                     *--starter=U16_LEAD(composite);  // undo the temporary increment
                 } else {
                     // both are on the BMP
-                    *starter=(char16_t)composite;
+                    *starter = static_cast<char16_t>(composite);
                 }
 
                 /* remove the combining mark by moving the following text over it */
@@ -1390,8 +1392,11 @@
     } else if(norm16<minYesNoMappingsOnly) {
         // a combines forward.
         if(isJamoL(norm16)) {
+            if (b < Hangul::JAMO_V_BASE) {
+                return U_SENTINEL;
+            }
             b-=Hangul::JAMO_V_BASE;
-            if(0<=b && b<Hangul::JAMO_V_COUNT) {
+            if(b<Hangul::JAMO_V_COUNT) {
                 return
                     (Hangul::HANGUL_BASE+
                      ((a-Hangul::JAMO_L_BASE)*Hangul::JAMO_V_COUNT+b)*
@@ -1400,8 +1405,11 @@
                 return U_SENTINEL;
             }
         } else if(isHangulLV(norm16)) {
+            if (b <= Hangul::JAMO_T_BASE) {
+               return U_SENTINEL;
+            }
             b-=Hangul::JAMO_T_BASE;
-            if(0<b && b<Hangul::JAMO_T_COUNT) {  // not b==0!
+            if(b<Hangul::JAMO_T_COUNT) {  // not b==0!
                 return a+b;
             } else {
                 return U_SENTINEL;
@@ -1408,7 +1416,7 @@
             }
         } else {
             // 'a' has a compositions list in extraData
-            list=getMapping(norm16);
+            list=getDataForYesOrNo(norm16);
             if(norm16>minYesNo) {  // composite 'a' has both mapping & compositions list
                 list+=  // mapping pointer
                     1+  // +1 to skip the first unit with the mapping length
@@ -1415,10 +1423,15 @@
                     (*list&MAPPING_LENGTH_MASK);  // + mapping length
             }
         }
-    } else if(norm16<minMaybeYes || MIN_NORMAL_MAYBE_YES<=norm16) {
+    } else if(norm16<minMaybeNoCombinesFwd || MIN_NORMAL_MAYBE_YES<=norm16) {
         return U_SENTINEL;
     } else {
-        list=getCompositionsListForMaybe(norm16);
+        list=getDataForMaybe(norm16);
+        if(norm16<minMaybeYes) {  // composite 'a' has both mapping & compositions list
+            list+=  // mapping pointer
+                1+  // +1 to skip the first unit with the mapping length
+                (*list&MAPPING_LENGTH_MASK);  // + mapping length
+        }
     }
     if(b<0 || 0x10ffff<b) {  // combine(list, b) requires a valid code point b
         return U_SENTINEL;
@@ -1496,12 +1509,12 @@
         }
         // isCompYesAndZeroCC(norm16) is false, that is, norm16>=minNoNo.
         // The current character is either a "noNo" (has a mapping)
-        // or a "maybeYes" (combines backward)
+        // or a "maybeYes" / "maybeNo" (combines backward)
         // or a "yesYes" with ccc!=0.
         // It is not a Hangul syllable or Jamo L because those have "yes" properties.
 
         // Medium-fast path: Handle cases that do not require full decomposition and recomposition.
-        if (!isMaybeOrNonZeroCC(norm16)) {  // minNoNo <= norm16 < minMaybeYes
+        if (norm16 < minMaybeNo) {  // minNoNo <= norm16 < minMaybeNo
             if (!doCompose) {
                 return false;
             }
@@ -1528,7 +1541,7 @@
                     if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) {
                         break;
                     }
-                    const char16_t *mapping = reinterpret_cast<const char16_t *>(getMapping(norm16));
+                    const char16_t *mapping = reinterpret_cast<const char16_t *>(getDataForYesOrNo(norm16));
                     int32_t length = *mapping++ & MAPPING_LENGTH_MASK;
                     if(!buffer.appendZeroCC(mapping, mapping + length, errorCode)) {
                         break;
@@ -1556,7 +1569,7 @@
             if(c<Hangul::JAMO_T_BASE) {
                 // The current character is a Jamo Vowel,
                 // compose with previous Jamo L and following Jamo T.
-                char16_t l = (char16_t)(prev-Hangul::JAMO_L_BASE);
+                char16_t l = static_cast<char16_t>(prev - Hangul::JAMO_L_BASE);
                 if(l<Hangul::JAMO_L_COUNT) {
                     if (!doCompose) {
                         return false;
@@ -1563,7 +1576,7 @@
                     }
                     int32_t t;
                     if (src != limit &&
-                            0 < (t = ((int32_t)*src - Hangul::JAMO_T_BASE)) &&
+                            0 < (t = (static_cast<int32_t>(*src) - Hangul::JAMO_T_BASE)) &&
                             t < Hangul::JAMO_T_COUNT) {
                         // The next character is a Jamo T.
                         ++src;
@@ -1581,7 +1594,7 @@
                         if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) {
                             break;
                         }
-                        if(!buffer.appendBMP((char16_t)syllable, 0, errorCode)) {
+                        if (!buffer.appendBMP(static_cast<char16_t>(syllable), 0, errorCode)) {
                             break;
                         }
                         prevBoundary = src;
@@ -1606,7 +1619,7 @@
                 if (prevBoundary != prevSrc && !buffer.appendZeroCC(prevBoundary, prevSrc, errorCode)) {
                     break;
                 }
-                if(!buffer.appendBMP((char16_t)syllable, 0, errorCode)) {
+                if (!buffer.appendBMP(static_cast<char16_t>(syllable), 0, errorCode)) {
                     break;
                 }
                 prevBoundary = src;
@@ -1757,7 +1770,7 @@
         }
         // isCompYesAndZeroCC(norm16) is false, that is, norm16>=minNoNo.
         // The current character is either a "noNo" (has a mapping)
-        // or a "maybeYes" (combines backward)
+        // or a "maybeYes" / "maybeNo" (combines backward)
         // or a "yesYes" with ccc!=0.
         // It is not a Hangul syllable or Jamo L because those have "yes" properties.
 
@@ -1778,8 +1791,9 @@
             }
         }
 
-        if(isMaybeOrNonZeroCC(norm16)) {
-            uint8_t cc=getCCFromYesOrMaybe(norm16);
+        if (norm16 >= minMaybeNo) {
+            uint16_t fcd16 = getFCD16FromMaybeOrNonZeroCC(norm16);
+            uint8_t cc = fcd16 >> 8;
             if (onlyContiguous /* FCC */ && cc != 0 &&
                     getTrailCCFromCompYesAndZeroCC(prevNorm16) > cc) {
                 // The [prevBoundary..prevSrc[ character
@@ -1800,11 +1814,12 @@
                     if (src == limit) {
                         return src;
                     }
-                    uint8_t prevCC = cc;
+                    uint8_t prevCC = fcd16;
                     nextSrc = src;
                     UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, norm16);
-                    if (isMaybeOrNonZeroCC(norm16)) {
-                        cc = getCCFromYesOrMaybe(norm16);
+                    if (norm16 >= minMaybeNo) {
+                        fcd16 = getFCD16FromMaybeOrNonZeroCC(norm16);
+                        cc = fcd16 >> 8;
                         if (!(prevCC <= cc || cc == 0)) {
                             break;
                         }
@@ -1839,11 +1854,11 @@
         if(src!=firstStarterInSrc) {
             const char16_t *lastStarterInDest=findPreviousCompBoundary(buffer.getStart(),
                                                                     buffer.getLimit(), onlyContiguous);
-            int32_t destSuffixLength=(int32_t)(buffer.getLimit()-lastStarterInDest);
+            int32_t destSuffixLength = static_cast<int32_t>(buffer.getLimit() - lastStarterInDest);
             UnicodeString middle(lastStarterInDest, destSuffixLength);
             buffer.removeSuffix(destSuffixLength);
             safeMiddle=middle;
-            middle.append(src, (int32_t)(firstStarterInSrc-src));
+            middle.append(src, static_cast<int32_t>(firstStarterInSrc - src));
             const char16_t *middleStart=middle.getBuffer();
             compose(middleStart, middleStart+middle.length(), onlyContiguous,
                     true, buffer, errorCode);
@@ -1897,12 +1912,12 @@
         }
         // isCompYesAndZeroCC(norm16) is false, that is, norm16>=minNoNo.
         // The current character is either a "noNo" (has a mapping)
-        // or a "maybeYes" (combines backward)
+        // or a "maybeYes" / "maybeNo" (combines backward)
         // or a "yesYes" with ccc!=0.
         // It is not a Hangul syllable or Jamo L because those have "yes" properties.
 
         // Medium-fast path: Handle cases that do not require full decomposition and recomposition.
-        if (!isMaybeOrNonZeroCC(norm16)) {  // minNoNo <= norm16 < minMaybeYes
+        if (norm16 < minMaybeNo) {  // minNoNo <= norm16 < minMaybeNo
             if (sink == nullptr) {
                 return false;
             }
@@ -1931,9 +1946,9 @@
                                                            *sink, options, edits, errorCode)) {
                         break;
                     }
-                    const uint16_t *mapping = getMapping(norm16);
+                    const uint16_t *mapping = getDataForYesOrNo(norm16);
                     int32_t length = *mapping++ & MAPPING_LENGTH_MASK;
-                    if (!ByteSinkUtil::appendChange(prevSrc, src, (const char16_t *)mapping, length,
+                    if (!ByteSinkUtil::appendChange(prevSrc, src, reinterpret_cast<const char16_t*>(mapping), length,
                                                     *sink, edits, errorCode)) {
                         break;
                     }
@@ -1952,7 +1967,7 @@
                         break;
                     }
                     if (edits != nullptr) {
-                        edits->addReplace((int32_t)(src - prevSrc), 0);
+                        edits->addReplace(static_cast<int32_t>(src - prevSrc), 0);
                     }
                     prevBoundary = src;
                     continue;
@@ -1970,7 +1985,7 @@
                 // The current character is a Jamo Vowel,
                 // compose with previous Jamo L and following Jamo T.
                 UChar32 l = prev - Hangul::JAMO_L_BASE;
-                if ((uint32_t)l < Hangul::JAMO_L_COUNT) {
+                if (static_cast<uint32_t>(l) < Hangul::JAMO_L_COUNT) {
                     if (sink == nullptr) {
                         return false;
                     }
@@ -2198,10 +2213,10 @@
     if (start == p) {
         return 0;
     }
-    int32_t i = (int32_t)(p - start);
+    int32_t i = static_cast<int32_t>(p - start);
     UChar32 c;
     U16_PREV(start, 0, i, c);
-    return (uint8_t)getFCD16(c);
+    return static_cast<uint8_t>(getFCD16(c));
 }
 
 uint8_t Normalizer2Impl::getPreviousTrailCC(const uint8_t *start, const uint8_t *p) const {
@@ -2208,10 +2223,10 @@
     if (start == p) {
         return 0;
     }
-    int32_t i = (int32_t)(p - start);
+    int32_t i = static_cast<int32_t>(p - start);
     UChar32 c;
     U8_PREV(start, 0, i, c);
-    return (uint8_t)getFCD16(c);
+    return static_cast<uint8_t>(getFCD16(c));
 }
 
 // Note: normalizer2impl.cpp r30982 (2011-nov-27)
@@ -2239,7 +2254,7 @@
             return norm16|(norm16<<8);
         } else if(norm16>=minMaybeYes) {
             return 0;
-        } else {  // isDecompNoAlgorithmic(norm16)
+        } else if(norm16<minMaybeNo) {  // isDecompNoAlgorithmic(norm16)
             uint16_t deltaTrailCC = norm16 & DELTA_TCCC_MASK;
             if (deltaTrailCC <= DELTA_TCCC_1) {
                 return deltaTrailCC >> OFFSET_SHIFT;
@@ -2254,7 +2269,7 @@
         return 0;
     }
     // c decomposes, get everything from the variable-length extra data
-    const uint16_t *mapping=getMapping(norm16);
+    const uint16_t *mapping=getData(norm16);
     uint16_t firstUnit=*mapping;
     norm16=firstUnit>>8;  // tccc
     if(firstUnit&MAPPING_HAS_CCC_LCCC_WORD) {
@@ -2266,6 +2281,23 @@
 #pragma optimize( "", on )
 #endif
 
+uint16_t Normalizer2Impl::getFCD16FromMaybeOrNonZeroCC(uint16_t norm16) const {
+    U_ASSERT(norm16 >= minMaybeNo);
+    if (norm16 >= MIN_NORMAL_MAYBE_YES) {
+        // combining mark
+        norm16 = getCCFromNormalYesOrMaybe(norm16);
+        return norm16 | (norm16<<8);
+    } else if (norm16 >= minMaybeYes) {
+        return 0;
+    }
+    // c decomposes, get everything from the variable-length extra data
+    const uint16_t *mapping = getDataForMaybe(norm16);
+    uint16_t firstUnit = *mapping;
+    // maybeNo has lccc = 0
+    U_ASSERT((firstUnit & MAPPING_HAS_CCC_LCCC_WORD) == 0 || (*(mapping - 1) & 0xff00) == 0);
+    return firstUnit >> 8;  // tccc
+}
+
 // Dual functionality:
 // buffer!=nullptr: normalize
 // buffer==nullptr: isNormalized/quickCheck/spanQuickCheckYes
@@ -2389,7 +2421,7 @@
              * already but is now going to be decomposed.
              * prevSrc is set to after what was copied/appended.
              */
-            buffer->removeSuffix((int32_t)(prevSrc-prevBoundary));
+            buffer->removeSuffix(static_cast<int32_t>(prevSrc - prevBoundary));
             /*
              * Find the part of the source that needs to be decomposed,
              * up to the next safe boundary.
@@ -2420,11 +2452,11 @@
         if(src!=firstBoundaryInSrc) {
             const char16_t *lastBoundaryInDest=findPreviousFCDBoundary(buffer.getStart(),
                                                                     buffer.getLimit());
-            int32_t destSuffixLength=(int32_t)(buffer.getLimit()-lastBoundaryInDest);
+            int32_t destSuffixLength = static_cast<int32_t>(buffer.getLimit() - lastBoundaryInDest);
             UnicodeString middle(lastBoundaryInDest, destSuffixLength);
             buffer.removeSuffix(destSuffixLength);
             safeMiddle=middle;
-            middle.append(src, (int32_t)(firstBoundaryInSrc-src));
+            middle.append(src, static_cast<int32_t>(firstBoundaryInSrc - src));
             const char16_t *middleStart=middle.getBuffer();
             makeFCD(middleStart, middleStart+middle.length(), &buffer, errorCode);
             if(U_FAILURE(errorCode)) {
@@ -2501,8 +2533,8 @@
             if(U_FAILURE(errorCode)) {
                 return;
             }
-            UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK);
-            canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size();
+            UChar32 firstOrigin = static_cast<UChar32>(canonValue & CANON_VALUE_MASK);
+            canonValue = (canonValue & ~CANON_VALUE_MASK) | CANON_HAS_SET | static_cast<uint32_t>(canonStartSets.size());
             umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode);
             canonStartSets.adoptElement(lpSet.orphan(), errorCode);
             if (U_FAILURE(errorCode)) {
@@ -2512,7 +2544,7 @@
                 set->add(firstOrigin);
             }
         } else {
-            set=(UnicodeSet *)canonStartSets[(int32_t)(canonValue&CANON_VALUE_MASK)];
+            set = static_cast<UnicodeSet*>(canonStartSets[static_cast<int32_t>(canonValue & CANON_VALUE_MASK)]);
         }
         set->add(origin);
     }
@@ -2569,9 +2601,11 @@
 void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, const uint16_t norm16,
                                                   CanonIterData &newData,
                                                   UErrorCode &errorCode) const {
-    if(isInert(norm16) || (minYesNo<=norm16 && norm16<minNoNo)) {
+    if(isInert(norm16) ||
+            (minYesNo<=norm16 && norm16<minNoNo) ||
+            (minMaybeNo<=norm16 && norm16<minMaybeYes)) {
         // Inert, or 2-way mapping (including Hangul syllable).
-        // We do not write a canonStartSet for any yesNo character.
+        // We do not write a canonStartSet for any yesNo/maybeNo character.
         // Composites from 2-way mappings are added at runtime from the
         // starter's compositions list, and the other characters in
         // 2-way mappings get CANON_NOT_SEGMENT_STARTER set because they are
@@ -2581,7 +2615,7 @@
     for(UChar32 c=start; c<=end; ++c) {
         uint32_t oldValue = umutablecptrie_get(newData.mutableTrie, c);
         uint32_t newValue=oldValue;
-        if(isMaybeOrNonZeroCC(norm16)) {
+        if(isMaybeYesOrNonZeroCC(norm16)) {
             // not a segment starter if it occurs in a decomposition or has cc!=0
             newValue|=CANON_NOT_SEGMENT_STARTER;
             if(norm16<MIN_NORMAL_MAYBE_YES) {
@@ -2603,7 +2637,7 @@
             }
             if (norm16_2 > minYesNo) {
                 // c decomposes, get everything from the variable-length extra data
-                const uint16_t *mapping=getMapping(norm16_2);
+                const uint16_t *mapping=getDataForYesOrNo(norm16_2);
                 uint16_t firstUnit=*mapping;
                 int32_t length=firstUnit&MAPPING_LENGTH_MASK;
                 if((firstUnit&MAPPING_HAS_CCC_LCCC_WORD)!=0) {
@@ -2651,11 +2685,11 @@
 }
 
 int32_t Normalizer2Impl::getCanonValue(UChar32 c) const {
-    return (int32_t)ucptrie_get(fCanonIterData->trie, c);
+    return static_cast<int32_t>(ucptrie_get(fCanonIterData->trie, c));
 }
 
 const UnicodeSet &Normalizer2Impl::getCanonStartSet(int32_t n) const {
-    return *(const UnicodeSet *)fCanonIterData->canonStartSets[n];
+    return *static_cast<const UnicodeSet*>(fCanonIterData->canonStartSets[n]);
 }
 
 UBool Normalizer2Impl::isCanonSegmentStarter(UChar32 c) const {
@@ -2678,7 +2712,7 @@
         uint16_t norm16=getRawNorm16(c);
         if(norm16==JAMO_L) {
             UChar32 syllable=
-                (UChar32)(Hangul::HANGUL_BASE+(c-Hangul::JAMO_L_BASE)*Hangul::JAMO_VT_COUNT);
+                static_cast<UChar32>(Hangul::HANGUL_BASE + (c - Hangul::JAMO_L_BASE) * Hangul::JAMO_VT_COUNT);
             set.add(syllable, syllable+Hangul::JAMO_VT_COUNT-1);
         } else {
             addComposites(getCompositionsList(norm16), set);
@@ -2722,7 +2756,7 @@
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        (1<=formatVersion0 && formatVersion0<=4)
+        (1<=formatVersion0 && formatVersion0<=5)
     )) {
         udata_printError(ds, "unorm2_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as Normalizer2 data\n",
                          pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -2741,8 +2775,10 @@
         minIndexesLength=Normalizer2Impl::IX_MIN_MAYBE_YES+1;
     } else if(formatVersion0==2) {
         minIndexesLength=Normalizer2Impl::IX_MIN_YES_NO_MAPPINGS_ONLY+1;
+    } else if(formatVersion0<=4) {
+        minIndexesLength=Normalizer2Impl::IX_MIN_LCCC_CP+1;
     } else {
-        minIndexesLength=Normalizer2Impl::IX_MIN_LCCC_CP+1;
+        minIndexesLength=Normalizer2Impl::IX_MIN_MAYBE_NO_COMBINES_FWD+1;
     }
 
     if(length>=0) {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -81,10 +81,10 @@
         return 0<=c && c<HANGUL_COUNT && c%JAMO_T_COUNT==0;
     }
     static inline UBool isJamoL(UChar32 c) {
-        return (uint32_t)(c-JAMO_L_BASE)<JAMO_L_COUNT;
+        return static_cast<uint32_t>(c - JAMO_L_BASE) < JAMO_L_COUNT;
     }
     static inline UBool isJamoV(UChar32 c) {
-        return (uint32_t)(c-JAMO_V_BASE)<JAMO_V_COUNT;
+        return static_cast<uint32_t>(c - JAMO_V_BASE) < JAMO_V_COUNT;
     }
     static inline UBool isJamoT(UChar32 c) {
         int32_t t=c-JAMO_T_BASE;
@@ -103,12 +103,12 @@
         c-=HANGUL_BASE;
         UChar32 c2=c%JAMO_T_COUNT;
         c/=JAMO_T_COUNT;
-        buffer[0]=(char16_t)(JAMO_L_BASE+c/JAMO_V_COUNT);
-        buffer[1]=(char16_t)(JAMO_V_BASE+c%JAMO_V_COUNT);
+        buffer[0] = static_cast<char16_t>(JAMO_L_BASE + c / JAMO_V_COUNT);
+        buffer[1] = static_cast<char16_t>(JAMO_V_BASE + c % JAMO_V_COUNT);
         if(c2==0) {
             return 2;
         } else {
-            buffer[2]=(char16_t)(JAMO_T_BASE+c2);
+            buffer[2] = static_cast<char16_t>(JAMO_T_BASE + c2);
             return 3;
         }
     }
@@ -123,11 +123,11 @@
         UChar32 c2=c%JAMO_T_COUNT;
         if(c2==0) {
             c/=JAMO_T_COUNT;
-            buffer[0]=(char16_t)(JAMO_L_BASE+c/JAMO_V_COUNT);
-            buffer[1]=(char16_t)(JAMO_V_BASE+c%JAMO_V_COUNT);
+            buffer[0] = static_cast<char16_t>(JAMO_L_BASE + c / JAMO_V_COUNT);
+            buffer[1] = static_cast<char16_t>(JAMO_V_BASE + c % JAMO_V_COUNT);
         } else {
-            buffer[0]=(char16_t)(orig-c2);  // LV syllable
-            buffer[1]=(char16_t)(JAMO_T_BASE+c2);
+            buffer[0] = static_cast<char16_t>(orig - c2); // LV syllable
+            buffer[1] = static_cast<char16_t>(JAMO_T_BASE + c2);
         }
     }
 private:
@@ -141,19 +141,19 @@
     /** Constructs only; init() should be called. */
     ReorderingBuffer(const Normalizer2Impl &ni, UnicodeString &dest) :
         impl(ni), str(dest),
-        start(NULL), reorderStart(NULL), limit(NULL),
+        start(nullptr), reorderStart(nullptr), limit(nullptr),
         remainingCapacity(0), lastCC(0) {}
     /** Constructs, removes the string contents, and initializes for a small initial capacity. */
     ReorderingBuffer(const Normalizer2Impl &ni, UnicodeString &dest, UErrorCode &errorCode);
     ~ReorderingBuffer() {
-        if(start!=NULL) {
-            str.releaseBuffer((int32_t)(limit-start));
+        if (start != nullptr) {
+            str.releaseBuffer(static_cast<int32_t>(limit - start));
         }
     }
     UBool init(int32_t destCapacity, UErrorCode &errorCode);
 
     UBool isEmpty() const { return start==limit; }
-    int32_t length() const { return (int32_t)(limit-start); }
+    int32_t length() const { return static_cast<int32_t>(limit - start); }
     char16_t *getStart() { return start; }
     char16_t *getLimit() { return limit; }
     uint8_t getLastCC() const { return lastCC; }
@@ -163,7 +163,7 @@
 
     UBool append(UChar32 c, uint8_t cc, UErrorCode &errorCode) {
         return (c<=0xffff) ?
-            appendBMP((char16_t)c, cc, errorCode) :
+            appendBMP(static_cast<char16_t>(c), cc, errorCode) :
             appendSupplementary(c, cc, errorCode);
     }
     UBool append(const char16_t *s, int32_t length, UBool isNFD,
@@ -190,12 +190,12 @@
     void remove();
     void removeSuffix(int32_t suffixLength);
     void setReorderingLimit(char16_t *newLimit) {
-        remainingCapacity+=(int32_t)(limit-newLimit);
+        remainingCapacity += static_cast<int32_t>(limit - newLimit);
         reorderStart=limit=newLimit;
         lastCC=0;
     }
     void copyReorderableSuffixTo(UnicodeString &s) const {
-        s.setTo(ConstChar16Ptr(reorderStart), (int32_t)(limit-reorderStart));
+        s.setTo(ConstChar16Ptr(reorderStart), static_cast<int32_t>(limit - reorderStart));
     }
 private:
     /*
@@ -215,7 +215,7 @@
     void insert(UChar32 c, uint8_t cc);
     static void writeCodePoint(char16_t *p, UChar32 c) {
         if(c<=0xffff) {
-            *p=(char16_t)c;
+            *p = static_cast<char16_t>(c);
         } else {
             p[0]=U16_LEAD(c);
             p[1]=U16_TRAIL(c);
@@ -241,11 +241,11 @@
  * Low-level implementation of the Unicode Normalization Algorithm.
  * For the data structure and details see the documentation at the end of
  * this normalizer2impl.h and in the design doc at
- * https://icu.unicode.org/design/normalization/custom
+ * https://unicode-org.github.io/icu/design/normalization/custom.html
  */
 class U_COMMON_API Normalizer2Impl : public UObject {
 public:
-    Normalizer2Impl() : normTrie(NULL), fCanonIterData(NULL) { }
+    Normalizer2Impl() : normTrie(nullptr), fCanonIterData(nullptr) {}
     virtual ~Normalizer2Impl();
 
     void init(const int32_t *inIndexes, const UCPTrie *inTrie,
@@ -271,14 +271,14 @@
     UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const {
         if(norm16<minNoNo || MIN_YES_YES_WITH_CC<=norm16) {
             return UNORM_YES;
-        } else if(minMaybeYes<=norm16) {
+        } else if(minMaybeNo<=norm16) {
             return UNORM_MAYBE;
         } else {
             return UNORM_NO;
         }
     }
-    UBool isAlgorithmicNoNo(uint16_t norm16) const { return limitNoNo<=norm16 && norm16<minMaybeYes; }
-    UBool isCompNo(uint16_t norm16) const { return minNoNo<=norm16 && norm16<minMaybeYes; }
+    UBool isAlgorithmicNoNo(uint16_t norm16) const { return limitNoNo<=norm16 && norm16<minMaybeNo; }
+    UBool isCompNo(uint16_t norm16) const { return minNoNo<=norm16 && norm16<minMaybeNo; }
     UBool isDecompYes(uint16_t norm16) const { return norm16<minYesNo || minMaybeYes<=norm16; }
 
     uint8_t getCC(uint16_t norm16) const {
@@ -291,14 +291,14 @@
         return getCCFromNoNo(norm16);
     }
     static uint8_t getCCFromNormalYesOrMaybe(uint16_t norm16) {
-        return (uint8_t)(norm16 >> OFFSET_SHIFT);
+        return static_cast<uint8_t>(norm16 >> OFFSET_SHIFT);
     }
-    static uint8_t getCCFromYesOrMaybe(uint16_t norm16) {
+    static uint8_t getCCFromYesOrMaybeYes(uint16_t norm16) {
         return norm16>=MIN_NORMAL_MAYBE_YES ? getCCFromNormalYesOrMaybe(norm16) : 0;
     }
-    uint8_t getCCFromYesOrMaybeCP(UChar32 c) const {
+    uint8_t getCCFromYesOrMaybeYesCP(UChar32 c) const {
         if (c < minCompNoMaybeCP) { return 0; }
-        return getCCFromYesOrMaybe(getNorm16(c));
+        return getCCFromYesOrMaybeYes(getNorm16(c));
     }
 
     /**
@@ -364,11 +364,13 @@
         // 0<=lead<=0xffff
         uint8_t bits=smallFCD[lead>>8];
         if(bits==0) { return false; }
-        return (UBool)((bits>>((lead>>5)&7))&1);
+        return (bits >> ((lead >> 5) & 7)) & 1;
     }
     /** Returns the FCD value from the regular normalization data. */
     uint16_t getFCD16FromNormData(UChar32 c) const;
 
+    uint16_t getFCD16FromMaybeOrNonZeroCC(uint16_t norm16) const;
+
     /**
      * Gets the decomposition for one code point.
      * @param c code point
@@ -450,7 +452,13 @@
 
         IX_MIN_LCCC_CP,
         IX_RESERVED19,
-        IX_COUNT
+
+        /** Two-way mappings; each starts with a character that combines backward. */
+        IX_MIN_MAYBE_NO,  // 20
+        /** Two-way mappings & compositions. */
+        IX_MIN_MAYBE_NO_COMBINES_FWD,
+
+        IX_COUNT  // 22
     };
 
     enum {
@@ -541,7 +549,8 @@
         uint16_t norm16=getNorm16(c);
         return isCompYesAndZeroCC(norm16) &&
             (norm16 & HAS_COMP_BOUNDARY_AFTER) != 0 &&
-            (!onlyContiguous || isInert(norm16) || *getMapping(norm16) <= 0x1ff);
+            (!onlyContiguous || isInert(norm16) || *getDataForYesOrNo(norm16) <= 0x1ff);
+            // The last check fetches the mapping's first unit and checks tccc<=1.
     }
 
     UBool hasFCDBoundaryBefore(UChar32 c) const { return hasDecompBoundaryBefore(c); }
@@ -551,8 +560,8 @@
     friend class InitCanonIterData;
     friend class LcccContext;
 
-    UBool isMaybe(uint16_t norm16) const { return minMaybeYes<=norm16 && norm16<=JAMO_VT; }
-    UBool isMaybeOrNonZeroCC(uint16_t norm16) const { return norm16>=minMaybeYes; }
+    UBool isMaybe(uint16_t norm16) const { return minMaybeNo<=norm16 && norm16<=JAMO_VT; }
+    UBool isMaybeYesOrNonZeroCC(uint16_t norm16) const { return norm16>=minMaybeYes; }
     static UBool isInert(uint16_t norm16) { return norm16==INERT; }
     static UBool isJamoL(uint16_t norm16) { return norm16==JAMO_L; }
     static UBool isJamoVT(uint16_t norm16) { return norm16==JAMO_VT; }
@@ -566,7 +575,7 @@
     //     return norm16>=MIN_YES_YES_WITH_CC || norm16<minNoNo;
     // }
     // UBool isCompYesOrMaybe(uint16_t norm16) const {
-    //     return norm16<minNoNo || minMaybeYes<=norm16;
+    //     return norm16<minNoNo || minMaybeNo<=norm16;
     // }
     // UBool hasZeroCCFromDecompYes(uint16_t norm16) const {
     //     return norm16<=MIN_NORMAL_MAYBE_YES || norm16==JAMO_VT;
@@ -579,12 +588,12 @@
     /**
      * A little faster and simpler than isDecompYesAndZeroCC() but does not include
      * the MaybeYes which combine-forward and have ccc=0.
-     * (Standard Unicode 10 normalization does not have such characters.)
      */
     UBool isMostDecompYesAndZeroCC(uint16_t norm16) const {
         return norm16<minYesNo || norm16==MIN_NORMAL_MAYBE_YES || norm16==JAMO_VT;
     }
-    UBool isDecompNoAlgorithmic(uint16_t norm16) const { return norm16>=limitNoNo; }
+    /** Since formatVersion 5: same as isAlgorithmicNoNo() */
+    UBool isDecompNoAlgorithmic(uint16_t norm16) const { return limitNoNo<=norm16 && norm16<minMaybeNo; }
 
     // For use with isCompYes().
     // Perhaps the compiler can combine the two tests for MIN_YES_YES_WITH_CC.
@@ -592,9 +601,9 @@
     //     return norm16>=MIN_YES_YES_WITH_CC ? getCCFromNormalYesOrMaybe(norm16) : 0;
     // }
     uint8_t getCCFromNoNo(uint16_t norm16) const {
-        const uint16_t *mapping=getMapping(norm16);
+        const uint16_t *mapping=getDataForYesOrNo(norm16);
         if(*mapping&MAPPING_HAS_CCC_LCCC_WORD) {
-            return (uint8_t)*(mapping-1);
+            return static_cast<uint8_t>(*(mapping - 1));
         } else {
             return 0;
         }
@@ -605,7 +614,7 @@
             return 0;  // yesYes and Hangul LV have ccc=tccc=0
         } else {
             // For Hangul LVT we harmlessly fetch a firstUnit with tccc=0 here.
-            return (uint8_t)(*getMapping(norm16)>>8);  // tccc from yesNo
+            return static_cast<uint8_t>(*getDataForYesOrNo(norm16) >> 8); // tccc from yesNo
         }
     }
     uint8_t getPreviousTrailCC(const char16_t *start, const char16_t *p) const;
@@ -619,28 +628,33 @@
         return (norm16>>DELTA_SHIFT)-centerNoNoDelta;
     }
 
-    // Requires minYesNo<norm16<limitNoNo.
-    const uint16_t *getMapping(uint16_t norm16) const { return extraData+(norm16>>OFFSET_SHIFT); }
+    const uint16_t *getDataForYesOrNo(uint16_t norm16) const {
+        return extraData+(norm16>>OFFSET_SHIFT);
+    }
+    const uint16_t *getDataForMaybe(uint16_t norm16) const {
+        return extraData+((norm16-minMaybeNo+limitNoNo)>>OFFSET_SHIFT);
+    }
+    const uint16_t *getData(uint16_t norm16) const {
+        if(norm16>=minMaybeNo) {
+            norm16=norm16-minMaybeNo+limitNoNo;
+        }
+        return extraData+(norm16>>OFFSET_SHIFT);
+    }
     const uint16_t *getCompositionsListForDecompYes(uint16_t norm16) const {
         if(norm16<JAMO_L || MIN_NORMAL_MAYBE_YES<=norm16) {
-            return NULL;
-        } else if(norm16<minMaybeYes) {
-            return getMapping(norm16);  // for yesYes; if Jamo L: harmless empty list
+            return nullptr;
         } else {
-            return maybeYesCompositions+norm16-minMaybeYes;
+            // if yesYes: if Jamo L: harmless empty list
+            return getData(norm16);
         }
     }
     const uint16_t *getCompositionsListForComposite(uint16_t norm16) const {
         // A composite has both mapping & compositions list.
-        const uint16_t *list=getMapping(norm16);
+        const uint16_t *list=getData(norm16);
         return list+  // mapping pointer
             1+  // +1 to skip the first unit with the mapping length
             (*list&MAPPING_LENGTH_MASK);  // + mapping length
     }
-    const uint16_t *getCompositionsListForMaybe(uint16_t norm16) const {
-        // minMaybeYes<=norm16<MIN_NORMAL_MAYBE_YES
-        return maybeYesCompositions+((norm16-minMaybeYes)>>OFFSET_SHIFT);
-    }
     /**
      * @param c code point must have compositions
      * @return compositions list pointer
@@ -692,11 +706,13 @@
     /** For FCC: Given norm16 HAS_COMP_BOUNDARY_AFTER, does it have tccc<=1? */
     UBool isTrailCC01ForCompBoundaryAfter(uint16_t norm16) const {
         return isInert(norm16) || (isDecompNoAlgorithmic(norm16) ?
-            (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1 : *getMapping(norm16) <= 0x1ff);
+            (norm16 & DELTA_TCCC_MASK) <= DELTA_TCCC_1 : *getDataForYesOrNo(norm16) <= 0x1ff);
     }
 
-    const char16_t *findPreviousCompBoundary(const char16_t *start, const char16_t *p, UBool onlyContiguous) const;
-    const char16_t *findNextCompBoundary(const char16_t *p, const char16_t *limit, UBool onlyContiguous) const;
+    const char16_t *findPreviousCompBoundary(const char16_t *start, const char16_t *p,
+                                             UBool onlyContiguous) const;
+    const char16_t *findNextCompBoundary(const char16_t *p, const char16_t *limit,
+                                         UBool onlyContiguous) const;
 
     const char16_t *findPreviousFCDBoundary(const char16_t *start, const char16_t *p) const;
     const char16_t *findNextFCDBoundary(const char16_t *p, const char16_t *limit) const;
@@ -723,11 +739,12 @@
     uint16_t minNoNoEmpty;
     uint16_t limitNoNo;
     uint16_t centerNoNoDelta;
+    uint16_t minMaybeNo;
+    uint16_t minMaybeNoCombinesFwd;
     uint16_t minMaybeYes;
 
     const UCPTrie *normTrie;
-    const uint16_t *maybeYesCompositions;
-    const uint16_t *extraData;  // mappings and/or compositions for yesYes, yesNo & noNo characters
+    const uint16_t *extraData;  // mappings and/or compositions
     const uint8_t *smallFCD;  // [0x100] one bit per 32 BMP code points, set if any FCD!=0
 
     UInitOnce       fCanonIterDataInitOnce {};
@@ -785,7 +802,7 @@
 
 /**
  * Format of Normalizer2 .nrm data files.
- * Format version 4.0.
+ * Format version 5.0.
  *
  * Normalizer2 .nrm data files provide data for the Unicode Normalization algorithms.
  * ICU ships with data files for standard Unicode Normalization Forms
@@ -807,7 +824,7 @@
  * Constants are defined as enum values of the Normalizer2Impl class.
  *
  * Many details of the data structures are described in the design doc
- * which is at https://icu.unicode.org/design/normalization/custom
+ * which is at https://unicode-org.github.io/icu/design/normalization/custom.html
  *
  * int32_t indexes[indexesLength]; -- indexesLength=indexes[IX_NORM_TRIE_OFFSET]/4;
  *
@@ -829,7 +846,9 @@
  *
  *      The next eight indexes are thresholds of 16-bit trie values for ranges of
  *      values indicating multiple normalization properties.
- *      They are listed here in threshold order, not in the order they are stored in the indexes.
+ *      Format version 5 adds the two minMaybeNo* threshold indexes.
+ *      The thresholds are listed here in threshold order,
+ *      not in the order they are stored in the indexes.
  *          minYesNo=indexes[IX_MIN_YES_NO];
  *          minYesNoMappingsOnly=indexes[IX_MIN_YES_NO_MAPPINGS_ONLY];
  *          minNoNo=indexes[IX_MIN_NO_NO];
@@ -837,6 +856,8 @@
  *          minNoNoCompNoMaybeCC=indexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC];
  *          minNoNoEmpty=indexes[IX_MIN_NO_NO_EMPTY];
  *          limitNoNo=indexes[IX_LIMIT_NO_NO];
+ *          minMaybeNo=indexes[IX_MIN_MAYBE_NO];
+ *          minMaybeNoCombinesFwd=indexes[IX_MIN_MAYBE_NO_COMBINES_FWD];
  *          minMaybeYes=indexes[IX_MIN_MAYBE_YES];
  *      See the normTrie description below and the design doc for details.
  *
@@ -845,13 +866,14 @@
  *      The trie holds the main normalization data. Each code point is mapped to a 16-bit value.
  *      Rather than using independent bits in the value (which would require more than 16 bits),
  *      information is extracted primarily via range checks.
- *      Except, format version 3 uses bit 0 for hasCompBoundaryAfter().
+ *      Except, format version 3+ uses bit 0 for hasCompBoundaryAfter().
  *      For example, a 16-bit value norm16 in the range minYesNo<=norm16<minNoNo
  *      means that the character has NF*C_QC=Yes and NF*D_QC=No properties,
  *      which means it has a two-way (round-trip) decomposition mapping.
- *      Values in the range 2<=norm16<limitNoNo are also directly indexes into the extraData
+ *      Values in the ranges 2<=norm16<limitNoNo and minMaybeNo<=norm16<minMaybeYes
+ *      are also directly indexes into the extraData
  *      pointing to mappings, compositions lists, or both.
- *      Value norm16==INERT (0 in versions 1 & 2, 1 in version 3)
+ *      Value norm16==INERT (0 in versions 1 & 2, 1 in version 3+)
  *      means that the character is normalization-inert, that is,
  *      it does not have a mapping, does not participate in composition, has a zero
  *      canonical combining class, and forms a boundary where text before it and after it
@@ -870,33 +892,38 @@
  *      When the lead surrogate unit's value exceeds the quick check minimum during processing,
  *      the properties for the full supplementary code point need to be looked up.
  *
- * uint16_t maybeYesCompositions[MIN_NORMAL_MAYBE_YES-minMaybeYes];
  * uint16_t extraData[];
  *
- *      There is only one byte offset for the end of these two arrays.
- *      The split between them is given by the constant and variable mentioned above.
- *      In version 3, the difference must be shifted right by OFFSET_SHIFT.
+ *      The extraData array contains many per-character data sections.
+ *      Each section contains mappings and/or composition lists.
+ *      The norm16 value of each character that has such data is directly an index to
+ *      a section of the extraData array.
  *
- *      The maybeYesCompositions array contains compositions lists for characters that
- *      combine both forward (as starters in composition pairs)
- *      and backward (as trailing characters in composition pairs).
- *      Such characters do not occur in Unicode 5.2 but are allowed by
- *      the Unicode Normalization algorithms.
- *      If there are no such characters, then minMaybeYes==MIN_NORMAL_MAYBE_YES
- *      and the maybeYesCompositions array is empty.
- *      If there are such characters, then minMaybeYes is subtracted from their norm16 values
- *      to get the index into this array.
- *
- *      The extraData array contains compositions lists for "YesYes" characters,
- *      followed by mappings and optional compositions lists for "YesNo" characters,
- *      followed by only mappings for "NoNo" characters.
- *      (Referring to pairs of NFC/NFD quick check values.)
- *      The norm16 values of those characters are directly indexes into the extraData array.
- *      In version 3, the norm16 values must be shifted right by OFFSET_SHIFT
+ *      In version 3+, the norm16 values must be shifted right by OFFSET_SHIFT
  *      for accessing extraData.
  *
  *      The data structures for compositions lists and mappings are described in the design doc.
  *
+ *      In version 4 and below, the composition lists for MaybeYes characters were stored before
+ *      the data for other characters.
+ *      This sub-array had a length of MIN_NORMAL_MAYBE_YES-minMaybeYes.
+ *      In version 3 & 4, the difference must be shifted right by OFFSET_SHIFT.
+ *
+ *      In version 5, the data for MaybeNo and MaybeYes characters is stored after
+ *      the data for other characters.
+ *
+ *      If there are no MaybeNo and no MaybeYes characters,
+ *      then minMaybeYes==minMaybeNo==MIN_NORMAL_MAYBE_YES.
+ *      If there are such characters, then minMaybeNo is subtracted from their norm16 values
+ *      to get the index into the extraData.
+ *      In version 4 and below, the data index for Yes* and No* characters needs to be
+ *      offset by the length of the MaybeYes data.
+ *      In version 5, the data index for Maybe* characters needs to be offset by limitNoNo.
+ *
+ *      Version 5 is the first to support MaybeNo characters, and
+ *      adds the minMaybeNo and minMaybeNoCombinesFwd thresholds and
+ *      the corresponding sections of the extraData.
+ *
  * uint8_t smallFCD[0x100]; -- new in format version 2
  *
  *      This is a bit set to help speed up FCD value lookups in the absence of a full
@@ -936,7 +963,7 @@
  *   to make room for two bits (three values) indicating whether the tccc is 0, 1, or greater.
  *   See DELTA_TCCC_MASK etc.
  *   This helps with fetching tccc/FCD values and FCC hasCompBoundaryAfter().
- *   minMaybeYes is 8-aligned so that the DELTA_TCCC_MASK bits can be tested directly.
+ *   minMaybeNo is 8-aligned so that the DELTA_TCCC_MASK bits can be tested directly.
  *
  * - Algorithmic mappings are only used for mapping to "comp yes and ccc=0" characters,
  *   and ASCII characters are mapped algorithmically only to other ASCII characters.
@@ -982,6 +1009,23 @@
  * gennorm2 now has to reject mappings for surrogate code points.
  * UTS #46 maps unpaired surrogates to U+FFFD in code rather than via its
  * custom normalization data file.
+ *
+ * Changes from format version 4 to format version 5 (ICU 76) ------------------
+ *
+ * Unicode 16 adds the first MaybeYes characters which combine both backward and forward,
+ * taking this formerly theoretical data structure into reality.
+ *
+ * Unicode 16 also adds the first characters that have two-way mappings whose first characters
+ * combine backward. In order for normalization and the quick check to work properly,
+ * these composite characters also must be marked as NFC_QC=Maybe,
+ * corresponding to "combines back", although the composites themselves do not combine backward.
+ * Format version 5 adds two new ranges between "algorithmic NoNo" and MaybeYes,
+ * with thresholds minMaybeNo and minMaybeNoCombinesFwd,
+ * and indexes[IX_MIN_MAYBE_NO] and indexes[IX_MIN_MAYBE_NO_COMBINES_FWD],
+ * and corresponding mappings and composition lists in the extraData.
+ *
+ * Format version 5 moves the data for Maybe* characters from the start of the extraData array
+ * to its end.
  */
 
 #endif  /* !UCONFIG_NO_NORMALIZATION */

Modified: trunk/Build/source/libs/icu/icu-src/source/common/patternprops.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/patternprops.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/patternprops.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -120,12 +120,12 @@
     if(c<0) {
         return false;
     } else if(c<=0xff) {
-        return (UBool)(latin1[c]>>1)&1;
+        return (latin1[c] >> 1) & 1;
     } else if(c<0x2010) {
         return false;
     } else if(c<=0x3030) {
         uint32_t bits=syntax2000[index2000[(c-0x2000)>>5]];
-        return (UBool)((bits>>(c&0x1f))&1);
+        return (bits >> (c & 0x1f)) & 1;
     } else if(0xfd3e<=c && c<=0xfe46) {
         return c<=0xfd3f || 0xfe45<=c;
     } else {
@@ -138,12 +138,12 @@
     if(c<0) {
         return false;
     } else if(c<=0xff) {
-        return (UBool)(latin1[c]&1);
+        return latin1[c] & 1;
     } else if(c<0x200e) {
         return false;
     } else if(c<=0x3030) {
         uint32_t bits=syntaxOrWhiteSpace2000[index2000[(c-0x2000)>>5]];
-        return (UBool)((bits>>(c&0x1f))&1);
+        return (bits >> (c & 0x1f)) & 1;
     } else if(0xfd3e<=c && c<=0xfe46) {
         return c<=0xfd3f || 0xfe45<=c;
     } else {
@@ -156,7 +156,7 @@
     if(c<0) {
         return false;
     } else if(c<=0xff) {
-        return (UBool)(latin1[c]>>2)&1;
+        return (latin1[c] >> 2) & 1;
     } else if(0x200e<=c && c<=0x2029) {
         return c<=0x200f || 0x2028<=c;
     } else {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/propname.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/propname.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/propname.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -43,7 +43,7 @@
     ) {}
 
     if(c!=0) {
-        return (i<<8)|(uint8_t)uprv_asciitolower((char)c);
+        return (i << 8) | static_cast<uint8_t>(uprv_asciitolower(c));
     } else {
         return i<<8;
     }
@@ -66,7 +66,7 @@
     ) {}
 
     if(c!=0) {
-        return (i<<8)|(uint8_t)uprv_ebcdictolower((char)c);
+        return (i << 8) | static_cast<uint8_t>(uprv_ebcdictolower(c));
     } else {
         return i<<8;
     }
@@ -231,7 +231,7 @@
         if(!USTRINGTRIE_HAS_NEXT(result)) {
             return false;
         }
-        result=trie.next((uint8_t)c);
+        result = trie.next(static_cast<uint8_t>(c));
     }
     return USTRINGTRIE_HAS_VALUE(result);
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/propname_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/propname_data.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/propname_data.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -11,103 +11,107 @@
 
 U_NAMESPACE_BEGIN
 
-const int32_t PropNameData::indexes[8]={0x20,0x1690,0x5337,0xae61,0xae61,0xae61,0x31,0};
+const int32_t PropNameData::indexes[8]={0x20,0x1778,0x5653,0xb539,0xb539,0xb539,0x31,0};
 
-const int32_t PropNameData::valueMaps[1436]={
-6,0,0x4b,0,0xf7,0x368,0xf7,0x37e,0xf7,0x393,0xf7,0x3a9,0xf7,0x3b4,0xf7,0x3d5,
-0xf7,0x3e5,0xf7,0x3f4,0xf7,0x402,0xf7,0x426,0xf7,0x43d,0xf7,0x455,0xf7,0x46c,0xf7,0x47b,
-0xf7,0x48a,0xf7,0x49b,0xf7,0x4a9,0xf7,0x4bb,0xf7,0x4d5,0xf7,0x4f0,0xf7,0x505,0xf7,0x522,
-0xf7,0x533,0xf7,0x53e,0xf7,0x55d,0xf7,0x573,0xf7,0x584,0xf7,0x594,0xf7,0x5af,0xf7,0x5c8,
-0xf7,0x5d9,0xf7,0x5f3,0xf7,0x606,0xf7,0x616,0xf7,0x630,0xf7,0x649,0xf7,0x660,0xf7,0x674,
-0xf7,0x68a,0xf7,0x69e,0xf7,0x6b4,0xf7,0x6ce,0xf7,0x6e6,0xf7,0x702,0xf7,0x70a,0xf7,0x712,
-0xf7,0x71a,0xf7,0x722,0xf7,0x72b,0xf7,0x738,0xf7,0x74b,0xf7,0x768,0xf7,0x785,0xf7,0x7a2,
-0xf7,0x7c0,0xf7,0x7de,0xf7,0x802,0xf7,0x80f,0xf7,0x829,0xf7,0x83e,0xf7,0x859,0xf7,0x870,
-0xf7,0x887,0xf7,0x8a9,0xf7,0x8c8,0xf7,0x8e1,0xf7,0x90e,0xf7,0x947,0xf7,0x978,0xf7,0x9a7,
-0xf7,0x9d6,0xf7,0x9eb,0xf7,0xa04,0xf7,0xa2f,0xf7,0x1000,0x1019,0xa60,0x173,0xc80,0x18e,0x331c,
-0xfd,0x333b,0x2db,0x3479,0x2f1,0x34d3,0x2fb,0x3730,0x31d,0x405b,0x389,0x40cb,0x393,0x43b0,0x3c7,0x43ee,
-0x3cf,0x4f33,0x49b,0x4fb1,0x4a5,0x4fd6,0x4ab,0x4ff0,0x4b1,0x5011,0x4b8,0x502b,0xfd,0x5050,0xfd,0x5076,
-0x4bf,0x5120,0x4d5,0x5199,0x4e8,0x524b,0x503,0x5282,0x50a,0x5462,0x51e,0x58e2,0x546,0x2000,0x2001,0x5941,
-0x54e,0x3000,0x3001,0x59cd,0,0x4000,0x400e,0x59df,0,0x59e8,0,0x5a02,0,0x5a13,0,0x5a24,
-0,0x5a3a,0,0x5a43,0,0x5a60,0,0x5a7e,0,0x5a9c,0,0x5aba,0,0x5ad0,0,0x5ae4,
-0,0x5afa,0,0x7000,0x7001,0x5b13,0,0x87a,0x12,0,1,0x12,0x20,0x898,0x4a,0,
-1,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,
-0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,
-0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,
-0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x5e,0x68,0x79,0x84,
-0x91,0x9e,0xab,0xb8,0xc5,0xd2,0xdf,0xec,0xf9,0x106,0x113,0x120,0x12d,0x13a,0x147,0x154,
-0x161,0x16e,0x17b,0x188,0x195,0x1a2,0x1af,0x1bc,0x1c9,0x1d6,0x1e3,0x1f0,0x1fd,0x20c,0x21b,0x22a,
-0x239,0x248,0x257,0x266,0x275,0x28f,0x2a3,0x2b7,0x2d2,0x2e1,0x2ea,0x2fa,0x302,0x30b,0x31a,0x323,
-0x333,0x344,0x355,0xa39,1,0,0x17,0xa6f,0xa80,0xa91,0xaa5,0xabc,0xad4,0xae6,0xafb,0xb12,
-0xb27,0xb37,0xb49,0xb66,0xb82,0xb94,0xbb1,0xbcd,0xbe9,0xbfe,0xc13,0xc2d,0xc48,0xc63,0xbdb,1,
-0,0x149,0xc8b,0xc98,0xcab,0xcd3,0xcf1,0xd0f,0xd27,0xd52,0xd7c,0xd94,0xda7,0xdba,0xdc9,0xdd8,
-0xde7,0xdf6,0xe0d,0xe1e,0xe31,0xe44,0xe51,0xe5e,0xe6d,0xe7e,0xe93,0xea4,0xeaf,0xeb8,0xec9,0xeda,
-0xeed,0xeff,0xf12,0xf25,0xf64,0xf71,0xf7e,0xf8b,0xfa0,0xfd0,0xfea,0x100b,0x1036,0x1059,0x10b7,0x10de,
-0x10f9,0x1108,0x112f,0x1157,0x117a,0x119d,0x11c7,0x11e0,0x11ff,0x1222,0x1246,0x1259,0x1273,0x129d,0x12b5,0x12dd,
-0x1306,0x1319,0x132c,0x133f,0x1366,0x1375,0x1395,0x13c3,0x13e1,0x140f,0x142b,0x1446,0x145f,0x1478,0x1499,0x14c9,
-0x14e8,0x150a,0x153e,0x156b,0x15b0,0x15d1,0x15fb,0x161c,0x1645,0x1658,0x168b,0x16a2,0x16b1,0x16c2,0x16ed,0x1704,
-0x1735,0x1763,0x17a6,0x17b1,0x17ea,0x17fb,0x180c,0x1819,0x182c,0x1866,0x188a,0x18ae,0x18e8,0x1920,0x194b,0x1963,
-0x198f,0x19bb,0x19c8,0x19d7,0x19f4,0x1a16,0x1a44,0x1a64,0x1a8b,0x1ab2,0x1ad1,0x1ae4,0x1af5,0x1b06,0x1b2b,0x1b50,
-0x1b77,0x1bab,0x1bd8,0x1bf6,0x1c09,0x1c22,0x1c5b,0x1c6a,0x1c8a,0x1cac,0x1cce,0x1ce5,0x1cfc,0x1d29,0x1d42,0x1d5b,
-0x1d8c,0x1db6,0x1dd1,0x1de4,0x1e03,0x1e0c,0x1e1f,0x1e3d,0x1e5b,0x1e6e,0x1e85,0x1e9a,0x1ecf,0x1ef3,0x1f08,0x1f17,
-0x1f2a,0x1f4e,0x1f57,0x1f7b,0x1f92,0x1fa5,0x1fb4,0x1fbf,0x1fe0,0x1ff8,0x2007,0x2016,0x2025,0x203c,0x2051,0x2066,
-0x209f,0x20b2,0x20ce,0x20d9,0x20e6,0x2114,0x2138,0x215b,0x216e,0x2190,0x21a3,0x21be,0x21e1,0x2204,0x2229,0x223a,
-0x2269,0x2296,0x22ad,0x22c8,0x22d7,0x2302,0x233a,0x2374,0x23a2,0x23b3,0x23c0,0x23e4,0x23f3,0x240f,0x2429,0x2446,
-0x247e,0x2493,0x24c0,0x24df,0x250d,0x252d,0x2561,0x2570,0x259a,0x25bd,0x25e8,0x25f3,0x2604,0x261f,0x2643,0x2650,
-0x2665,0x268c,0x26b7,0x26ee,0x2701,0x2712,0x2742,0x2753,0x2762,0x2777,0x2795,0x27a8,0x27bb,0x27d2,0x27ef,0x27fa,
-0x2803,0x2825,0x283a,0x285f,0x2876,0x289f,0x28ba,0x28cf,0x28e8,0x2909,0x293e,0x294f,0x2980,0x29a4,0x29b5,0x29ce,
-0x29d9,0x2a06,0x2a28,0x2a56,0x2a89,0x2a98,0x2aa9,0x2ac6,0x2b08,0x2b2f,0x2b3c,0x2b51,0x2b75,0x2b9b,0x2bd4,0x2be5,
-0x2c09,0x2c14,0x2c21,0x2c30,0x2c55,0x2c83,0x2c9f,0x2cbc,0x2cc9,0x2cda,0x2cf8,0x2d1b,0x2d38,0x2d45,0x2d65,0x2d82,
-0x2da3,0x2dcc,0x2ddd,0x2dfc,0x2e15,0x2e2e,0x2e3f,0x2e88,0x2e99,0x2eb2,0x2ee1,0x2f0e,0x2f33,0x2f75,0x2f91,0x2fa0,
-0x2fb7,0x2fe5,0x2ffe,0x3027,0x3041,0x307c,0x309a,0x30a9,0x30c9,0x30e4,0x3108,0x3124,0x3142,0x3160,0x3177,0x3186,
-0x3191,0x31ce,0x31e1,0x320b,0x322b,0x3259,0x327d,0x32a5,0x32ca,0x32d5,0x32ee,0x1fe5,1,0,0x12,0x3352,
-0x3362,0x3375,0x3385,0x3395,0x33a4,0x33b4,0x33c6,0x33d9,0x33eb,0x33fb,0x340b,0x341a,0x3429,0x3439,0x3446,0x3455,
-0x3469,0x20a3,1,0,6,0x348e,0x3499,0x34a6,0x34b3,0x34c0,0x34cb,0x20e7,1,0,0x1e,0x34e8,
-0x34f7,0x350c,0x3521,0x3536,0x354a,0x355b,0x356f,0x3582,0x3593,0x35ac,0x35be,0x35cf,0x35e3,0x35f6,0x360e,0x3620,
-0x362b,0x363b,0x3649,0x365e,0x3673,0x3689,0x36a3,0x36b9,0x36c9,0x36dd,0x36f1,0x3702,0x371a,0x2312,1,0,
-0x68,0x3742,0x3765,0x376e,0x377b,0x3786,0x378f,0x379a,0x37a3,0x37bc,0x37c1,0x37ca,0x37e7,0x37f0,0x37fd,0x3806,
-0x382a,0x3831,0x383a,0x384d,0x3858,0x3861,0x386c,0x3885,0x388e,0x389d,0x38a8,0x38b1,0x38bc,0x38c5,0x38cc,0x38d5,
-0x38e0,0x38e9,0x3902,0x390b,0x3918,0x3923,0x3934,0x393f,0x3954,0x396b,0x3974,0x397d,0x3996,0x39a1,0x39aa,0x39b3,
-0x39ca,0x39e7,0x39f2,0x3a03,0x3a0e,0x3a15,0x3a22,0x3a2f,0x3a5c,0x3a71,0x3a7a,0x3a95,0x3ab8,0x3ad9,0x3afa,0x3b1f,
-0x3b46,0x3b67,0x3b8a,0x3bab,0x3bd2,0x3bf3,0x3c18,0x3c37,0x3c56,0x3c75,0x3c92,0x3cb3,0x3cd4,0x3cf7,0x3d1c,0x3d3b,
-0x3d5a,0x3d7b,0x3da2,0x3dc7,0x3de6,0x3e07,0x3e2a,0x3e45,0x3e5e,0x3e79,0x3e92,0x3eaf,0x3eca,0x3ee7,0x3f06,0x3f23,
-0x3f40,0x3f5f,0x3f7c,0x3f97,0x3fb4,0x3fd1,0x4004,0x402b,0x403e,0x2675,1,0,6,0x406c,0x407b,0x408b,
-0x409b,0x40ab,0x40bc,0x26d3,1,0,0x30,0x40da,0x40e6,0x40f4,0x4103,0x4112,0x4122,0x4133,0x4147,0x415c,
-0x4172,0x4185,0x4199,0x41a9,0x41b2,0x41bd,0x41cd,0x41e9,0x41fb,0x4209,0x4218,0x4224,0x4239,0x424d,0x4260,0x426e,
-0x4282,0x4290,0x429a,0x42ac,0x42b8,0x42c6,0x42d6,0x42dd,0x42e4,0x42eb,0x42f2,0x42f9,0x430f,0x4330,0x870,0x4342,
-0x434d,0x435c,0x4365,0x4370,0x4383,0x4394,0x43a5,0x2963,1,0,4,0x43c1,0x43cc,0x43d8,0x43e2,0x2989,
-1,0,0xc8,0x43f9,0x4406,0x441b,0x4428,0x4437,0x4445,0x4454,0x4463,0x4475,0x4484,0x4492,0x44a3,0x44b2,
-0x44c1,0x44ce,0x44da,0x44e9,0x44f8,0x4502,0x450f,0x451c,0x452b,0x4539,0x4548,0x4554,0x455e,0x456a,0x457a,0x458a,
-0x4598,0x45a4,0x45b5,0x45c1,0x45cd,0x45db,0x45e8,0x45f4,0x4601,0xea4,0x460e,0x461c,0x4636,0x463f,0x464d,0x465b,
-0x4667,0x4676,0x4684,0x4692,0x469e,0x46ad,0x46bb,0x46c9,0x46d6,0x46e5,0x4700,0x470f,0x4720,0x4731,0x4744,0x4756,
-0x4765,0x4777,0x4786,0x4792,0x479d,0x1fb4,0x47aa,0x47b5,0x47c0,0x47cb,0x47d6,0x47f1,0x47fc,0x4807,0x4812,0x4825,
-0x4839,0x4844,0x4853,0x4862,0x486d,0x4878,0x4885,0x4894,0x48a2,0x48ad,0x48c8,0x48d2,0x48e3,0x48f4,0x4903,0x4914,
-0x491f,0x492a,0x4935,0x4940,0x494b,0x4956,0x4961,0x496b,0x4976,0x4986,0x4991,0x499f,0x49ac,0x49b7,0x49c6,0x49d3,
-0x49e0,0x49ef,0x49fc,0x4a0d,0x4a1f,0x4a2f,0x4a3a,0x4a4d,0x4a64,0x4a72,0x4a7f,0x4a8a,0x4a97,0x4aa8,0x4ac4,0x4ada,
-0x4ae5,0x4b02,0x4b12,0x4b21,0x4b2c,0x4b37,0x20ce,0x4b43,0x4b4e,0x4b66,0x4b76,0x4b85,0x4b93,0x4ba1,0x4bac,0x4bb7,
-0x4bcb,0x4be2,0x4bfa,0x4c0a,0x4c1a,0x4c2a,0x4c3c,0x4c47,0x4c52,0x4c5c,0x4c68,0x4c76,0x4c89,0x4c95,0x4ca2,0x4cad,
-0x4cc9,0x4cd6,0x4ce4,0x4cfd,0x29ce,0x4d0c,0x27ef,0x4d19,0x4d27,0x4d39,0x4d47,0x4d53,0x4d63,0x2c09,0x4d71,0x4d7d,
-0x4d88,0x4d93,0x4d9e,0x4db2,0x4dc0,0x4dd7,0x4de3,0x4df7,0x4e05,0x4e17,0x4e2d,0x4e3b,0x4e4d,0x4e5b,0x4e78,0x4e8a,
-0x4e97,0x4ea8,0x4eba,0x4ed4,0x4ee1,0x4ef4,0x4f05,0x3186,0x4f12,0x32ca,0x4f21,0x33e3,1,0,6,0x4f4d,
-0x4f60,0x4f70,0x4f7e,0x4f8f,0x4f9f,0x343f,0x12,0,1,0x4fc9,0x4fcf,0x344c,0x12,0,1,0x4fc9,
-0x4fcf,0x3459,1,0,3,0x4fc9,0x4fcf,0x5008,0x346f,1,0,3,0x4fc9,0x4fcf,0x5008,0x3485,
-1,0,0x12,0x5092,0x509c,0x50a8,0x50af,0x50ba,0x50bf,0x50c6,0x50cd,0x50d6,0x50db,0x50e0,0x50f0,0x870,
-0x4342,0x50fc,0x434d,0x510c,0x435c,0x352e,1,0,0xf,0x5092,0x5133,0x513d,0x5147,0x5152,0x4218,0x515c,
-0x5168,0x5170,0x5177,0x5181,0x50a8,0x50af,0x50bf,0x518b,0x35b5,1,0,0x17,0x5092,0x51a8,0x5147,0x51b4,
-0x51c1,0x51cf,0x4218,0x51da,0x50a8,0x51eb,0x50bf,0x51fa,0x5208,0x870,0x4330,0x5214,0x5225,0x4342,0x50fc,0x434d,
-0x510c,0x435c,0x5236,0x36d2,1,0,3,0x5269,0x5271,0x5279,0x36eb,1,0,0x10,0x52a2,0x52a9,
-0x52b8,0x52d9,0x52fc,0x5307,0x5326,0x533d,0x534a,0x5353,0x5372,0x53a5,0x53c0,0x53ef,0x540c,0x5431,0x3784,1,
-0,0x24,0x5480,0x548d,0x54a0,0x54ad,0x54da,0x54ff,0x5514,0x5533,0x5554,0x5581,0x55ba,0x55dd,0x5600,0x562d,
-0x5662,0x5689,0x56b2,0x56e9,0x5718,0x5739,0x575e,0x576d,0x5790,0x57a7,0x57b4,0x57c3,0x57e0,0x57f9,0x581c,0x5841,
-0x585a,0x586f,0x587e,0x588f,0x589c,0x58bd,0x3954,1,0,4,0x58fb,0x5906,0x591e,0x5936,0x3990,0x36,
-1,2,4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,
-0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,
-0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,0x34e8,0x34f7,0x350c,0x3521,0x596f,0x3536,0x354a,0x5965,0x355b,0x356f,
-0x3582,0x5980,0x3593,0x35ac,0x35be,0x5997,0x35cf,0x35e3,0x35f6,0x59c0,0x360e,0x3620,0x362b,0x363b,0x595c,0x3649,
-0x365e,0x3673,0x3689,0x36a3,0x36b9,0x36c9,0x36dd,0x36f1,0x59b6,0x3702,0x371a,0x59a1
+const int32_t PropNameData::valueMaps[1494]={
+6,0,0x4c,0,0xff,0x368,0xff,0x37e,0xff,0x393,0xff,0x3a9,0xff,0x3b4,0xff,0x3d5,
+0xff,0x3e5,0xff,0x3f4,0xff,0x402,0xff,0x426,0xff,0x43d,0xff,0x455,0xff,0x46c,0xff,0x47b,
+0xff,0x48a,0xff,0x49b,0xff,0x4a9,0xff,0x4bb,0xff,0x4d5,0xff,0x4f0,0xff,0x505,0xff,0x522,
+0xff,0x533,0xff,0x53e,0xff,0x55d,0xff,0x573,0xff,0x584,0xff,0x594,0xff,0x5af,0xff,0x5c8,
+0xff,0x5d9,0xff,0x5f3,0xff,0x606,0xff,0x616,0xff,0x630,0xff,0x649,0xff,0x660,0xff,0x674,
+0xff,0x68a,0xff,0x69e,0xff,0x6b4,0xff,0x6ce,0xff,0x6e6,0xff,0x702,0xff,0x70a,0xff,0x712,
+0xff,0x71a,0xff,0x722,0xff,0x72b,0xff,0x738,0xff,0x74b,0xff,0x768,0xff,0x785,0xff,0x7a2,
+0xff,0x7c0,0xff,0x7de,0xff,0x802,0xff,0x80f,0xff,0x829,0xff,0x83e,0xff,0x859,0xff,0x870,
+0xff,0x887,0xff,0x8a9,0xff,0x8c8,0xff,0x8e1,0xff,0x90e,0xff,0x947,0xff,0x978,0xff,0x9a7,
+0xff,0x9d6,0xff,0x9eb,0xff,0xa04,0xff,0xa2f,0xff,0xa60,0xff,0x1000,0x101b,0xa7d,0x17b,0xc9d,
+0x196,0x346c,0x105,0x348b,0x2ed,0x35c9,0x303,0x3623,0x30d,0x3880,0x32f,0x41d7,0x39c,0x4247,0x3a6,0x452c,
+0x3da,0x456a,0x3e2,0x5126,0x4b6,0x51a4,0x4c0,0x51c9,0x4c6,0x51e3,0x4cc,0x5204,0x4d3,0x521e,0x105,0x5243,
+0x105,0x5269,0x4da,0x5313,0x4f0,0x538c,0x503,0x543e,0x51e,0x5475,0x525,0x5655,0x539,0x5afa,0x562,0x5b59,
+0x56a,0x5b9e,0x570,0x2000,0x2001,0x5bc8,0x578,0x3000,0x3001,0x5c54,0,0x4000,0x400e,0x5c66,0,0x5c6f,
+0,0x5c89,0,0x5c9a,0,0x5cab,0,0x5cc1,0,0x5cca,0,0x5ce7,0,0x5d05,0,0x5d23,
+0,0x5d41,0,0x5d57,0,0x5d6b,0,0x5d81,0,0x7000,0x7002,0x5d9a,0,0x5db1,0x5c6,0x8de,
+0x12,0,1,0x12,0x20,0x8fc,0x4a,0,1,6,7,8,9,0xa,0xb,0xc,
+0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,
+0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,
+0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,
+0xf0,0x2e,0x40,0x4c,0x5e,0x68,0x79,0x84,0x91,0x9e,0xab,0xb8,0xc5,0xd2,0xdf,0xec,
+0xf9,0x106,0x113,0x120,0x12d,0x13a,0x147,0x154,0x161,0x16e,0x17b,0x188,0x195,0x1a2,0x1af,0x1bc,
+0x1c9,0x1d6,0x1e3,0x1f0,0x1fd,0x20c,0x21b,0x22a,0x239,0x248,0x257,0x266,0x275,0x28f,0x2a3,0x2b7,
+0x2d2,0x2e1,0x2ea,0x2fa,0x302,0x30b,0x31a,0x323,0x333,0x344,0x355,0xa9d,1,0,0x17,0xa8c,
+0xa9d,0xaae,0xac2,0xad9,0xaf1,0xb03,0xb18,0xb2f,0xb44,0xb54,0xb66,0xb83,0xb9f,0xbb1,0xbce,0xbea,
+0xc06,0xc1b,0xc30,0xc4a,0xc65,0xc80,0xc3f,1,0,0x153,0xca8,0xcb5,0xcc8,0xcf0,0xd0e,0xd2c,
+0xd44,0xd6f,0xd99,0xdb1,0xdc4,0xdd7,0xde6,0xdf5,0xe04,0xe13,0xe2a,0xe3b,0xe4e,0xe61,0xe6e,0xe7b,
+0xe8a,0xe9b,0xeb0,0xec1,0xecc,0xed5,0xee6,0xef7,0xf0a,0xf1c,0xf2f,0xf42,0xf81,0xf8e,0xf9b,0xfa8,
+0xfbd,0xfed,0x1007,0x1028,0x1053,0x1076,0x10d4,0x10fb,0x1116,0x1125,0x114c,0x1174,0x1197,0x11ba,0x11e4,0x11fd,
+0x121c,0x123f,0x1263,0x1276,0x1290,0x12ba,0x12d2,0x12fa,0x1323,0x1336,0x1349,0x135c,0x1383,0x1392,0x13b2,0x13e0,
+0x13fe,0x142c,0x1448,0x1463,0x147c,0x1495,0x14b6,0x14e6,0x1505,0x1527,0x155b,0x1588,0x15cd,0x15ee,0x1618,0x1639,
+0x1662,0x1675,0x16a8,0x16bf,0x16ce,0x16df,0x170a,0x1721,0x1752,0x1780,0x17c3,0x17ce,0x1807,0x1818,0x1829,0x1836,
+0x1849,0x1883,0x18a7,0x18cb,0x1905,0x193d,0x1968,0x1980,0x19ac,0x19d8,0x19e5,0x19f4,0x1a11,0x1a33,0x1a61,0x1a81,
+0x1aa8,0x1acf,0x1aee,0x1b01,0x1b12,0x1b23,0x1b48,0x1b6d,0x1b94,0x1bc8,0x1bf5,0x1c13,0x1c26,0x1c3f,0x1c78,0x1c87,
+0x1ca7,0x1cc9,0x1ceb,0x1d02,0x1d19,0x1d46,0x1d5f,0x1d78,0x1da9,0x1dd3,0x1dee,0x1e01,0x1e20,0x1e29,0x1e3c,0x1e5a,
+0x1e78,0x1e8b,0x1ea2,0x1eb7,0x1eec,0x1f10,0x1f25,0x1f34,0x1f47,0x1f6b,0x1f74,0x1f98,0x1faf,0x1fc2,0x1fd1,0x1fdc,
+0x1ffd,0x2015,0x2024,0x2033,0x2042,0x2059,0x206e,0x2083,0x20bc,0x20cf,0x20eb,0x20f6,0x2103,0x2131,0x2155,0x2178,
+0x218b,0x21ad,0x21c0,0x21db,0x21fe,0x2221,0x2246,0x2257,0x2286,0x22b3,0x22ca,0x22e5,0x22f4,0x231f,0x2357,0x2391,
+0x23bf,0x23d0,0x23dd,0x2401,0x2410,0x242c,0x2446,0x2463,0x249b,0x24b0,0x24dd,0x24fc,0x252a,0x254a,0x257e,0x258d,
+0x25b7,0x25da,0x2605,0x2610,0x2621,0x263c,0x2660,0x266d,0x2682,0x26a9,0x26d4,0x270b,0x271e,0x272f,0x275f,0x2770,
+0x277f,0x2794,0x27b2,0x27c5,0x27d8,0x27ef,0x280c,0x2817,0x2820,0x2842,0x2857,0x287c,0x2893,0x28bc,0x28d7,0x28ec,
+0x2905,0x2926,0x295b,0x296c,0x299d,0x29c1,0x29d2,0x29eb,0x29f6,0x2a23,0x2a45,0x2a73,0x2aa6,0x2ab5,0x2ac6,0x2ae3,
+0x2b25,0x2b4c,0x2b59,0x2b6e,0x2b92,0x2bb8,0x2bf1,0x2c02,0x2c26,0x2c31,0x2c3e,0x2c4d,0x2c72,0x2ca0,0x2cbc,0x2cd9,
+0x2ce6,0x2cf7,0x2d15,0x2d38,0x2d55,0x2d62,0x2d82,0x2d9f,0x2dc0,0x2de9,0x2dfa,0x2e19,0x2e32,0x2e4b,0x2e5c,0x2ea5,
+0x2eb6,0x2ecf,0x2efe,0x2f2b,0x2f50,0x2f92,0x2fae,0x2fbd,0x2fd4,0x3002,0x301b,0x3044,0x305e,0x3099,0x30b7,0x30c6,
+0x30e6,0x3101,0x3125,0x3141,0x315f,0x317d,0x3194,0x31a3,0x31ae,0x31eb,0x31fe,0x3228,0x3248,0x3276,0x329a,0x32c2,
+0x32e7,0x32f2,0x330b,0x3339,0x3375,0x3382,0x339d,0x33b2,0x33d4,0x33e5,0x33f6,0x3440,0x344f,0x20b6,1,0,
+0x12,0x34a2,0x34b2,0x34c5,0x34d5,0x34e5,0x34f4,0x3504,0x3516,0x3529,0x353b,0x354b,0x355b,0x356a,0x3579,0x3589,
+0x3596,0x35a5,0x35b9,0x2174,1,0,6,0x35de,0x35e9,0x35f6,0x3603,0x3610,0x361b,0x21b8,1,0,
+0x1e,0x3638,0x3647,0x365c,0x3671,0x3686,0x369a,0x36ab,0x36bf,0x36d2,0x36e3,0x36fc,0x370e,0x371f,0x3733,0x3746,
+0x375e,0x3770,0x377b,0x378b,0x3799,0x37ae,0x37c3,0x37d9,0x37f3,0x3809,0x3819,0x382d,0x3841,0x3852,0x386a,0x23e3,
+1,0,0x69,0x3892,0x38b5,0x38be,0x38cb,0x38d6,0x38df,0x38ea,0x38f3,0x390c,0x3911,0x391a,0x3937,0x3940,
+0x394d,0x3956,0x398b,0x3992,0x399b,0x39ae,0x39b9,0x39c2,0x39cd,0x39e6,0x39ef,0x39fe,0x3a09,0x3a12,0x3a1d,0x3a26,
+0x3a2d,0x3a36,0x3a41,0x3a4a,0x3a63,0x3a6c,0x3a79,0x3a84,0x3a95,0x3aa0,0x3ab5,0x3acc,0x3ad5,0x3ade,0x3af7,0x3b02,
+0x3b0b,0x3b14,0x3b2b,0x3b48,0x3b53,0x3b64,0x3b6f,0x3b76,0x3b83,0x3b90,0x3bbd,0x3bd2,0x3bdb,0x3bf6,0x3c19,0x3c3a,
+0x3c5b,0x3c80,0x3ca7,0x3cc8,0x3ceb,0x3d0c,0x3d33,0x3d54,0x3d79,0x3d98,0x3db7,0x3dd6,0x3df3,0x3e14,0x3e35,0x3e58,
+0x3e7d,0x3e9c,0x3ebb,0x3edc,0x3f03,0x3f28,0x3f47,0x3f68,0x3f8b,0x3fa6,0x3fbf,0x3fda,0x3ff3,0x4010,0x402b,0x4048,
+0x4067,0x4084,0x40a1,0x40c0,0x40dd,0x40f8,0x4115,0x4132,0x4165,0x418c,0x419f,0x41bc,0x2753,1,0,6,
+0x41e8,0x41f7,0x4207,0x4217,0x4227,0x4238,0x27b1,1,0,0x30,0x4256,0x4262,0x4270,0x427f,0x428e,0x429e,
+0x42af,0x42c3,0x42d8,0x42ee,0x4301,0x4315,0x4325,0x432e,0x4339,0x4349,0x4365,0x4377,0x4385,0x4394,0x43a0,0x43b5,
+0x43c9,0x43dc,0x43ea,0x43fe,0x440c,0x4416,0x4428,0x4434,0x4442,0x4452,0x4459,0x4460,0x4467,0x446e,0x4475,0x448b,
+0x44ac,0x870,0x44be,0x44c9,0x44d8,0x44e1,0x44ec,0x44ff,0x4510,0x4521,0x2a41,1,0,4,0x453d,0x4548,
+0x4554,0x455e,0x2a67,1,0,0xd0,0x4575,0x4582,0x4597,0x45a4,0x45b3,0x45c1,0x45d0,0x45df,0x45f1,0x4600,
+0x460e,0x461f,0x462e,0x463d,0x464a,0x4656,0x4665,0x4674,0x467e,0x468b,0x4698,0x46a7,0x46b5,0x46c4,0x46d0,0x46da,
+0x46e6,0x46f6,0x4706,0x4714,0x4720,0x4731,0x473d,0x4749,0x4757,0x4764,0x4770,0x477d,0xec1,0x478a,0x4798,0x47b2,
+0x47bb,0x47c9,0x47d7,0x47e3,0x47f2,0x4800,0x480e,0x481a,0x4829,0x4837,0x4845,0x4852,0x4861,0x487c,0x488b,0x489c,
+0x48ad,0x48c0,0x48d2,0x48e1,0x48f3,0x4902,0x490e,0x4919,0x1fd1,0x4926,0x4931,0x493c,0x4947,0x4952,0x496d,0x4978,
+0x4983,0x498e,0x49a1,0x49b5,0x49c0,0x49cf,0x49de,0x49e9,0x49f4,0x4a01,0x4a10,0x4a1e,0x4a29,0x4a44,0x4a4e,0x4a5f,
+0x4a70,0x4a7f,0x4a90,0x4a9b,0x4aa6,0x4ab1,0x4abc,0x4ac7,0x4ad2,0x4add,0x4ae7,0x4af2,0x4b02,0x4b0d,0x4b1b,0x4b28,
+0x4b33,0x4b42,0x4b4f,0x4b5c,0x4b6b,0x4b78,0x4b89,0x4b9b,0x4bab,0x4bb6,0x4bc9,0x4be0,0x4bee,0x4bfb,0x4c06,0x4c13,
+0x4c24,0x4c40,0x4c56,0x4c61,0x4c7e,0x4c8e,0x4c9d,0x4ca8,0x4cb3,0x20eb,0x4cbf,0x4cca,0x4ce2,0x4cf2,0x4d01,0x4d0f,
+0x4d1d,0x4d28,0x4d33,0x4d47,0x4d5e,0x4d76,0x4d86,0x4d96,0x4da6,0x4db8,0x4dc3,0x4dce,0x4dd8,0x4de4,0x4df2,0x4e05,
+0x4e11,0x4e1e,0x4e29,0x4e45,0x4e52,0x4e60,0x4e79,0x29eb,0x4e88,0x280c,0x4e95,0x4ea3,0x4eb5,0x4ec3,0x4ecf,0x4edf,
+0x2c26,0x4eed,0x4ef9,0x4f04,0x4f0f,0x4f1a,0x4f2e,0x4f3c,0x4f53,0x4f5f,0x4f73,0x4f81,0x4f93,0x4fa9,0x4fb7,0x4fc9,
+0x4fd7,0x4ff4,0x5006,0x5013,0x5024,0x5036,0x5050,0x505d,0x5070,0x5081,0x31a3,0x508e,0x32e7,0x509d,0x50af,0x50ba,
+0x50c6,0x50d9,0x50e9,0x50f7,0x5105,0x5112,0x3531,1,0,6,0x5140,0x5153,0x5163,0x5171,0x5182,0x5192,
+0x358d,0x12,0,1,0x51bc,0x51c2,0x359a,0x12,0,1,0x51bc,0x51c2,0x35a7,1,0,3,
+0x51bc,0x51c2,0x51fb,0x35bd,1,0,3,0x51bc,0x51c2,0x51fb,0x35d3,1,0,0x12,0x5285,0x528f,
+0x529b,0x52a2,0x52ad,0x52b2,0x52b9,0x52c0,0x52c9,0x52ce,0x52d3,0x52e3,0x870,0x44be,0x52ef,0x44c9,0x52ff,0x44d8,
+0x367c,1,0,0xf,0x5285,0x5326,0x5330,0x533a,0x5345,0x4394,0x534f,0x535b,0x5363,0x536a,0x5374,0x529b,
+0x52a2,0x52b2,0x537e,0x3703,1,0,0x17,0x5285,0x539b,0x533a,0x53a7,0x53b4,0x53c2,0x4394,0x53cd,0x529b,
+0x53de,0x52b2,0x53ed,0x53fb,0x870,0x44ac,0x5407,0x5418,0x44be,0x52ef,0x44c9,0x52ff,0x44d8,0x5429,0x3820,1,
+0,3,0x545c,0x5464,0x546c,0x3839,1,0,0x10,0x5495,0x549c,0x54ab,0x54cc,0x54ef,0x54fa,0x5519,
+0x5530,0x553d,0x5546,0x5565,0x5598,0x55b3,0x55e2,0x55ff,0x5624,0x38d2,1,0,0x25,0x5673,0x5680,0x5693,
+0x56a0,0x56cd,0x56f2,0x5707,0x5726,0x5747,0x5774,0x57ad,0x57d0,0x57f3,0x5820,0x5855,0x587c,0x58a5,0x58dc,0x590b,
+0x592c,0x5951,0x5960,0x5983,0x599a,0x59a7,0x59b6,0x59d3,0x59ec,0x5a0f,0x5a34,0x5a4d,0x5a62,0x5a71,0x5a82,0x5a8f,
+0x5ab0,0x5ad5,0x3ab5,1,0,4,0x5b13,0x5b1e,0x5b36,0x5b4e,0x3af1,0x12,0,1,0x5b76,0x5b8d,
+0x3b08,1,0,4,0x453d,0x56f2,0x53de,0x5bb9,0x3b2d,0x36,1,2,4,8,0xe,0x10,
+0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,
+0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,
+0x3638,0x3647,0x365c,0x3671,0x5bf6,0x3686,0x369a,0x5bec,0x36ab,0x36bf,0x36d2,0x5c07,0x36e3,0x36fc,0x370e,0x5c1e,
+0x371f,0x3733,0x3746,0x5c47,0x375e,0x3770,0x377b,0x378b,0x5be3,0x3799,0x37ae,0x37c3,0x37d9,0x37f3,0x3809,0x3819,
+0x382d,0x3841,0x5c3d,0x3852,0x386a,0x5c28,0x3e44,1,0,0xc,0x5dca,0x5de7,0x5dfe,0x5e23,0x5e36,0x5e47,
+0x5e5c,0x5e6f,0x5e84,0x5e9f,0x5eb8,0x5ecd
 };
 
-const uint8_t PropNameData::bytesTries[15527]={
-0,0x15,0x6d,0xc3,0xc7,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78,
+const uint8_t PropNameData::bytesTries[16091]={
+0,0x15,0x6d,0xc3,0xe7,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78,
 1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,
 0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,
 0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,
@@ -140,8 +144,8 @@
 0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63,
 0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,
 0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,
-0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0xa2,0x76,0x6e,0xa2,0x78,
-0x70,0xa4,0x3e,0x71,0xa4,0x90,0x72,3,0x61,0x2c,0x65,0x36,0x67,0x54,0x69,0x9d,
+0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0xa2,0x76,0x6e,0xa2,0x98,
+0x70,0xa4,0x5e,0x71,0xa4,0xb0,0x72,3,0x61,0x2c,0x65,0x36,0x67,0x54,0x69,0x9d,
 0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,
 0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x15,0x69,0x65,0x6d,0x6f,0x6a,0x69,0xa2,
 0x47,3,0x66,0x44,0x6d,0x5c,0x74,0x7c,0x7a,0x19,0x77,0x6a,0x73,0x65,0x71,0x75,
@@ -148,7 +152,9 @@
 0x65,0x6e,0x63,0x65,0xa3,0x46,0x1a,0x6c,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e,
 0x63,0x65,0xa3,0x44,0x1e,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x65,0x71,0x75,
 0x65,0x6e,0x63,0x65,0xa3,0x43,0x19,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,
-0x65,0xa3,0x45,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9,
+0x65,0xa3,0x45,2,0x61,0x54,0x63,0x58,0x6f,0x12,0x64,0x69,0x66,0x1f,0x69,0x65,
+0x72,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x4b,
+0x11,0x74,0x68,0x4f,0x10,0x6d,0xa3,0x4b,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9,
 0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,0x74,
 0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,0x72,
 0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,0x79,
@@ -167,8 +173,8 @@
 0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,0x38,
 0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,0x74,
 0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,0x69,
-0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc2,0x2e,0x69,
-0xc1,0x72,0x69,0xa2,0x6f,0x6a,0xa4,0x3f,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65,
+0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc2,0x72,0x69,
+0xc1,0xb6,0x69,0xa2,0x6f,0x6a,0xa4,0x83,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65,
 0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,0x13,
 0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,4,
 0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,0x70,
@@ -175,330 +181,340 @@
 0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,0x64,
 0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,
 0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,0x65,
-0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x91,0x73,1,0x63,0xd9,0x40,3,
-0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0xa2,0x44,
-0x65,0xa2,0x6c,0x73,0x40,2,0x62,0x48,0x74,0x64,0x75,0xa2,0x48,0x1b,0x6e,0x61,
-0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0xa3,0x48,0x44,0x1c,0x69,0x6e,
-0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x46,1,0x61,0x40,
-0x72,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,
-0x11,0x72,0x74,0x41,0x3e,0x10,0x6f,1,0x6d,0x30,0x6e,0x14,0x74,0x69,0x6e,0x75,
-0x65,0x3f,0x16,0x70,0x61,0x74,0x6d,0x61,0x74,0x68,1,0x63,0x30,0x73,0x13,0x74,
-0x61,0x72,0x74,0xa3,0x49,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0xa3,0x4a,0x10,
-0x6f,0x42,0x16,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,
-0x73,0x10,0x63,0xc3,0x17,0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,
-0x61,0x62,0x69,0x63,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,
-0x1f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,
-0x79,0xc3,0x16,0x10,0x63,0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,
-0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,
-0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,
-0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,
-0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,
-0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,
-0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,
-0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,
-0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,
-0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,
-3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,
-0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,
-0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,
-0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,
-0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0xa2,
-0x62,0xa2,0xd0,0x63,0xa4,0x4f,0x64,0xa6,0x1c,0x65,5,0x6d,0x75,0x6d,0x6e,0x70,
-0xa2,0x6b,0x78,0x10,0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,
-0x6e,0x64,0x65,1,0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,
-0x61,0x70,0x68,0x69,0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,3,
-0x63,0x44,0x6b,0x54,0x6d,0x70,0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,
-0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x1c,0x65,
-0x79,0x63,0x61,0x70,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,0xa3,0x42,0x16,0x6f,
-0x64,0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,
-0x73,0x95,0x61,0x30,0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,
-0x74,0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,
-0x65,0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,
-0x78,0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,
-1,0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,
-0x75,0x6d,0x79,5,0x6c,0x22,0x6c,0x36,0x6d,0x52,0x70,1,0x62,0xd9,0x40,0xd,
-0x74,0xc3,0x15,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,
-0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,1,0x61,0xa2,0x4f,0x63,0xc3,0,0x69,0x11,
-0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,
-0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,
-1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,
-0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,
-0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,0x17,0x73,0x69,0x63,0x65,0x6d,
-0x6f,0x6a,0x69,0xa3,0x41,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,
-4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,
-0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,
-0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,
-0x65,0x64,0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,
-0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,
-0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,
-0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,
-0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,
-0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,
-0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,
-0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,
-0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,
-2,0x10,0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,
-0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,
-0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,
-0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,
-0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,
-0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,
-0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,
-0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23,0xb,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,
-0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,
-0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,
-0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,
-0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,
-0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,
-0x12,0x65,0x66,0x74,0xa3,0xe0,0x64,0x45,0x64,0x4e,0x68,0x88,0x69,1,0x6f,0x26,
-0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,
-0xf0,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,
-0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,
-0x12,0x61,0x6e,0x72,0x2c,0x15,0x65,0x61,0x64,0x69,0x6e,0x67,0x2d,0x61,0xa2,0x7b,
-0x62,0xa2,0xd4,0x63,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,
-0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,
-0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,
-1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,
-0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,
-0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,
-0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,
-0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,0xa2,0xe6,3,0x62,0xa0,
-0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,
-0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,
-0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,
-0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,
-0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,
-0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,
-0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,
-0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,
-0x46,0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,
-0x61,0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,
-0x18,0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,
-0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,
-0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,
-0x6d,0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,
-0x41,0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,
-0x65,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,
-0x61,0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,
-0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,
-0x69,0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,
-0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,
-0x65,0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,
-1,0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,
-0x72,0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,
-0x72,0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,
-0x73,0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,
-0x72,0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,
-0x69,0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,
-0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,
-0x72,0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,
-0x47,0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,
-0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,
-0x13,0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,
-0x14,0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,
-0x61,0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc9,0x20,
-0x74,0xc2,0x30,0x77,0x89,0x77,0x86,0x79,0xa2,0x46,0x7a,1,0x61,0x58,0x6e,0x1a,
-0x61,0x6d,0x65,0x6e,0x6e,0x79,0x6d,0x75,0x73,0x69,0x63,0xa4,0x40,0x19,0x61,0x6c,
-0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa5,0x40,0x1c,0x6e,0x61,0x62,0x61,0x7a,
-0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x10,0x61,1,0x6e,0x36,0x72,
-0x16,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x12,0x63,0x68,0x6f,0xa5,0x2c,
-1,0x65,0x88,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,
-0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,
-0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,
-0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x13,0x7a,0x69,0x64,0x69,0xa5,0x34,0x74,0xa2,
-0x65,0x75,0xa4,0x4f,0x76,3,0x61,0x3c,0x65,0x80,0x69,0xa2,0x50,0x73,0xa2,0x6c,
-0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,
-0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,
-0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,
-0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,
-0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,0x15,0x74,0x68,
-0x6b,0x75,0x71,0x69,0xa5,0x3f,5,0x69,0x3f,0x69,0x5a,0x6f,0x8c,0x72,0x1c,0x61,
-0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,
-0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,
-0x68,0xa3,0x90,0x11,0x74,0x6f,0xa5,0x3d,0x61,0x3e,0x65,0xa2,0xa0,0x68,0x10,0x61,
-1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,4,0x67,0x8e,0x69,0xa2,0x49,0x6b,
-0xa2,0x72,0x6d,0xa2,0x74,0x6e,0x10,0x67,1,0x73,0x68,0x75,0x10,0x74,0xa4,0x10,
-1,0x63,0x40,0x73,0x11,0x75,0x70,0xa4,0x33,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
-0x74,0xa5,0x33,0x18,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,0x10,
-0x61,0xa5,0x3c,2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,
-0x62,0x13,0x61,0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,
-0x16,0x75,0x61,0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,
-0x6c,0x73,0xa3,0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,
-0x65,0x74,0xa3,0xb7,0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x48,0x12,0x73,0x75,
-0x70,0xa4,0x2b,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x2b,0x13,0x6c,0x75,
-0x67,0x75,0x4b,2,0x63,0x8c,0x67,0xa2,0x41,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,
-0x63,0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,
-0x6e,0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,
-0x74,0x65,0x6e,0x64,0x65,0x64,0xa2,0xad,0x10,0x61,0xa5,0x3e,0x11,0x61,0x73,0x62,
-0x12,0x65,0x78,0x74,0xa2,0xad,0x10,0x61,0xa5,0x3e,0x15,0x61,0x72,0x69,0x74,0x69,
-0x63,0xa3,0x78,0x70,0xc3,0x4b,0x70,0xa6,0x61,0x72,0xa8,0x1d,0x73,7,0x6f,0xc1,
-0xbe,0x6f,0xa2,0x69,0x70,0xa2,0x85,0x75,0xa2,0xa4,0x79,2,0x6c,0x50,0x6d,0x62,
-0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,
-0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,
-0x8f,0x13,0x62,0x6f,0x6c,0x73,1,0x61,0x4c,0x66,0x10,0x6f,0x1f,0x72,0x6c,0x65,
-0x67,0x61,0x63,0x79,0x63,0x6f,0x6d,0x70,0x75,0x74,0x69,0x6e,0x67,0xa5,0x32,0x1f,
-0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x78,0x74,
-1,0x61,0xa5,0x2a,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x2a,2,0x67,0x34,
-0x72,0x3e,0x79,0x13,0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x13,0x64,0x69,0x61,0x6e,0xa5,
-0x23,0x17,0x61,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,
-0x14,0x63,0x69,0x61,0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,
-0x64,0x69,0x66,0x69,0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,
-0x48,0x70,0x76,0x74,0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,
-0x69,0x6e,0x67,0xa5,6,0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,
-0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,
-0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,
-0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,
-0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,
-0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,
-0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,
-0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,
-0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,
-0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,
-0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,
-0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,
-2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,
-0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,
-0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,
-0x88,0x68,0xa2,0x48,0x69,0xa2,0x71,0x6d,0x12,0x61,0x6c,0x6c,1,0x66,0x46,0x6b,
-0x15,0x61,0x6e,0x61,0x65,0x78,0x74,0xa4,0x29,0x15,0x65,0x6e,0x73,0x69,0x6f,0x6e,
-0xa5,0x29,0x12,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69,0x61,
-0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74,0x72,
-0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52,0x6f,
-0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,
-0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,
-0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,
-0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,0x72,0x35,0x72,0x44,0x73,
-0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,
-0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,
-0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61,0x72,
-0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68,0x61,
-0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,
-0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e,0x16,
-0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75,0x70,
-0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,
-0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,
-0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,
-0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,
-0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,
-0xa3,0x6d,0xa2,0xf0,0x6e,0xa8,0x23,0x6f,6,0x70,0x63,0x70,0x56,0x72,0x8a,0x73,
-0xa2,0x4c,0x74,0x10,0x74,0x1f,0x6f,0x6d,0x61,0x6e,0x73,0x69,0x79,0x61,0x71,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,0x28,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,
-0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,
-0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,
-0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,1,0x61,
-0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x63,0xa2,
-0x7b,0x67,0xa2,0x7b,0x6c,1,0x63,0xa2,0x6c,0x64,6,0x70,0x42,0x70,0x3a,0x73,
-0x5a,0x74,0x88,0x75,0x14,0x79,0x67,0x68,0x75,0x72,0xa5,0x3b,0x11,0x65,0x72,1,
-0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,
-1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,
-0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x68,
-0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,
-0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,
-0x6c,0x69,0x63,0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,
-0x68,0x61,0x6d,0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,
-0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,
-0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,
-0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,
-0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,
-0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,
-0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,
-0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,
-0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,
-0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,
-0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,
-0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,
-0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,
-0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,
-0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,
-0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,
-0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,
-0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,
-0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,
-0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,
-0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,
-0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,
-0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,
-0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,
-0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,
-0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,
-0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,
-0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,
-0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,
-0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,
-0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,
-0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,
-0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,
-0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,
-0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b,0x56,0x6f,
-0x5a,0x75,0x64,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63,
-0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92,0x14,0x62,
-0x6c,0x6f,0x63,0x6b,0x21,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,
-0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,
-0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,2,0x62,0x3c,0x67,
-0x4a,0x6e,0x17,0x64,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa5,0x26,0x15,0x61,0x74,
-0x61,0x65,0x61,0x6e,0xa3,0xef,0x16,0x6d,0x75,0x6e,0x64,0x61,0x72,0x69,0xa5,0x47,
-0x67,0xc4,0x5d,0x6a,0xc1,0xe4,0x6a,0xa2,0xdf,0x6b,0xa2,0xf8,0x6c,4,0x61,0x54,
-0x65,0xa2,0x6b,0x69,0xa2,0x82,0x6f,0xa2,0xc1,0x79,1,0x63,0x2e,0x64,0x12,0x69,
-0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,
-0x6e,1,0x31,0x96,0x65,0x11,0x78,0x74,6,0x64,0x21,0x64,0xa3,0x95,0x65,0x2c,
-0x66,0xa5,0x39,0x67,0xa5,0x3a,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,6,0x64,0xc,
-0x64,0xa3,0x95,0x65,0xa3,0xe7,0x66,0xa5,0x39,0x67,0xa5,0x3a,0x61,0x2a,0x62,0x29,
-0x63,0xa3,0x94,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,
-0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70,
-0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73,0x10,0x75,
-0xa2,0xb0,0x12,0x73,0x75,0x70,0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa5,0x31,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62,
-1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17,
-0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72,
-0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61,
-0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3,
-0xb4,0x62,0xa3,0xb9,1,0x61,0xa2,0x43,0x68,4,0x61,0x40,0x69,0x50,0x6d,0x6e,
-0x6f,0x86,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,
-0x68,0x74,0x68,0x69,0xa3,0x89,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,
-0x63,0x72,0x69,0x70,0x74,0xa5,0x30,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,
-0x6f,0x6c,0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,5,0x74,0x35,0x74,0x34,
-0x77,0x7a,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x14,0x61,0x6b,0x61,0x6e,0x61,
-0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,
-0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x10,
-0x69,0xa5,0x46,0x69,0xa2,0x4e,0x6b,0xa2,0x51,0x6e,3,0x61,0x34,0x62,0x84,0x67,
-0x8a,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,
-0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,2,0x61,0xa5,
-0x13,0x62,0xa5,0x38,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa5,0x13,0x62,0xa5,
-0x38,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,
-0x61,0x6c,0x73,0x97,0x12,0x74,0x68,0x69,0xa3,0xc1,0x1c,0x74,0x6f,0x76,0x69,0x6b,
-0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x45,0x67,0xa2,0xb5,0x68,0xa4,0x84,
-0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,
-0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,
-0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,
-0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,
-0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,
-0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,
-0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,
-0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,
-0x11,0x69,0x63,1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,
-0x65,0x72,0x73,0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,
-0xa3,0xb2,4,0x65,0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,
-0x6a,0x34,0x6e,0x3e,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,
-0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,
-0x6e,0xa2,0x46,0x6f,1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,
-0x40,0x73,0x11,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,
-0x87,0x11,0x78,0x74,0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,
-0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,
-0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,
-0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,
-0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,
-0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,
-0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,
+0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0xbd,0x73,1,0x63,0xd9,0x40,3,
+0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,3,0x63,0x3a,0x65,
+0x8c,0x73,0xa2,0x5b,0x74,0x12,0x79,0x70,0x65,0xd9,0x70,1,0x3e,0x10,0x6f,1,
+0x6d,0x30,0x6e,0x14,0x74,0x69,0x6e,0x75,0x65,0x3f,0x16,0x70,0x61,0x74,0x6d,0x61,
+0x74,0x68,1,0x63,0x30,0x73,0x13,0x74,0x61,0x72,0x74,0xa3,0x49,0x16,0x6f,0x6e,
+0x74,0x69,0x6e,0x75,0x65,0xa3,0x4a,1,0x6e,0x36,0x6f,0x42,0x16,0x67,0x72,0x61,
+0x70,0x68,0x69,0x63,0x43,0x15,0x74,0x69,0x66,0x69,0x65,0x72,1,0x73,0x30,0x74,
+0x12,0x79,0x70,0x65,0xd9,0x70,1,0x14,0x74,0x61,0x74,0x75,0x73,0xc3,0x19,0x40,
+2,0x62,0x48,0x74,0x64,0x75,0xa2,0x48,0x1b,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,
+0x72,0x61,0x74,0x6f,0x72,0xa3,0x48,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,
+0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,0x61,
+0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,1,0x72,0x2c,0x74,0x11,
+0x75,0x73,0xc3,0x19,0x10,0x74,0x41,3,0x63,0x34,0x64,0x38,0x70,0xa2,0x48,0x73,
+0x10,0x63,0xc3,0x17,0x10,0x62,0xc3,0x1a,0x11,0x69,0x63,2,0x63,0x4a,0x70,0x64,
+0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,
+0x79,0xc3,0x17,0x1b,0x6f,0x6e,0x6a,0x75,0x6e,0x63,0x74,0x62,0x72,0x65,0x61,0x6b,
+0xc3,0x1a,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,
+0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,0xc3,0x16,2,0x67,0xc3,6,0x6f,
+0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,
+0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,
+0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,
+0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,
+0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,
+0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,
+0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,
+0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,
+0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,
+0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,
+0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,
+0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,
+5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,
+0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,
+0,0x61,0xa2,0xa2,0x62,0xa2,0xd0,0x63,0xa4,0x4f,0x64,0xa6,0x1c,0x65,5,0x6d,
+0x75,0x6d,0x6e,0x70,0xa2,0x6b,0x78,0x10,0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69,
+0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63,
+0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a,
+0x10,0x69,0x92,3,0x63,0x44,0x6b,0x54,0x6d,0x70,0x70,0x1a,0x72,0x65,0x73,0x65,
+0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,
+0x74,0x9b,0x1c,0x65,0x79,0x63,0x61,0x70,0x73,0x65,0x71,0x75,0x65,0x6e,0x63,0x65,
+0xa3,0x42,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,
+0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b,
+0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,
+4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,
+0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0,
+0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74,
+0x69,0x63,0x21,0x11,0x75,0x6d,0x79,5,0x6c,0x22,0x6c,0x36,0x6d,0x52,0x70,1,
+0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63,
+0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,1,0x61,0xa2,0x4f,0x63,
+0xc3,0,0x69,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,
+0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,
+0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,
+0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,
+0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,0x17,0x73,
+0x69,0x63,0x65,0x6d,0x6f,0x6a,0x69,0xa3,0x41,6,0x68,0x7c,0x68,0x54,0x69,0x85,
+0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,
+0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,
+0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,
+0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,
+0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,
+0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,
+0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,
+0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,
+2,1,0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,
+0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,
+0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,
+0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,
+0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2,
+0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,
+0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,
+0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,
+0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,
+0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,
+0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,
+0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23,0xb,0x6b,0x5b,0x6f,
+0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,
+0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,
+0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,
+0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,
+0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,
+0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0,0x64,0x45,0x64,0x4e,0x68,0x88,
+0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,
+0x69,0x70,0x74,0xa3,0xf0,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,
+0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,
+0x76,0x65,0xa3,0xea,0x12,0x61,0x6e,0x72,0x2c,0x15,0x65,0x61,0x64,0x69,0x6e,0x67,
+0x2d,0x61,0xa2,0x7b,0x62,0xa2,0xd4,0x63,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,
+0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,
+0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,
+0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,
+0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,
+0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,
+0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34,
+0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,0xa2,
+0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,
+0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,
+0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,
+0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,
+0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,
+0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,
+0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,
+0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,0xb,0x6e,0xc0,
+0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,
+0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,
+0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,
+0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,
+0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,
+0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,
+0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,
+0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,
+0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,
+0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
+0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,
+0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,
+0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,
+0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,
+0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,
+0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,
+0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,
+0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,
+0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,
+0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,
+0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,
+0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,
+0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,
+0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,
+0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,
+0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,
+0x16,0x6d,0xc9,0x5e,0x74,0xc2,0x48,0x77,0x89,0x77,0x86,0x79,0xa2,0x46,0x7a,1,
+0x61,0x58,0x6e,0x1a,0x61,0x6d,0x65,0x6e,0x6e,0x79,0x6d,0x75,0x73,0x69,0x63,0xa4,
+0x40,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa5,0x40,0x1c,0x6e,
+0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x10,0x61,
+1,0x6e,0x36,0x72,0x16,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x12,0x63,
+0x68,0x6f,0xa5,0x2c,1,0x65,0x88,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,
+0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,
+0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,
+0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x13,0x7a,0x69,0x64,0x69,
+0xa5,0x34,0x74,0xa2,0x65,0x75,0xa4,0x67,0x76,3,0x61,0x3c,0x65,0x80,0x69,0xa2,
+0x50,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,
+0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,
+0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,
+0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,
+0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
+0xaf,0x15,0x74,0x68,0x6b,0x75,0x71,0x69,0xa5,0x3f,6,0x69,0x57,0x69,0x44,0x6f,
+0x76,0x72,0x8e,0x75,0x19,0x6c,0x75,0x74,0x69,0x67,0x61,0x6c,0x61,0x72,0x69,0xa5,
+0x52,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,
+0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,1,0x64,0x2a,0x74,
+0x10,0x6f,0xa5,0x3d,0x12,0x68,0x72,0x69,0xa5,0x51,0x1c,0x61,0x6e,0x73,0x70,0x6f,
+0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0xa3,0xcf,0x61,0x3e,0x65,0xa2,0xa0,0x68,0x10,0x61,1,0x61,0x24,0x69,
+0x53,0x11,0x6e,0x61,0x3d,4,0x67,0x8e,0x69,0xa2,0x49,0x6b,0xa2,0x72,0x6d,0xa2,
+0x74,0x6e,0x10,0x67,1,0x73,0x68,0x75,0x10,0x74,0xa4,0x10,1,0x63,0x40,0x73,
+0x11,0x75,0x70,0xa4,0x33,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x33,0x18,
+0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,0x10,0x61,0xa5,0x3c,2,
+0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,
+0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,
+0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,
+0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,
+0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x48,0x12,0x73,0x75,0x70,0xa4,0x2b,0x16,
+0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x2b,0x13,0x6c,0x75,0x67,0x75,0x4b,2,
+0x63,0x8c,0x67,0xa2,0x41,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e,0x61,
+0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x73,
+0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,
+0x65,0x64,0xa2,0xad,0x10,0x61,0xa5,0x3e,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,
+0xa2,0xad,0x10,0x61,0xa5,0x3e,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,
+0xc3,0x64,0x70,0xa6,0x7a,0x72,0xa8,0x36,0x73,7,0x6f,0xc1,0xd7,0x6f,0xa2,0x79,
+0x70,0xa2,0x95,0x75,0xa2,0xb4,0x79,2,0x6c,0x50,0x6d,0x62,0x72,0x12,0x69,0x61,
+0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,0x13,0x62,0x6f,
+0x6c,0x73,1,0x61,0x6c,0x66,0x10,0x6f,0x1f,0x72,0x6c,0x65,0x67,0x61,0x63,0x79,
+0x63,0x6f,0x6d,0x70,0x75,0x74,0x69,0x6e,0x67,0xa4,0x32,0x12,0x73,0x75,0x70,0xa4,
+0x50,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x50,0x1f,0x6e,0x64,0x70,0x69,
+0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x78,0x74,1,0x61,0xa5,0x2a,
+0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x2a,2,0x67,0x34,0x72,0x3e,0x79,0x13,
+0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,
+0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,
+0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,
+0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x88,0x74,
+0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,
+6,1,0x64,0x2e,0x75,0x12,0x77,0x61,0x72,0xa5,0x4f,0x14,0x61,0x6e,0x65,0x73,
+0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
+0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,
+0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,
+0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,0x72,
+0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,
+0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,
+0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,0x6e,
+0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,
+0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,0x65,
+0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,
+0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,
+0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x14,
+0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,
+0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,
+0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,
+0x6f,0x6e,0xa3,0x8e,0x61,0x88,0x68,0xa2,0x48,0x69,0xa2,0x71,0x6d,0x12,0x61,0x6c,
+0x6c,1,0x66,0x46,0x6b,0x15,0x61,0x6e,0x61,0x65,0x78,0x74,0xa4,0x29,0x15,0x65,
+0x6e,0x73,0x69,0x6f,0x6e,0xa5,0x29,0x12,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,
+0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,
+0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,
+0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,
+0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,
+0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,
+0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,
+0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,
+0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,
+0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,
+0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,
+0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,
+0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,
+0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,
+1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,
+0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,
+0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,
+0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,
+0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,
+0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,
+0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,
+0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xf7,0x6e,0xa8,0x30,0x6f,6,0x70,0x63,
+0x70,0x56,0x72,0x8a,0x73,0xa2,0x4c,0x74,0x10,0x74,0x1f,0x6f,0x6d,0x61,0x6e,0x73,
+0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,0x28,0x18,0x74,0x69,
+0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,
+0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,
+0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,
+0x79,0x61,0x47,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,
+0x65,0xa5,0xf,0x63,0xa2,0x82,0x67,0xa2,0x82,0x6c,2,0x63,0x32,0x64,0x3c,0x6f,
+0x12,0x6e,0x61,0x6c,0xa5,0x4e,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,6,0x70,0x42,
+0x70,0x3a,0x73,0x5a,0x74,0x88,0x75,0x14,0x79,0x67,0x68,0x75,0x72,0xa5,0x3b,0x11,
+0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,
+0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,
+0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x14,0x75,0x72,0x6b,0x69,0x63,
+0xa3,0xbf,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,
+0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,
+0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65,
+6,0x6f,0x8c,0x6f,0x78,0x72,0xa2,0x67,0x75,0xa2,0x68,0x79,0x14,0x61,0x6e,0x6d,
+0x61,0x72,0x58,0x12,0x65,0x78,0x74,3,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x63,0xa5,
+0x4d,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x63,0xa5,
+0x4d,1,0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,
+0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,
+0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,
+0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,
+0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,
+0xa2,0x9b,0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,
+0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,
+0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,
+0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,
+0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,
+0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,
+0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,
+1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,
+0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,
+0x72,0x44,0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,
+0x6c,0x73,0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,
+0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,
+0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,
+0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,
+0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,
+0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,
+0x50,0x6b,0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,
+0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,
+0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,
+0xa3,0xe9,0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,
+0x4f,3,0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,
+1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,
+0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,
+0x72,0x69,0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,
+0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,
+0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b,
+0x56,0x6f,0x5a,0x75,0x64,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,
+0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92,
+0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,
+0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10,
+0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,2,0x62,
+0x3c,0x67,0x4a,0x6e,0x17,0x64,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa5,0x26,0x15,
+0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x16,0x6d,0x75,0x6e,0x64,0x61,0x72,0x69,
+0xa5,0x47,0x67,0xc4,0x7b,0x6a,0xc1,0xef,0x6a,0xa2,0xdf,0x6b,0xa2,0xf8,0x6c,4,
+0x61,0x54,0x65,0xa2,0x6b,0x69,0xa2,0x82,0x6f,0xa2,0xc1,0x79,1,0x63,0x2e,0x64,
+0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,
+0x11,0x69,0x6e,1,0x31,0x96,0x65,0x11,0x78,0x74,6,0x64,0x21,0x64,0xa3,0x95,
+0x65,0x2c,0x66,0xa5,0x39,0x67,0xa5,0x3a,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,6,
+0x64,0xc,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x66,0xa5,0x39,0x67,0xa5,0x3a,0x61,0x2a,
+0x62,0x29,0x63,0xa3,0x94,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,
+0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,
+1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73,
+0x10,0x75,0xa2,0xb0,0x12,0x73,0x75,0x70,0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65,
+0x6e,0x74,0xa5,0x31,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,
+0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,
+0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,
+0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,
+0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,
+0x61,0xa3,0xb4,0x62,0xa3,0xb9,2,0x61,0x3a,0x68,0xa2,0xa9,0x69,0x15,0x72,0x61,
+0x74,0x72,0x61,0x69,0xa5,0x4c,5,0x74,0x35,0x74,0x34,0x77,0x7a,0x79,0x13,0x61,
+0x68,0x6c,0x69,0xa3,0xa2,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,
+0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,
+0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x10,0x69,0xa5,0x46,0x69,0xa2,
+0x4e,0x6b,0xa2,0x51,0x6e,3,0x61,0x34,0x62,0x84,0x67,0x8a,0x6e,0x12,0x61,0x64,
+0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,
+0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,2,0x61,0xa5,0x13,0x62,0xa5,0x38,0x65,
+0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa5,0x13,0x62,0xa5,0x38,0x11,0x75,0x6e,0xa3,
+0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x12,
+0x74,0x68,0x69,0xa3,0xc1,0x1c,0x74,0x6f,0x76,0x69,0x6b,0x6e,0x75,0x6d,0x65,0x72,
+0x61,0x6c,0x73,0xa5,0x45,4,0x61,0x40,0x69,0x50,0x6d,0x6e,0x6f,0x86,0x75,0x15,
+0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69,
+0xa3,0x89,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,
+0x74,0xa5,0x30,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,
+0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,0x67,0xa2,0xb5,0x68,0xa4,0x97,0x69,3,0x64,
+0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,
+0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,
+0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,
+0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
+0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,
+0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,
+0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,
+0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,
+0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,
+1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,5,
+0x6f,0x61,0x6f,0x80,0x72,0x8a,0x75,2,0x6a,0x4e,0x6e,0x58,0x72,1,0x6d,0x36,
+0x75,0x16,0x6e,0x67,0x6b,0x68,0x65,0x6d,0x61,0xa5,0x4b,0x13,0x75,0x6b,0x68,0x69,
+0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,
+0x64,0x69,0xa5,0x1c,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,
+0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,
+0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,
+0x61,0xa3,0xe4,0x61,0x5c,0x65,0x64,0x6c,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,
+0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
+0x74,0xa5,0xa,0x12,0x72,0x61,0x79,0xa5,0x4a,1,0x6e,0xa2,0x46,0x6f,1,0x6d,
+0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,
+0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b,
+0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,
+0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,
+0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0x71,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,
 0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,
 0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,
 0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,
@@ -513,7 +529,7 @@
 0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,
 0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,
 0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,
-0x61,0xa4,0xc,0x62,0xa6,0x59,0x63,0xa8,0x2e,0x64,0xac,0xe9,0x65,5,0x6d,0xa9,
+0x61,0xa4,0x1d,0x62,0xa6,0x6a,0x63,0xa8,0x3f,0x64,0xac,0xfa,0x65,5,0x6d,0xa9,
 0x6d,0x94,0x6e,0xa2,0x41,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,
 0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,
 0x86,0x11,0x78,0x74,0xa2,0x85,2,0x61,0xa3,0xc8,0x62,0xa5,0x37,0x65,0x13,0x6e,
@@ -528,311 +544,320 @@
 0x30,0x79,0x13,0x6d,0x61,0x69,0x63,0xa5,0x25,0x13,0x61,0x73,0x61,0x6e,0xa3,0xe2,
 0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,
 0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x1f,0x79,0x70,0x74,0x69,0x61,0x6e,0x68,
-0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,1,0x66,0x26,0x73,0xa3,0xc2,0x1c,
-0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa5,0x24,7,
-0x6e,0xc0,0xf2,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xe5,0x76,0x14,0x65,0x73,0x74,
-0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,
-0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,
-0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,
-0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,
-0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,
-0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x7e,0x72,0x12,0x6f,0x77,0x73,
-0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x80,0x70,0xa2,0x50,0x73,0x11,
-0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,
-0x74,3,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x65,0x13,0x6e,0x64,0x65,
-0x64,2,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x12,0x61,0x74,0x68,0xa2,
-0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,
-0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,
-0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,
-0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,
-0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,
-0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,
-0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,
-0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,
-0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,
-0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,
-0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,
-0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,
-0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,
-0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,
-0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,
-0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,
-0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,
-0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,
-0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
-0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,
-0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,
-0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x60,0x6f,0xa2,0x69,0x75,0xa4,
-0x24,0x79,1,0x70,0xa2,0x44,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,
-0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,
-0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,4,0x61,0xa3,0x9e,0x62,0xa3,
-0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x65,0x13,0x6e,0x64,0x65,0x64,3,0x61,0xa3,
-0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x10,0x72,1,0x69,0x34,0x6f,
-0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa5,0x36,0x1a,0x6f,0x74,0x73,0x79,0x6c,0x6c,
-0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,
-0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,
-0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,
-0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,
-0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,
-0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,
-0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x52,0x73,0x18,0x75,0x70,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,
-0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,
-0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,
-0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,
-0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,
-0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,
-0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xea,0x68,0xa4,
-0x14,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x92,0x65,0xa2,0x83,0x72,0xa2,0xa1,0x73,
-0xa2,0xb3,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,
-0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,
-8,0x65,0x71,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,0x42,0x69,
-0xa5,0x48,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62,
-0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,
-0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,
-0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,
-0x78,0x74,8,0x65,0xf,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,
-0x42,0x69,0xa5,0x48,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,0xd1,
-0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,
-0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,
-0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,
-0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,
-0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,
-0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,
-0x69,0x61,0x6e,0xa3,0xa8,2,0x61,0x3a,0x65,0x4c,0x6f,0x16,0x72,0x61,0x73,0x6d,
-0x69,0x61,0x6e,0xa5,0x2d,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,
-1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,
-0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa3,0xff,3,0x65,0x3e,0x69,0x8e,0x6f,0xa2,0x71,0x75,0x15,0x70,
-0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x60,0x76,0x16,0x61,0x6e,0x61,0x67,
-0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,1,0x61,0xa5,0x44,0x65,0x13,
-0x6e,0x64,0x65,0x64,0xa2,0xb3,0x10,0x61,0xa5,0x44,0x13,0x65,0x72,0x65,0x74,0xa3,
-0x5a,2,0x61,0x3a,0x6e,0x82,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa5,
-0x2f,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,
-0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x14,0x67,0x62,0x61,0x74,0x73,0x91,1,0x67,
-0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,
-0x11,0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,
-0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,
-2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,
-0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,
-0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,
-0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,
-0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,
-0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,
-0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,
-0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,
-0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,
-0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,
-0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,
-0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,
-0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,
-0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,
-0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,
-0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,
-0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,
-1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,
-0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,
-0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,
-0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,
-0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,
-8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,
-0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,
-0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,
-0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,
-0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,
-0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,
-0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,
-0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,
-0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,
-0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,
-0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,
-0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,
-0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,
-0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,
-0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,
-0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,
-0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,
-0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,
-0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,
-0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,
-0x72,0x33,0,0x13,0x6e,0xc1,0xf,0x74,0x76,0x74,0x4c,0x76,0x9a,0x77,0xa2,0x48,
-0x79,0xa2,0x49,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,
-0x85,2,0x61,0x36,0x65,0x3c,0x68,0x14,0x69,0x6e,0x79,0x65,0x68,0xa3,0x66,1,
-0x68,0x71,0x77,0x73,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,
-0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,0x1a,0x65,0x72,0x74,0x69,0x63,
-0x61,0x6c,0x74,0x61,0x69,0x6c,0xa3,0x67,0x11,0x61,0x77,0x79,1,0x65,0x32,0x75,
-0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,0x16,
-0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,0x6e,
-0xa2,0x4c,0x70,0xa2,0x69,0x71,0xa2,0x69,0x72,0xa2,0x6f,0x73,5,0x74,0x22,0x74,
-0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,
-0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,
-0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,
-0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,2,0x6f,
-0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,
-0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65,
-0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,1,0x65,0x38,0x6f,0x18,0x68,
-0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,
-0x73,0x65,0x64,0x70,0x65,0x61,0x67,0xc1,0xc7,0x67,0xa4,0x52,0x68,0xa4,0x59,0x6b,
-0xa4,0x99,0x6c,0xa4,0xb2,0x6d,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,
-1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,
-0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,
-0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,
-0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,
-0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,
-0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,
-0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,
-0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,
-0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,
-0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,
-0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,
-0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,
-0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,
-0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,
-0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,
-0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,0xa3,
-0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,1,
-0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,
-0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,
-0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,0x10,0x61,
-1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,
-0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,0x5c,
-0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,0x2a,
-0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,0x7a,
-0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44,
-0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10,
-0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,
-0x61,0x6e,0x62,0xa2,0x54,0x64,0xa2,0x70,0x65,0x31,0x66,2,0x61,0x3e,0x65,0x4a,
-0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,
-0x69,0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,2,0x66,0x3c,0x69,0x70,0x6c,1,
-0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,
-2,0x66,0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,
-0x12,0x6f,0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,
-0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,
-0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,
-0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,
-0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,
-0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,
-0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,
-0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,
-0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,
-0x6e,0x67,0x23,0,0x14,0x6e,0xc0,0xe5,0x73,0x5e,0x77,0x23,0x77,0x40,0x78,0x58,
-0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,1,0x6a,
-0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x73,
-0x4a,0x75,0x7a,0x76,1,0x66,0x7d,0x69,0x7e,0x13,0x72,0x61,0x6d,0x61,0x7e,0x14,
-0x66,0x69,0x6e,0x61,0x6c,0x7d,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,
-0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,
-0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,
-0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,
-0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,
-0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,
-0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,
-0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,
-1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,
-0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,
-0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,
-0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,
-0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,
-0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,
-0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,
-0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,
-0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,
-0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x42,0x62,0xa2,0x49,0x63,
-0xa2,0x76,0x65,0xa2,0xfc,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,5,0x6d,0xf,
-0x6d,0x28,0x70,0x79,0x73,0x7b,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x69,
-0x23,0x6b,0x38,0x6c,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,0x76,
-0x13,0x73,0x61,0x72,0x61,0x76,1,0x70,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x7b,
-0x15,0x72,0x65,0x62,0x61,0x73,0x65,0x79,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,
-0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,
-0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,
-0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,
-0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,
-0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,
-0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,
-0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,
-0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,
-0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,
-0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,
-0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,
-0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,
-0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,
-0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,
-0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0x6f,0x74,0xc1,
-0x91,0x77,0x96,0x77,0xa2,0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,
-0x73,0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,
-0xa3,0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,
-0x69,0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,
-0x1a,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,
-0x68,0x23,2,0x61,0x30,0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,
-0x72,0x10,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,
-0x68,0x6f,0xa3,0xbc,0x11,0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,
-0xa3,0x65,0x11,0x65,0x6f,0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,
-0x7a,0x69,0xa2,0xc0,0x11,0x64,0x69,0xa3,0xc0,0x74,0x66,0x75,0xa2,0xde,0x76,1,
-0x61,0x48,0x69,1,0x73,0x38,0x74,0x10,0x68,0xa2,0xc5,0x13,0x6b,0x75,0x71,0x69,
-0xa3,0xc5,0x10,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,7,0x68,
-0x3e,0x68,0x34,0x69,0x48,0x6e,0x86,0x6f,0x11,0x74,0x6f,0xa3,0xc4,0x10,0x61,1,
-0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,2,0x62,0x3a,0x66,0x4a,0x72,0x10,
-0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,
-0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x73,0x61,0xa3,0xc3,0x61,
-0x36,0x65,0xa2,0x65,0x66,0xa2,0x71,0x67,0x11,0x6c,0x67,0x75,6,0x6c,0x28,0x6c,
-0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,
-0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,1,0x73,0x2a,0x75,0x10,
-0x74,0xa3,0x9a,0x10,0x61,0xa3,0xc3,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,
-0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,
-0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,
-0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,
-0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,0x11,0x6e,0x67,0x99,1,0x67,0x32,0x6e,
-0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,
-0x63,0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,6,0x69,0x8a,0x69,
-0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,
-0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,
-0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,
-1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,
-0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,
-2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,
-1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,
-0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,
-0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,
-0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,
-0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,
-0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,
-0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,
-0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,
-0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,
-0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,
-0x10,0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa4,1,0x70,5,
-0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,
-0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,
-0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,
-0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,
-0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,
-2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,
-0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,
-0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,6,0x6b,
-0x36,0x6b,0x56,0x73,0x6e,0x75,0x74,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,
-0x70,0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xba,1,0x67,
-0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,
-0x96,0x12,0x73,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x9e,0x65,0x10,0x77,1,0x61,
-0xa3,0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,3,0x62,0x32,0x67,0x40,0x6e,
-0x56,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x10,
-0x6d,0xa2,0xc7,0x15,0x75,0x6e,0x64,0x61,0x72,0x69,0xa3,0xc7,0x10,0x64,0xa2,0xbb,
-0x16,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,4,
-0x67,0x3c,0x6c,0x4e,0x72,0xa2,0x8e,0x73,0xa2,0x9c,0x75,0x11,0x67,0x72,0xa3,0xc2,
-1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x6a,0x64,
+0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,1,0x66,0x48,0x73,0xa2,0xc2,0x12,
+0x65,0x78,0x74,1,0x61,0xa5,0x49,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x49,
+0x1c,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa5,0x24,
+7,0x6e,0xc0,0xf2,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xe5,0x76,0x14,0x65,0x73,
+0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,
+0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,
+1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,
+0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,
+0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,
+0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x7e,0x72,0x12,0x6f,0x77,
+0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x80,0x70,0xa2,0x50,0x73,
+0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,
+0x78,0x74,3,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x65,0x13,0x6e,0x64,
+0x65,0x64,2,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x63,0xa5,0x41,0x12,0x61,0x74,0x68,
+0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,
+0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,
+0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,
+0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,
+0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,
+0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,
+0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,
+0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,
+0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,
+0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,
+7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,
+0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,
+0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,
+0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,
+0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,
+0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,
+0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,
+0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,
+0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,
+0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,
+0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,
+0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,
+0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,
+0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x60,0x6f,0xa2,0x69,0x75,
+0xa4,0x24,0x79,1,0x70,0xa2,0x44,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,
+0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,4,0x61,0xa3,0x9e,0x62,
+0xa3,0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x65,0x13,0x6e,0x64,0x65,0x64,3,0x61,
+0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x64,0xa5,0x43,0x10,0x72,1,0x69,0x34,
+0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa5,0x36,0x1a,0x6f,0x74,0x73,0x79,0x6c,
+0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,
+0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,
+0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,
+0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,
+0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,
+0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x52,0x73,0x18,0x75,0x70,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,
+0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,
+0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,
+0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,
+0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,
+0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,
+0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xea,0x68,
+0xa4,0x14,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x92,0x65,0xa2,0x83,0x72,0xa2,0xa1,
+0x73,0xa2,0xb3,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,
+0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,
+0x6e,8,0x65,0x71,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,0xa5,0x42,
+0x69,0xa5,0x48,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,
+0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,
+0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,
+0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,
+0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,
+0x11,0x78,0x74,8,0x65,0xf,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x68,
+0xa5,0x42,0x69,0xa5,0x48,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x64,0xa3,
+0xd1,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,
+0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
+0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,
+0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,
+0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,
+0x12,0x69,0x61,0x6e,0xa3,0xa8,2,0x61,0x3a,0x65,0x4c,0x6f,0x16,0x72,0x61,0x73,
+0x6d,0x69,0x61,0x6e,0xa5,0x2d,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,
+0xd4,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,
+0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,
+0x6d,0x65,0x6e,0x74,0xa3,0xff,3,0x65,0x3e,0x69,0x8e,0x6f,0xa2,0x71,0x75,0x15,
+0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x60,0x76,0x16,0x61,0x6e,0x61,
+0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,1,0x61,0xa5,0x44,0x65,
+0x13,0x6e,0x64,0x65,0x64,0xa2,0xb3,0x10,0x61,0xa5,0x44,0x13,0x65,0x72,0x65,0x74,
+0xa3,0x5a,2,0x61,0x3a,0x6e,0x82,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,
+0xa5,0x2f,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,
+0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x14,0x67,0x62,0x61,0x74,0x73,0x91,1,
+0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,
+0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,
+0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,
+0x33,2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,
+0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,
+0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,
+0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,
+0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,
+0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,
+0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,
+0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,
+0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,
+0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,
+0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,
+0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,
+0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,
+0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,
+0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,
+0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,
+0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,
+0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,
+0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,
+0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,
+0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,
+0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,
+0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,
+0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,
+0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,
+0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,
+0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,
+0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,
+0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,
+0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,
+0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,
+0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,
+0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,
+0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,
+0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,
+0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,
+0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,
+0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,
+0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,
+0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,
+0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,
+0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,
+0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,
+0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,
+0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,
+0x65,0x72,0x33,0,0x13,0x6e,0xc1,0xf,0x74,0x76,0x74,0x4c,0x76,0x9a,0x77,0xa2,
+0x48,0x79,0xa2,0x49,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,
+0x6e,0x85,2,0x61,0x36,0x65,0x3c,0x68,0x14,0x69,0x6e,0x79,0x65,0x68,0xa3,0x66,
+1,0x68,0x71,0x77,0x73,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,
+0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,0x1a,0x65,0x72,0x74,0x69,
+0x63,0x61,0x6c,0x74,0x61,0x69,0x6c,0xa3,0x67,0x11,0x61,0x77,0x79,1,0x65,0x32,
+0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,
+0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,
+0x6e,0xa2,0x4c,0x70,0xa2,0x69,0x71,0xa2,0x69,0x72,0xa2,0x6f,0x73,5,0x74,0x22,
+0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,
+0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,
+0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,
+0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,2,
+0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,
+0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,
+0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,1,0x65,0x38,0x6f,0x18,
+0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,
+0x72,0x73,0x65,0x64,0x70,0x65,0x61,0x67,0xc1,0xd4,0x67,0xa4,0x52,0x68,0xa4,0x59,
+0x6b,0xa4,0x99,0x6c,0xa4,0xbf,0x6d,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,
+0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,
+0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,
+0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,
+0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,
+0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,
+0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,
+0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,
+0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,
+0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,
+0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,
+0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,
+0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,
+0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,
+0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,
+0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,
+0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,
+0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,
+1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,
+0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,
+0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,0x10,
+0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,
+0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,
+0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,
+0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,
+0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,
+0x5e,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,2,0x66,0x47,0x70,
+0x38,0x73,0x17,0x68,0x6d,0x69,0x72,0x69,0x79,0x65,0x68,0xa3,0x68,0x10,0x68,0x49,
+0x12,0x61,0x70,0x68,0x89,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,0x61,0x6e,
+0x62,0xa2,0x54,0x64,0xa2,0x70,0x65,0x31,0x66,2,0x61,0x3e,0x65,0x4a,0x69,0x19,
+0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,
+0x65,0x68,0x8f,0x86,0x10,0x68,0x33,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,
+0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,
+0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,
+0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,
+0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,
+0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,
+0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,
+0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,
+0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,
+0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,
+0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,
+0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,
+0x23,0,0x14,0x6e,0xc0,0xe5,0x73,0x5e,0x77,0x23,0x77,0x40,0x78,0x58,0x7a,0x10,
+0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,1,0x6a,0x5d,0x6f,
+0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x73,0x4a,0x75,
+0x7a,0x76,1,0x66,0x7d,0x69,0x7e,0x13,0x72,0x61,0x6d,0x61,0x7e,0x14,0x66,0x69,
+0x6e,0x61,0x6c,0x7d,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,
+0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,
+0x6b,0x6e,0x6f,0x77,0x6e,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,
+0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,
+0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,
+0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,
+0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,
+0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,
+0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,
+0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,
+0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,
+0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,
+0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,
+0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,
+0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,
+0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,
+0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,
+0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,
+0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x42,0x62,0xa2,0x49,0x63,0xa2,0x76,
+0x65,0xa2,0xfc,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,5,0x6d,0xf,0x6d,0x28,
+0x70,0x79,0x73,0x7b,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x69,0x23,0x6b,
+0x38,0x6c,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,0x76,0x13,0x73,
+0x61,0x72,0x61,0x76,1,0x70,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x7b,0x15,0x72,
+0x65,0x62,0x61,0x73,0x65,0x79,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,
+0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,
+0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,
+0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,
+0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,
+0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,
+0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,
+0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,
+0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,
+0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,
+0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,
+0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,
+0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,
+0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,
+0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0xad,0x74,0xc1,0xb7,0x77,
+0x96,0x77,0xa2,0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,0x73,0x34,
+0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,
+0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,
+0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,
+0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,
+2,0x61,0x30,0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,0x72,0x10,
+0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,0x68,0x6f,
+0xa3,0xbc,0x11,0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,
+0x11,0x65,0x6f,0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,0x7a,0x69,
+0xa2,0xc0,0x11,0x64,0x69,0xa3,0xc0,0x74,0x66,0x75,0xa4,4,0x76,1,0x61,0x48,
+0x69,1,0x73,0x38,0x74,0x10,0x68,0xa2,0xc5,0x13,0x6b,0x75,0x71,0x69,0xa3,0xc5,
+0x10,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,8,0x68,0x64,0x68,
+0x5a,0x69,0x6e,0x6e,0xa2,0x45,0x6f,0xa2,0x47,0x75,1,0x6c,0x2a,0x74,0x10,0x67,
+0xa3,0xcf,0x18,0x75,0x74,0x69,0x67,0x61,0x6c,0x61,0x72,0x69,0xa3,0xcf,0x10,0x61,
+1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,2,0x62,0x3a,0x66,0x4a,0x72,
+0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,
+0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x73,0x61,0xa3,0xc3,
+1,0x64,0x2a,0x74,0x10,0x6f,0xa3,0xc4,1,0x68,0x26,0x72,0xa3,0xce,0x11,0x72,
+0x69,0xa3,0xce,0x61,0x36,0x65,0xa2,0x65,0x66,0xa2,0x71,0x67,0x11,0x6c,0x67,0x75,
+6,0x6c,0x28,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,
+0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,1,
+0x73,0x2a,0x75,0x10,0x74,0xa3,0x9a,0x10,0x61,0xa3,0xc3,0x67,0x36,0x69,0x52,0x6b,
+0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,
+0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,
+0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,
+0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,0x11,0x6e,0x67,0x99,
+1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,
+0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x1e,0x71,0xa2,0xe9,0x72,0xa2,0xee,0x73,
+6,0x69,0x95,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,
+4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,
+0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,
+0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,
+0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,
+0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,
+0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,
+0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,
+0x10,0x6e,1,0x64,0x32,0x75,0xa2,0xcd,0x12,0x77,0x61,0x72,0xa3,0xcd,0xa2,0x71,
+0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,
+0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,
+0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,
+0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,
+0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,
+0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,
+0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,
+0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10,
+0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa4,1,0x70,5,0x6c,
+0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,
+0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,
+0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,
+0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,
+0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,
+0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,
+0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,
+0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,6,0x6b,0x36,
+0x6b,0x56,0x73,0x6e,0x75,0x74,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,
+0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xba,1,0x67,0x2e,
+0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,
+0x12,0x73,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x9e,0x65,0x10,0x77,1,0x61,0xa3,
+0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,3,0x62,0x32,0x67,0x40,0x6e,0x56,
+0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x10,0x6d,
+0xa2,0xc7,0x15,0x75,0x6e,0x64,0x61,0x72,0x69,0xa3,0xc7,0x10,0x64,0xa2,0xbb,0x16,
+0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,5,0x72,
+0x32,0x72,0x30,0x73,0x4e,0x75,0x11,0x67,0x72,0xa3,0xc2,2,0x69,0x2c,0x6b,0x30,
+0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,2,0x61,0x36,0x67,
+0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,
+0x65,0xa3,0xab,0x67,0x30,0x6c,0x42,0x6e,0x11,0x61,0x6f,0xa3,0xcc,1,0x61,0x2a,
+0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,2,0x63,0x32,0x64,0x46,0x6f,0x12,0x6e,
+0x61,0x6c,0xa3,0xcc,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,
 6,0x70,0x41,0x70,0x3a,0x73,0x58,0x74,0x86,0x75,0x14,0x79,0x67,0x68,0x75,0x72,
 0xa3,0xc2,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,
 0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
@@ -839,248 +864,262 @@
 0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x14,0x75,0x72,0x6b,
 0x69,0x63,0xa3,0x58,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,
 0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,
-0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,
-0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,
-0x61,0x5f,0x10,0x68,0xa3,0x58,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,
-0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,0x68,0xc3,0x15,
-0x6b,0xc2,0x2c,0x6b,0xa4,0x17,0x6c,0xa4,0xba,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,
-0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,
-0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,
-0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,
-0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,
-0x69,0xa3,0xa4,0x61,0x36,0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55,
-6,0x6e,0x38,0x6e,0x32,0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64,
-0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12,
-0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18,
-0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c,
-0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,
-0x61,0x6e,0x69,0xa3,0xa0,0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3,
-0x64,0x78,0x65,0x94,0x6e,0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,
-0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,
-0x70,0x68,0x73,0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,
-0x26,0x66,0xa3,0xb5,0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,
-0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,
-0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,6,0x6e,0x1a,
-0x6e,0x34,0x6f,0x38,0x70,0x3e,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x64,0x61,0x4b,
-0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,0x32,0x68,0xa2,0x44,0x69,
-0x11,0x74,0x73,0xa3,0xbf,5,0x74,0x23,0x74,0x34,0x77,0x56,0x79,0x13,0x61,0x68,
-0x6c,0x69,0xa3,0x4f,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,
-0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,0x10,0x69,0xa3,0xc6,0x69,0x38,0x6c,0x40,0x6e,
-1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,
-0x69,0xa3,0x4f,4,0x61,0x40,0x69,0x52,0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,
-0x77,0x61,0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,
-0x93,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,
-0xa3,0xbf,1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,
-0x69,0xa3,0x9d,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,
-0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,
-0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,
-0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,
-0x11,0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,
-0x10,0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,
-0x65,0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,
-0x6e,0x69,0xa2,0x95,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,
-1,0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,
-0x6f,0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,
-0x48,0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,
-0xa3,0x4b,0x70,0xa3,0xba,0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,
-0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,
-0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,
-0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,
-0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,
-0x45,0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,
-0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,
-0x63,0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,
-0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,
-0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,
-0x69,0x74,0x65,0x64,0x23,0x64,0xc1,0xd,0x64,0xa2,0x7a,0x65,0xa2,0xc1,0x67,4,
-0x65,0x82,0x6c,0x9a,0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,
-0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,
-0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,
-0x69,0xa3,0xb3,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,
-0x39,0x11,0x61,0x67,0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,
-0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,
-0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,
-0x74,0x68,0x61,0xa3,0x89,4,0x65,0x46,0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,
-0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,
-0x61,0x34,0x15,0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,
-1,0x61,0x36,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,
-0xa3,0xbe,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,
-0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,
-0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,
-0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,
-0x79,0x10,0x6d,0xa2,0xb9,0x12,0x61,0x69,0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,
-0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xc9,0x62,0xa4,0x2e,0x63,6,0x6f,0x52,0x6f,
-0x76,0x70,0x92,0x75,0xa2,0x41,0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,
-0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x10,0x72,1,0x69,0x34,0x6f,0x15,
-0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa3,0xc1,0x11,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,
-0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,1,0x6d,0x28,0x72,
-0x10,0x74,0x7f,0x10,0x6e,0xa3,0xc1,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,
-0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,
-0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,
-0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,
-0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,
-0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,3,0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,
-0x73,0xa3,0xbd,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,
-0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,
-0xbd,6,0x68,0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,
-0x74,0xa3,0x75,0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,
-0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,
-0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,
-0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,
-0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,
-0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,
-0x72,0x66,0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,
-0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,
-0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,
-0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,
-0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,
-0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,
-0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,
-0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,
-0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,
-0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,
-0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,
-0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,
-1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,
-0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,
-0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,
-0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,
-0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,
-0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,
-0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,
-0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,
-0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,
-0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,
-0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,
-0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,
-0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,
-0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,
-0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,
-0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,
-0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,
-0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,
-0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,
-0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,
-0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,
-0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,
-0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,
-0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,
-0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,
-0x72,0x6d,0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,
-0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,
-0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,
-0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,
-0x65,0x67,0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,
-0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,
-0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,
-0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,
-0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,
-0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,
-0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,
-0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,
-0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,
-0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,
-0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,
-0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,
-0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,
-0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,
-0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a,
-0x72,0x5c,0x74,0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,
-0x6c,0x65,0x66,0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,
-0x13,0x69,0x67,0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,
-0x32,0x6c,0x62,0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,
-0x32,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12,
-0x65,0x66,0x74,0x3f,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,
-0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f,
-0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27,
-0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69,
-0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72,0x70,0x72,0x92,0x73,0xa2,0x46,0x74,0xa2,
-0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19,
-0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e,
-0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12,
-0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,0x68,0x69,0x66,
-0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64,0x69,
-0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,0x6d,0x12,0x61,0x72,
-0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18,0x75,
-0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,0x75,1,0x6b,0x3c,
-0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x53,0x11,0x74,
-0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,0x74,0x68,0x65,0x72,
-0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66,0x79,
-0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e,0x61,
-0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,0x69,0x73,0x69,0x62,
-0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,0x69,0x6e,0x65,0x72,
-0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,0x6f,0x16,0x6e,0x73,
-0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c,0x73,
-0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x43,0x14,
-0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,0x37,1,0x6c,0x52,
-0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,0x3d,0x19,0x65,0x64,
-0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,0x65,0x68,0x6f,0x6c,
-0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,0x65,0x65,0x64,0x69,
-0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64,0x3f,
-0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,0x61,0x6c,0x70,0x6f,
-0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,0x2d,0x13,0x69,0x6e,
-0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,0x1d,0x6e,
-0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16,0x76,
-0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,0x61,0x1f,0x68,0x6d,
-0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,0x65,0x72,0x27,0x12,
-0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,0x70,0x72,0x69,0x67,
-0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,1,0x72,0x24,0x75,
-0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,1,0x72,0x32,0x75,
-0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x23,
-0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,
-0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,
-0,0,0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,
-0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,
-0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,
-0,0,0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,0,0,
-0x6d,0xff,1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,
-0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,
-0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,
-0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,
-0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,
-0,0,0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,
-0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,
-0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,
-0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,
-0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,
-0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,
-0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,
-0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,
-0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,
-0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,
-0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,
-0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,
-0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,
-0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,
-0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,
-0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,
-0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,
-0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,
-0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,
-7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,
-0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,
-0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,
-0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,
-0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,
-0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,
-0x6f,0x6c,0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,
-0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,
-0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,
-0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,
-0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,
-0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,
-0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,
-0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,
-0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0xa7,0
+0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,0x68,0xc3,0x28,0x6b,0xc2,0x3f,0x6b,
+0xa4,0x17,0x6c,0xa4,0xcd,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,
+0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,
+0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,
+0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,
+0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,
+0x36,0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55,6,0x6e,0x38,0x6e,
+0x32,0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64,0x38,0x69,0xa2,0x79,
+0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,
+0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,
+0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c,0x15,0x61,0x79,0x61,
+0x6c,0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,
+0xa0,0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3,0x64,0x78,0x65,0x94,
+0x6e,0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,
+1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,
+0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5,
+0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61,
+0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,
+0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,7,0x6f,0x1b,0x6f,0x34,0x70,0x3a,
+0x72,0x40,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,
+0xa3,0x8a,0x11,0x61,0x69,0xa3,0xcb,0x61,0x36,0x68,0xa2,0x46,0x69,0xa2,0x83,0x6e,
+0x11,0x64,0x61,0x4b,5,0x74,0x23,0x74,0x34,0x77,0x56,0x79,0x13,0x61,0x68,0x6c,
+0x69,0xa3,0x4f,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,
+0x61,0x67,0x61,0x6e,0x61,0x8d,0x10,0x69,0xa3,0xc6,0x69,0x38,0x6c,0x40,0x6e,1,
+0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,0x69,
+0xa3,0x4f,4,0x61,0x40,0x69,0x52,0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,0x77,
+0x61,0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,
+0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,
+0xbf,1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,
+0xa3,0x9d,1,0x72,0x2a,0x74,0x10,0x73,0xa3,0xbf,0x14,0x61,0x74,0x72,0x61,0x69,
+0xa3,0xcb,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,
+0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,
+0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,
+0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,
+0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,
+0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,
+0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,
+0x69,0xa2,0x95,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,
+0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,
+0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,0x48,
+0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,0xa3,
+0x4b,0x70,0xa3,0xba,0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,
+0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,
+0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,
+0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,
+0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,
+0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,
+0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,
+0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,
+0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,
+0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,
+0x74,0x65,0x64,0x23,0x64,0xc1,0x28,0x64,0xa2,0x95,0x65,0xa2,0xdc,0x67,5,0x6f,
+0x66,0x6f,0x98,0x72,0xa2,0x4b,0x75,3,0x6a,0x54,0x6b,0x66,0x6e,0x6a,0x72,1,
+0x6d,0x38,0x75,0x40,0x16,0x6e,0x67,0x6b,0x68,0x65,0x6d,0x61,0xa3,0xca,0x13,0x75,
+0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x10,
+0x68,0xa3,0xca,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,1,
+0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,
+0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,
+0x89,0x12,0x74,0x68,0x61,0xa3,0x89,0x61,0x3e,0x65,0x4c,0x6c,0x11,0x61,0x67,0x90,
+0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,0x11,0x72,0x61,0xa2,0xc9,0x10,0x79,0xa3,
+0xc9,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,4,
+0x65,0x46,0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,
+0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,
+0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,1,0x61,0x36,0x76,0x16,0x65,
+0x73,0x61,0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,0xa3,0xbe,0x11,0x67,0x72,0xa2,
+0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,
+0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,
+0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,
+0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,0x79,0x10,0x6d,0xa2,0xb9,0x12,
+0x61,0x69,0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,
+0xa2,0xc9,0x62,0xa4,0x32,0x63,6,0x6f,0x52,0x6f,0x76,0x70,0x92,0x75,0xa2,0x41,
+0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,
+0x69,0x63,0x31,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,
+0xa3,0xc1,0x11,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,
+0x2f,0x12,0x6d,0x6f,0x6e,0x21,1,0x6d,0x28,0x72,0x10,0x74,0x7f,0x10,0x6e,0xa3,
+0xc1,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,
+0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,
+0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,
+0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,
+0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,
+0x68,3,0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,0x73,0xa3,0xbd,1,0x6b,0x26,
+0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,
+0x2d,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,0xbd,6,0x68,0x4e,0x68,0x48,
+0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,
+0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,
+0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,
+0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,
+0x27,1,0x62,0x26,0x6e,0xa3,0xc8,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,
+0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,
+0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,
+0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,
+0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,
+0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,
+0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,
+0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,
+0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,
+0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,
+0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,
+0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,
+0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,
+0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,
+0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,
+0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,
+0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,
+0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,
+0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,
+0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,
+0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,
+0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,
+0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,
+0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,
+1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,
+0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,
+0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,
+0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,
+0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,
+0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,
+0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,
+0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,
+0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,
+0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,
+0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,
+0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,
+0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,
+0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,
+0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,
+0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,
+0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,
+0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,
+0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,
+0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,
+0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,
+0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,
+0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,
+0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,
+0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,
+0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,
+0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,
+0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,
+0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,
+0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,
+0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,
+0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,
+0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,
+1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,
+2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,
+0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a,0x72,0x5c,
+0x74,0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,
+0x66,0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,
+0x67,0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,
+0x62,0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x12,
+0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,
+0x74,0x3f,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74,
+0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x22,
+0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27,0x12,0x65,
+0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,
+0x74,0x2b,0xd,0x6e,0xbd,0x72,0x83,0x72,0x92,0x73,0xa2,0x59,0x74,0xa2,0x67,0x76,
+1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19,0x6e,0x64,
+0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e,0x64,0x65,
+0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12,0x61,0x6d,
+0x61,0x5f,0x10,0x65,1,0x67,0x40,0x6f,0x1c,0x72,0x64,0x65,0x72,0x69,0x6e,0x67,
+0x6b,0x69,0x6c,0x6c,0x65,0x72,0x69,0x1b,0x69,0x73,0x74,0x65,0x72,0x73,0x68,0x69,
+0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64,
+0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,0x6d,0x12,0x61,
+0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18,
+0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,0x75,1,0x6b,
+0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x53,0x11,
+0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,0x74,0x68,0x65,
+0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66,
+0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e,
+0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,0x69,0x73,0x69,
+0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,0x69,0x6e,0x65,
+0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,0x6f,0x16,0x6e,
+0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c,
+0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x43,
+0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,0x37,1,0x6c,
+0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,0x3d,0x19,0x65,
+0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,0x65,0x68,0x6f,
+0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,0x65,0x65,0x64,
+0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64,
+0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,0x61,0x6c,0x70,
+0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,0x2d,0x13,0x69,
+0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,0x1d,
+0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16,
+0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,0x61,0x1f,0x68,
+0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,0x65,0x72,0x27,
+0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,0x70,0x72,0x69,
+0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,1,0x72,0x24,
+0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,1,0x72,0x32,
+0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,
+0x23,1,0x61,0x38,0x72,0x18,0x65,0x73,0x74,0x72,0x69,0x63,0x74,0x65,0x64,0x21,
+0x15,0x6c,0x6c,0x6f,0x77,0x65,0x64,0x23,3,0x63,0x34,0x65,0x44,0x6c,0x4e,0x6e,
+0x12,0x6f,0x6e,0x65,0x21,0x17,0x6f,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x23,0x14,
+0x78,0x74,0x65,0x6e,0x64,0x25,0x14,0x69,0x6e,0x6b,0x65,0x72,0x27,0xd,0x6e,0xc1,
+0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,
+0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,
+7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,
+0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,
+0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,
+0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,
+0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,
+0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,
+0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,
+0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,
+0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,
+0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,
+0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,
+0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,
+0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,
+0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,
+0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,
+0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,
+0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,
+0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,
+0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,
+0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,
+0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
+0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,
+0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,
+0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,
+0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,
+0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,
+0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,
+0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,
+0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,
+0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,
+0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,
+0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,
+0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,
+0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,
+0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,
+0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,
+0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,
+2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,
+0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,
+0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,
+0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,
+0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,
+0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,
+0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,
+0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,
+0x65,0x72,0xa7,0,8,0x6e,0x50,0x6e,0x46,0x6f,0x7a,0x72,0x88,0x74,0x9c,0x75,
+0x19,0x6e,0x63,0x6f,0x6d,0x6d,0x6f,0x6e,0x75,0x73,0x65,0x31,0x11,0x6f,0x74,2,
+0x63,0x2e,0x6e,0x3e,0x78,0x11,0x69,0x64,0x29,0x17,0x68,0x61,0x72,0x61,0x63,0x74,
+0x65,0x72,0x21,0x12,0x66,0x6b,0x63,0x27,0x16,0x62,0x73,0x6f,0x6c,0x65,0x74,0x65,
+0x2d,0x19,0x65,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x64,0x65,0x64,0x37,0x17,0x65,0x63,
+0x68,0x6e,0x69,0x63,0x61,0x6c,0x2f,0x64,0x40,0x65,0x78,0x69,0x88,0x6c,0x18,0x69,
+0x6d,0x69,0x74,0x65,0x64,0x75,0x73,0x65,0x33,0x10,0x65,1,0x66,0x34,0x70,0x16,
+0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x23,0x1c,0x61,0x75,0x6c,0x74,0x69,0x67,0x6e,
+0x6f,0x72,0x61,0x62,0x6c,0x65,0x25,0x17,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,
+0x2b,0x17,0x6e,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x35
 };
 
-const char PropNameData::nameGroups[23338]={
+const char PropNameData::nameGroups[24294]={
 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0,
 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0,
 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0,
@@ -1188,6 +1227,7 @@
 2,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','S','t','a','r','t',0,'I','D','_','C','o','m','p','a','t','_',
 'M','a','t','h','_','S','t','a','r','t',0,2,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','C','o','n','t','i',
 'n','u','e',0,'I','D','_','C','o','m','p','a','t','_','M','a','t','h','_','C','o','n','t','i','n','u','e',0,
+2,'M','C','M',0,'M','o','d','i','f','i','e','r','_','C','o','m','b','i','n','i','n','g','_','M','a','r','k',0,
 2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0,2,'L',0,'L','e','f','t','_','T','o','_','R','i','g','h','t',0,
 2,'R',0,'R','i','g','h','t','_','T','o','_','L','e','f','t',0,
 2,'E','N',0,'E','u','r','o','p','e','a','n','_','N','u','m','b','e','r',0,
@@ -1582,6 +1622,18 @@
 2,'K','a','w','i',0,'K','a','w','i',0,2,'N','a','g','_','M','u','n','d','a','r','i',0,
 'N','a','g','_','M','u','n','d','a','r','i',0,2,'C','J','K','_','E','x','t','_','I',0,'C','J','K','_','U','n','i','f','i',
 'e','d','_','I','d','e','o','g','r','a','p','h','s','_','E','x','t','e','n','s','i','o','n','_','I',0,
+2,'E','g','y','p','t','i','a','n','_','H','i','e','r','o','g','l','y','p','h','s','_','E','x','t','_','A',0,
+'E','g','y','p','t','i','a','n','_','H','i','e','r','o','g','l','y','p','h','s','_','E','x','t','e','n','d','e','d','_','A',0,
+2,'G','a','r','a','y',0,'G','a','r','a','y',0,2,'G','u','r','u','n','g','_','K','h','e','m','a',0,
+'G','u','r','u','n','g','_','K','h','e','m','a',0,2,'K','i','r','a','t','_','R','a','i',0,
+'K','i','r','a','t','_','R','a','i',0,2,'M','y','a','n','m','a','r','_','E','x','t','_','C',0,
+'M','y','a','n','m','a','r','_','E','x','t','e','n','d','e','d','_','C',0,
+2,'O','l','_','O','n','a','l',0,'O','l','_','O','n','a','l',0,
+2,'S','u','n','u','w','a','r',0,'S','u','n','u','w','a','r',0,
+2,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g','_','S','u',
+'p',0,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g','_','S',
+'u','p','p','l','e','m','e','n','t',0,2,'T','o','d','h','r','i',0,'T','o','d','h','r','i',0,
+2,'T','u','l','u','_','T','i','g','a','l','a','r','i',0,'T','u','l','u','_','T','i','g','a','l','a','r','i',0,
 2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i','n','g','_','C','l','a','s','s',0,
 2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0,
 3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0,
@@ -1640,8 +1692,9 @@
 2,'E',0,'E',0,2,'F','e','h',0,'F','e','h',0,2,'F','i','n','a','l','_','S','e','m','k','a','t','h',0,
 'F','i','n','a','l','_','S','e','m','k','a','t','h',0,2,'G','a','f',0,'G','a','f',0,
 2,'G','a','m','a','l',0,'G','a','m','a','l',0,2,'H','a','h',0,'H','a','h',0,
-2,'T','e','h','_','M','a','r','b','u','t','a','_','G','o','a','l',0,'H','a','m','z','a','_','O','n','_','H','e','h','_','G',
-'o','a','l',0,2,'H','e',0,'H','e',0,2,'H','e','h',0,'H','e','h',0,
+3,'T','e','h','_','M','a','r','b','u','t','a','_','G','o','a','l',0,'T','e','h','_','M','a','r','b','u','t','a','_','G','o',
+'a','l',0,'H','a','m','z','a','_','O','n','_','H','e','h','_','G','o','a','l',0,
+2,'H','e',0,'H','e',0,2,'H','e','h',0,'H','e','h',0,
 2,'H','e','h','_','G','o','a','l',0,'H','e','h','_','G','o','a','l',0,
 2,'H','e','t','h',0,'H','e','t','h',0,2,'K','a','f',0,'K','a','f',0,
 2,'K','a','p','h',0,'K','a','p','h',0,2,'K','n','o','t','t','e','d','_','H','e','h',0,
@@ -1719,6 +1772,7 @@
 2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','P','a',0,'H','a','n','i','f','i','_','R','o','h','i','n',
 'g','y','a','_','P','a',0,2,'T','h','i','n','_','Y','e','h',0,'T','h','i','n','_','Y','e','h',0,
 2,'V','e','r','t','i','c','a','l','_','T','a','i','l',0,'V','e','r','t','i','c','a','l','_','T','a','i','l',0,
+2,'K','a','s','h','m','i','r','i','_','Y','e','h',0,'K','a','s','h','m','i','r','i','_','Y','e','h',0,
 2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0,
 2,'U',0,'N','o','n','_','J','o','i','n','i','n','g',0,2,'C',0,'J','o','i','n','_','C','a','u','s','i','n','g',0,
 2,'D',0,'D','u','a','l','_','J','o','i','n','i','n','g',0,
@@ -1878,7 +1932,12 @@
 2,'O','u','g','r',0,'O','l','d','_','U','y','g','h','u','r',0,
 2,'T','n','s','a',0,'T','a','n','g','s','a',0,2,'V','i','t','h',0,'V','i','t','h','k','u','q','i',0,
 2,'N','a','g','m',0,'N','a','g','_','M','u','n','d','a','r','i',0,
-2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0,
+2,'A','r','a','n',0,'A','r','a','n',0,2,'G','a','r','a',0,'G','a','r','a','y',0,
+2,'G','u','k','h',0,'G','u','r','u','n','g','_','K','h','e','m','a',0,
+2,'K','r','a','i',0,'K','i','r','a','t','_','R','a','i',0,
+2,'O','n','a','o',0,'O','l','_','O','n','a','l',0,2,'S','u','n','u',0,'S','u','n','u','w','a','r',0,
+2,'T','o','d','r',0,'T','o','d','h','r','i',0,2,'T','u','t','g',0,'T','u','l','u','_','T','i','g','a','l','a','r','i',
+0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0,
 2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0,
 2,'L',0,'L','e','a','d','i','n','g','_','J','a','m','o',0,
 2,'V',0,'V','o','w','e','l','_','J','a','m','o',0,2,'T',0,'T','r','a','i','l','i','n','g','_','J','a','m','o',0,
@@ -1972,12 +2031,18 @@
 'V','i','s','a','r','g','a',0,2,'V','o','w','e','l',0,'V','o','w','e','l',0,
 2,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',
 0,2,'V','o','w','e','l','_','I','n','d','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','I','n','d','e','p','e',
-'n','d','e','n','t',0,2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0,
+'n','d','e','n','t',0,2,'R','e','o','r','d','e','r','i','n','g','_','K','i','l','l','e','r',0,
+'R','e','o','r','d','e','r','i','n','g','_','K','i','l','l','e','r',0,
+2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0,
 2,'R',0,'R','o','t','a','t','e','d',0,2,'T','r',0,'T','r','a','n','s','f','o','r','m','e','d','_','R','o','t','a','t',
 'e','d',0,2,'T','u',0,'T','r','a','n','s','f','o','r','m','e','d','_','U','p','r','i','g','h','t',0,
-2,'U',0,'U','p','r','i','g','h','t',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y',
-'_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
-2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0,
+2,'U',0,'U','p','r','i','g','h','t',0,2,'I','D','_','S','t','a','t','u','s',0,'I','d','e','n','t','i','f','i','e','r',
+'_','S','t','a','t','u','s',0,2,'R','e','s','t','r','i','c','t','e','d',0,'R','e','s','t','r','i','c','t','e','d',0,
+2,'A','l','l','o','w','e','d',0,'A','l','l','o','w','e','d',0,
+2,'I','n','C','B',0,'I','n','d','i','c','_','C','o','n','j','u','n','c','t','_','B','r','e','a','k',0,
+2,'L','i','n','k','e','r',0,'L','i','n','k','e','r',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e',
+'g','o','r','y','_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0,
+2,'L',0,'L','e','t','t','e','r',0,2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0,
 3,'M',0,'M','a','r','k',0,'C','o','m','b','i','n','i','n','g','_','M','a','r','k',0,
 2,'N',0,'N','u','m','b','e','r',0,3,'P',0,'P','u','n','c','t','u','a','t','i','o','n',0,
 'p','u','n','c','t',0,2,'S',0,'S','y','m','b','o','l',0,
@@ -1994,7 +2059,20 @@
 2,'n','a','1',0,'U','n','i','c','o','d','e','_','1','_','N','a','m','e',0,
 2,'u','c',0,'U','p','p','e','r','c','a','s','e','_','M','a','p','p','i','n','g',0,
 2,'b','p','b',0,'B','i','d','i','_','P','a','i','r','e','d','_','B','r','a','c','k','e','t',0,
-2,'s','c','x',0,'S','c','r','i','p','t','_','E','x','t','e','n','s','i','o','n','s',0
+2,'s','c','x',0,'S','c','r','i','p','t','_','E','x','t','e','n','s','i','o','n','s',0,
+2,'I','D','_','T','y','p','e',0,'I','d','e','n','t','i','f','i','e','r','_','T','y','p','e',0,
+2,'N','o','t','_','C','h','a','r','a','c','t','e','r',0,'N','o','t','_','C','h','a','r','a','c','t','e','r',0,
+2,'D','e','p','r','e','c','a','t','e','d',0,'D','e','p','r','e','c','a','t','e','d',0,
+2,'D','e','f','a','u','l','t','_','I','g','n','o','r','a','b','l','e',0,'D','e','f','a','u','l','t','_','I','g','n','o','r',
+'a','b','l','e',0,2,'N','o','t','_','N','F','K','C',0,'N','o','t','_','N','F','K','C',0,
+2,'N','o','t','_','X','I','D',0,'N','o','t','_','X','I','D',0,
+2,'E','x','c','l','u','s','i','o','n',0,'E','x','c','l','u','s','i','o','n',0,
+2,'O','b','s','o','l','e','t','e',0,'O','b','s','o','l','e','t','e',0,
+2,'T','e','c','h','n','i','c','a','l',0,'T','e','c','h','n','i','c','a','l',0,
+2,'U','n','c','o','m','m','o','n','_','U','s','e',0,'U','n','c','o','m','m','o','n','_','U','s','e',0,
+2,'L','i','m','i','t','e','d','_','U','s','e',0,'L','i','m','i','t','e','d','_','U','s','e',0,
+2,'I','n','c','l','u','s','i','o','n',0,'I','n','c','l','u','s','i','o','n',0,
+2,'R','e','c','o','m','m','e','n','d','e','d',0,'R','e','c','o','m','m','e','n','d','e','d',0
 };
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/propsvec.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/propsvec.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/propsvec.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -102,29 +102,29 @@
 
     /* check the vicinity of the last-seen row (start searching with an unrolled loop) */
     row=pv->v+prevRow*columns;
-    if(rangeStart>=(UChar32)row[0]) {
-        if(rangeStart<(UChar32)row[1]) {
+    if (rangeStart >= static_cast<UChar32>(row[0])) {
+        if (rangeStart < static_cast<UChar32>(row[1])) {
             /* same row as last seen */
             return row;
-        } else if(rangeStart<(UChar32)(row+=columns)[1]) {
+        } else if (rangeStart < static_cast<UChar32>((row += columns)[1])) {
             /* next row after the last one */
             pv->prevRow=prevRow+1;
             return row;
-        } else if(rangeStart<(UChar32)(row+=columns)[1]) {
+        } else if (rangeStart < static_cast<UChar32>((row += columns)[1])) {
             /* second row after the last one */
             pv->prevRow=prevRow+2;
             return row;
-        } else if((rangeStart-(UChar32)row[1])<10) {
+        } else if ((rangeStart - static_cast<UChar32>(row[1])) < 10) {
             /* we are close, continue looping */
             prevRow+=2;
             do {
                 ++prevRow;
                 row+=columns;
-            } while(rangeStart>=(UChar32)row[1]);
+            } while (rangeStart >= static_cast<UChar32>(row[1]));
             pv->prevRow=prevRow;
             return row;
         }
-    } else if(rangeStart<(UChar32)pv->v[1]) {
+    } else if (rangeStart < static_cast<UChar32>(pv->v[1])) {
         /* the very first row */
         pv->prevRow=0;
         return pv->v;
@@ -135,9 +135,9 @@
     while(start<limit-1) {
         i=(start+limit)/2;
         row=pv->v+i*columns;
-        if(rangeStart<(UChar32)row[0]) {
+        if (rangeStart < static_cast<UChar32>(row[0])) {
             limit=i;
-        } else if(rangeStart<(UChar32)row[1]) {
+        } else if (rangeStart < static_cast<UChar32>(row[1])) {
             pv->prevRow=i;
             return row;
         } else {
@@ -194,8 +194,8 @@
      * input range (only possible for the first and last rows)
      * and if their value differs from the input value.
      */
-    splitFirstRow= (UBool)(start!=(UChar32)firstRow[0] && value!=(firstRow[column]&mask));
-    splitLastRow= (UBool)(limit!=(UChar32)lastRow[1] && value!=(lastRow[column]&mask));
+    splitFirstRow = start != static_cast<UChar32>(firstRow[0]) && value != (firstRow[column] & mask);
+    splitLastRow = limit != static_cast<UChar32>(lastRow[1]) && value != (lastRow[column] & mask);
 
     /* split first/last rows if necessary */
     if(splitFirstRow || splitLastRow) {
@@ -312,8 +312,8 @@
 
 static int32_t U_CALLCONV
 upvec_compareRows(const void *context, const void *l, const void *r) {
-    const uint32_t *left=(const uint32_t *)l, *right=(const uint32_t *)r;
-    const UPropsVectors *pv=(const UPropsVectors *)context;
+    const uint32_t* left = static_cast<const uint32_t*>(l), *right = static_cast<const uint32_t*>(r);
+    const UPropsVectors* pv = static_cast<const UPropsVectors*>(context);
     int32_t i, count, columns;
 
     count=columns=pv->columns; /* includes start/limit columns */

Modified: trunk/Build/source/libs/icu/icu-src/source/common/punycode.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/punycode.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/punycode.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -97,12 +97,12 @@
     /* 26..35 map to ASCII 0..9         */
     if(digit<26) {
         if(uppercase) {
-            return (char)(_CAPITAL_A+digit);
+            return static_cast<char>(_CAPITAL_A + digit);
         } else {
-            return (char)(_SMALL_A+digit);
+            return static_cast<char>(_SMALL_A + digit);
         }
     } else {
-        return (char)((_ZERO_-26)+digit);
+        return static_cast<char>((_ZERO_ - 26) + digit);
     }
 }
 
@@ -353,10 +353,10 @@
                 }
 
                 if(destLength<destCapacity) {
-                    dest[destLength]=digitToBasic(q, (UBool)(cpBuffer[j]<0));
+                    dest[destLength] = digitToBasic(q, cpBuffer[j] < 0);
                 }
                 ++destLength;
-                bias=adaptBias(delta, handledCPCount+1, (UBool)(handledCPCount==basicLength));
+                bias = adaptBias(delta, handledCPCount + 1, handledCPCount == basicLength);
                 delta=0;
                 ++handledCPCount;
             }
@@ -421,7 +421,7 @@
         }
 
         if(j<destCapacity) {
-            dest[j]=(char16_t)b;
+            dest[j] = b;
 
             if(caseFlags!=nullptr) {
                 caseFlags[j]=IS_BASIC_UPPERCASE(b);
@@ -500,7 +500,7 @@
          * where needed instead of in for() loop tail.
          */
         ++destCPCount;
-        bias=adaptBias(i-oldi, destCPCount, (UBool)(oldi==0));
+        bias = adaptBias(i - oldi, destCPCount, oldi == 0);
 
         /*
          * i was supposed to wrap around from (incremented) destCPCount to 0,

Modified: trunk/Build/source/libs/icu/icu-src/source/common/putil.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/putil.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/putil.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -46,11 +46,6 @@
 // First, the platform type. Need this for U_PLATFORM.
 #include "unicode/platform.h"
 
-#if U_PLATFORM == U_PF_MINGW && defined __STRICT_ANSI__
-/* tzset isn't defined in strict ANSI on MinGW. */
-#undef __STRICT_ANSI__
-#endif
-
 /*
  * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
  */
@@ -180,8 +175,8 @@
     int64_t i64; /* This must be defined first in order to allow the initialization to work. This is a C89 feature. */
     double d64;
 } BitPatternConversion;
-static const BitPatternConversion gNan = { (int64_t) INT64_C(0x7FF8000000000000) };
-static const BitPatternConversion gInf = { (int64_t) INT64_C(0x7FF0000000000000) };
+static const BitPatternConversion gNan = {static_cast<int64_t>(INT64_C(0x7FF8000000000000))};
+static const BitPatternConversion gInf = {static_cast<int64_t>(INT64_C(0x7FF0000000000000))};
 
 /*---------------------------------------------------------------------------
   Platform utilities
@@ -230,7 +225,7 @@
 #if U_IS_BIG_ENDIAN
     hiByte = *(uint8_t *)&d;
 #else
-    hiByte = *(((uint8_t *)&d) + sizeof(double) - 1);
+    hiByte = *(reinterpret_cast<uint8_t*>(&d) + sizeof(double) - 1);
 #endif
     return (hiByte & 0x80) != 0;
 }
@@ -347,7 +342,7 @@
     BitPatternConversion convertedNumber;
     convertedNumber.d64 = number;
     /* Infinity is 0x7FF0000000000000U. Anything greater than that is a NaN */
-    return (UBool)((convertedNumber.i64 & U_INT64_MAX) > gInf.i64);
+    return (convertedNumber.i64 & U_INT64_MAX) > gInf.i64;
 
 #elif U_PLATFORM == U_PF_OS390
     uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
@@ -373,7 +368,7 @@
     BitPatternConversion convertedNumber;
     convertedNumber.d64 = number;
     /* Infinity is exactly 0x7FF0000000000000U. */
-    return (UBool)((convertedNumber.i64 & U_INT64_MAX) == gInf.i64);
+    return (convertedNumber.i64 & U_INT64_MAX) == gInf.i64;
 #elif U_PLATFORM == U_PF_OS390
     uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
                         sizeof(uint32_t));
@@ -394,7 +389,7 @@
 uprv_isPositiveInfinity(double number)
 {
 #if IEEE_754 || U_PLATFORM == U_PF_OS390
-    return (UBool)(number > 0 && uprv_isInfinite(number));
+    return number > 0 && uprv_isInfinite(number);
 #else
     return uprv_isInfinite(number);
 #endif
@@ -404,7 +399,7 @@
 uprv_isNegativeInfinity(double number)
 {
 #if IEEE_754 || U_PLATFORM == U_PF_OS390
-    return (UBool)(number < 0 && uprv_isInfinite(number));
+    return number < 0 && uprv_isInfinite(number);
 
 #else
     uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
@@ -749,11 +744,11 @@
     The timezone is sometimes set to "CST-7CDT", "CST6CDT5,J129,J131/19:30",
     "GRNLNDST3GRNLNDDT" or similar, so we cannot use it.
     The rest of the time it could be an Olson ID. George */
-    return (UBool)(id[idx] == 0
+    return id[idx] == 0
         || uprv_strcmp(id, "PST8PDT") == 0
         || uprv_strcmp(id, "MST7MDT") == 0
         || uprv_strcmp(id, "CST6CDT") == 0
-        || uprv_strcmp(id, "EST5EDT") == 0);
+        || uprv_strcmp(id, "EST5EDT") == 0;
 }
 
 /* On some Unix-like OS, 'posix' subdirectory in
@@ -932,7 +927,7 @@
              */
             if (tzInfo->defaultTZBuffer == nullptr) {
                 rewind(tzInfo->defaultTZFilePtr);
-                tzInfo->defaultTZBuffer = (char*)uprv_malloc(sizeof(char) * tzInfo->defaultTZFileSize);
+                tzInfo->defaultTZBuffer = static_cast<char*>(uprv_malloc(sizeof(char) * tzInfo->defaultTZFileSize));
                 sizeFileRead = fread(tzInfo->defaultTZBuffer, 1, tzInfo->defaultTZFileSize, tzInfo->defaultTZFilePtr);
             }
             rewind(file);
@@ -1498,7 +1493,6 @@
     }
 
     u_setDataDirectory(path);
-    return;
 }
 
 U_CAPI const char * U_EXPORT2
@@ -1622,7 +1616,7 @@
         * of nullptr, will modify the libc behavior.
         */
         posixID = setlocale(category, nullptr);
-        if ((posixID == 0)
+        if ((posixID == nullptr)
             || (uprv_strcmp("C", posixID) == 0)
             || (uprv_strcmp("POSIX", posixID) == 0))
         {
@@ -1636,9 +1630,9 @@
                 posixID = getenv(category == LC_MESSAGES ? "LC_MESSAGES" : "LC_CTYPE");
                 if ((posixID == 0) || (posixID[0] == '\0')) {
 #else
-            if (posixID == 0) {
+            if (posixID == nullptr) {
                 posixID = getenv(category == LC_MESSAGES ? "LC_MESSAGES" : "LC_CTYPE");
-                if (posixID == 0) {
+                if (posixID == nullptr) {
 #endif
                     posixID = getenv("LANG");
                 }
@@ -1645,7 +1639,7 @@
             }
         }
     }
-    if ((posixID==0)
+    if ((posixID == nullptr)
         || (uprv_strcmp("C", posixID) == 0)
         || (uprv_strcmp("POSIX", posixID) == 0))
     {
@@ -1665,7 +1659,7 @@
 static const char *uprv_getPOSIXIDForDefaultLocale()
 {
     static const char* posixID = nullptr;
-    if (posixID == 0) {
+    if (posixID == nullptr) {
         posixID = uprv_getPOSIXIDForCategory(LC_MESSAGES);
     }
     return posixID;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/putilimp.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/putilimp.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/putilimp.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -90,6 +90,8 @@
 #   define U_NL_LANGINFO_CODESET -1
 #elif U_PLATFORM == U_PF_OS400
    /* not defined */
+#elif U_PLATFORM == U_PF_HAIKU
+   /* not defined */
 #else
 #   define U_NL_LANGINFO_CODESET CODESET
 #endif
@@ -103,6 +105,8 @@
 #endif
 #elif U_PLATFORM == U_PF_OS400
    /* not defined */
+#elif U_PLATFORM == U_PF_HAIKU
+   /* not defined */
 #else
 #   define U_TZSET tzset
 #endif
@@ -141,6 +145,8 @@
 #endif
 #elif U_PLATFORM == U_PF_OS400
    /* not defined */
+#elif U_PLATFORM == U_PF_HAIKU
+    /* not defined, (well it is but a loop back to icu) */
 #else
 #   define U_TZNAME tzname
 #endif
@@ -553,7 +559,7 @@
     if (maxInt < destInt) {
         // Less than 2GB to the end of the address space.
         // Pin to that to prevent address overflow.
-        maxInt = (uintptr_t)-1;
+        maxInt = static_cast<uintptr_t>(-1);
     }
 #  endif
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbi.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbi.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -110,7 +110,7 @@
         status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
     }
-    const RBBIDataHeader *data = (const RBBIDataHeader *)compiledRules;
+    const RBBIDataHeader* data = reinterpret_cast<const RBBIDataHeader*>(compiledRules);
     if (data->fLength > ruleLength) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
         return;
@@ -553,7 +553,7 @@
  * @return The text's past-the-end offset.
  */
 int32_t RuleBasedBreakIterator::last() {
-    int32_t endPos = (int32_t)utext_nativeLength(&fText);
+    int32_t endPos = static_cast<int32_t>(utext_nativeLength(&fText));
     UBool endShouldBeBoundary = isBoundary(endPos);      // Has side effect of setting iterator position.
     (void)endShouldBeBoundary;
     U_ASSERT(endShouldBeBoundary);
@@ -625,7 +625,7 @@
     // Move requested offset to a code point start. It might be on a trail surrogate,
     // or on a trail byte if the input is UTF-8. Or it may be beyond the end of the text.
     utext_setNativeIndex(&fText, startPos);
-    startPos = (int32_t)utext_getNativeIndex(&fText);
+    startPos = static_cast<int32_t>(utext_getNativeIndex(&fText));
 
     UErrorCode status = U_ZERO_ERROR;
     fBreakCache->following(startPos, status);
@@ -881,7 +881,7 @@
         if (accepting == ACCEPTING_UNCONDITIONAL) {
             // Match found, common case.
             if (mode != RBBI_START) {
-                result = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
+                result = static_cast<int32_t>(UTEXT_GETNATIVEINDEX(&fText));
             }
             fRuleStatusIndex = row->fTagsIdx;   // Remember the break status (tag) values.
         } else if (accepting > ACCEPTING_UNCONDITIONAL) {
@@ -905,7 +905,7 @@
         U_ASSERT(rule == 0 || rule > ACCEPTING_UNCONDITIONAL);
         U_ASSERT(rule == 0 || rule < fData->fForwardTable->fLookAheadResultsSize);
         if (rule > ACCEPTING_UNCONDITIONAL) {
-            int32_t  pos = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
+            int32_t pos = static_cast<int32_t>(UTEXT_GETNATIVEINDEX(&fText));
             fLookAheadMatches[rule] = pos;
         }
 
@@ -937,7 +937,7 @@
     if (result == initialPosition) {
         utext_setNativeIndex(&fText, initialPosition);
         utext_next32(&fText);
-        result = (int32_t)utext_getNativeIndex(&fText);
+        result = static_cast<int32_t>(utext_getNativeIndex(&fText));
         fRuleStatusIndex = 0;
     }
 
@@ -1027,7 +1027,7 @@
     }
 
     // The state machine is done.  Check whether it found a match...
-    result = (int32_t)UTEXT_GETNATIVEINDEX(&fText);
+    result = static_cast<int32_t>(UTEXT_GETNATIVEINDEX(&fText));
     #ifdef RBBI_DEBUG
         if (gTrace) {
             RBBIDebugPrintf("result = %d\n\n", result);
@@ -1091,7 +1091,7 @@
     length = 0;
 
     if (fData != nullptr) {
-        retPtr = (const uint8_t *)fData->fHeader;
+        retPtr = reinterpret_cast<const uint8_t*>(fData->fHeader);
         length = fData->fHeader->fLength;
     }
     return retPtr;
@@ -1187,7 +1187,7 @@
     int32_t i = gLanguageBreakFactories->size();
     const LanguageBreakEngine *lbe = nullptr;
     while (--i >= 0) {
-        LanguageBreakFactory *factory = (LanguageBreakFactory *)(gLanguageBreakFactories->elementAt(i));
+        LanguageBreakFactory* factory = static_cast<LanguageBreakFactory*>(gLanguageBreakFactories->elementAt(i));
         lbe = factory->getEngineFor(c, locale);
         if (lbe != nullptr) {
             break;
@@ -1212,7 +1212,7 @@
         fLanguageBreakEngines = new UStack(status);
         if (fLanguageBreakEngines == nullptr || U_FAILURE(status)) {
             delete fLanguageBreakEngines;
-            fLanguageBreakEngines = 0;
+            fLanguageBreakEngines = nullptr;
             return nullptr;
         }
     }
@@ -1219,7 +1219,7 @@
 
     int32_t i = fLanguageBreakEngines->size();
     while (--i >= 0) {
-        lbe = (const LanguageBreakEngine *)(fLanguageBreakEngines->elementAt(i));
+        lbe = static_cast<const LanguageBreakEngine*>(fLanguageBreakEngines->elementAt(i));
         if (lbe->handles(c, locale)) {
             return lbe;
         }
@@ -1252,7 +1252,7 @@
         U_ASSERT(!fLanguageBreakEngines->hasDeleter());
         if (U_FAILURE(status)) {
             delete fUnhandledBreakEngine;
-            fUnhandledBreakEngine = 0;
+            fUnhandledBreakEngine = nullptr;
             return nullptr;
         }
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -146,7 +146,7 @@
     uint32_t dictStart = fBI->fData->fForwardTable->fDictCategoriesStart;
 
     while(U_SUCCESS(status)) {
-        while((current = (int32_t)UTEXT_GETNATIVEINDEX(text)) < rangeEnd
+        while ((current = static_cast<int32_t>(UTEXT_GETNATIVEINDEX(text))) < rangeEnd
                 && (category < dictStart)) {
             utext_next32(text);           // TODO: cleaner loop structure.
             c = utext_current32(text);
@@ -221,7 +221,7 @@
     fTextIdx = pos;
     fBufIdx = 0;
     fBoundaries[0] = pos;
-    fStatuses[0] = (uint16_t)ruleStatus;
+    fStatuses[0] = static_cast<uint16_t>(ruleStatus);
 }
 
 
@@ -246,7 +246,6 @@
         fBI->fDone = false;
         next();
     }
-    return;
 }
 
 
@@ -265,7 +264,6 @@
             current();
         }
     }
-    return;
 }
 
 
@@ -277,7 +275,6 @@
     fBI->fDone = !populateFollowing();
     fBI->fPosition = fTextIdx;
     fBI->fRuleStatusIndex = fStatuses[fBufIdx];
-    return;
 }
 
 
@@ -297,7 +294,6 @@
     fBI->fDone = (fBufIdx == initialBufIdx);
     fBI->fPosition = fTextIdx;
     fBI->fRuleStatusIndex = fStatuses[fBufIdx];
-    return;
 }
 
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -104,10 +104,10 @@
 
     fDontFreeData = false;
     if (data->fFTableLen != 0) {
-        fForwardTable = (RBBIStateTable *)((char *)data + fHeader->fFTable);
+        fForwardTable = reinterpret_cast<const RBBIStateTable*>(reinterpret_cast<const char*>(data) + fHeader->fFTable);
     }
     if (data->fRTableLen != 0) {
-        fReverseTable = (RBBIStateTable *)((char *)data + fHeader->fRTable);
+        fReverseTable = reinterpret_cast<const RBBIStateTable*>(reinterpret_cast<const char*>(data) + fHeader->fRTable);
     }
 
     fTrie = ucptrie_openFromBinary(UCPTRIE_TYPE_FAST,
@@ -130,7 +130,7 @@
     fRuleString = UnicodeString::fromUTF8(StringPiece(fRuleSource, fHeader->fRuleSourceLen));
     U_ASSERT(data->fRuleSourceLen > 0);
 
-    fRuleStatusTable = (int32_t *)((char *)data + fHeader->fStatusTable);
+    fRuleStatusTable = reinterpret_cast<const int32_t*>(reinterpret_cast<const char*>(data) + fHeader->fStatusTable);
     fStatusMaxIdx    = data->fStatusTableLen / sizeof(int32_t);
 
     fRefCount = 1;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -123,20 +123,67 @@
         break;
 
     default:
-        delete        fLeftChild;
+        // Avoid using a recursive implementation because of stack overflow problems.
+        // See bug ICU-22584.
+        // delete        fLeftChild;
+        NRDeleteNode(fLeftChild);
         fLeftChild =   nullptr;
-        delete        fRightChild;
+        // delete        fRightChild;
+        NRDeleteNode(fRightChild);
         fRightChild = nullptr;
     }
 
-
     delete fFirstPosSet;
     delete fLastPosSet;
     delete fFollowPos;
+}
 
+/**
+ * Non-recursive delete of a node + its children. Used from the node destructor
+ * instead of the more obvious recursive implementation to avoid problems with
+ * stack overflow with some perverse test rule data (from fuzzing).
+ */
+void RBBINode::NRDeleteNode(RBBINode *node) {
+    if (node == nullptr) {
+        return;
+    }
+
+    RBBINode *stopNode = node->fParent;
+    RBBINode *nextNode = node;
+    while (nextNode != stopNode && nextNode != nullptr) {
+        RBBINode *currentNode = nextNode;
+
+        if ((currentNode->fLeftChild == nullptr && currentNode->fRightChild == nullptr) ||
+                currentNode->fType == varRef ||      // varRef and setRef nodes do not
+                currentNode->fType == setRef) {      // own their children nodes.
+            // CurrentNode is effectively a leaf node; it's safe to go ahead and delete it.
+            nextNode = currentNode->fParent;
+            if (nextNode) {
+                if (nextNode->fLeftChild == currentNode) {
+                    nextNode->fLeftChild = nullptr;
+                } else if (nextNode->fRightChild == currentNode) {
+                    nextNode->fRightChild = nullptr;
+                }
+            }
+            delete currentNode;
+        } else if (currentNode->fLeftChild) {
+            nextNode = currentNode->fLeftChild;
+            if (nextNode->fParent == nullptr) {
+                nextNode->fParent = currentNode;
+                // fParent isn't always set; do it now if not.
+            }
+            U_ASSERT(nextNode->fParent == currentNode);
+        } else if (currentNode->fRightChild) {
+            nextNode = currentNode->fRightChild;
+            if (nextNode->fParent == nullptr) {
+                nextNode->fParent = currentNode;
+                // fParent isn't always set; do it now if not.
+            }
+            U_ASSERT(nextNode->fParent == currentNode);
+        }
+    }
 }
 
-
 //-------------------------------------------------------------------------
 //
 //    cloneTree     Make a copy of the subtree rooted at this node.
@@ -192,7 +239,17 @@
 //                      nested references are handled by cloneTree(), not here.
 //
 //-------------------------------------------------------------------------
-RBBINode *RBBINode::flattenVariables() {
+constexpr int kRecursiveDepthLimit = 3500;
+RBBINode *RBBINode::flattenVariables(UErrorCode& status, int depth) {
+    if (U_FAILURE(status)) {
+        return this;
+    }
+    // If the depth of the stack is too deep, we return U_INPUT_TOO_LONG_ERROR
+    // to avoid stack overflow crash.
+    if (depth > kRecursiveDepthLimit) {
+        status = U_INPUT_TOO_LONG_ERROR;
+        return this;
+    }
     if (fType == varRef) {
         RBBINode *retNode  = fLeftChild->cloneTree();
         if (retNode != nullptr) {
@@ -204,11 +261,11 @@
     }
 
     if (fLeftChild != nullptr) {
-        fLeftChild = fLeftChild->flattenVariables();
+        fLeftChild = fLeftChild->flattenVariables(status, depth+1);
         fLeftChild->fParent  = this;
     }
     if (fRightChild != nullptr) {
-        fRightChild = fRightChild->flattenVariables();
+        fRightChild = fRightChild->flattenVariables(status, depth+1);
         fRightChild->fParent = this;
     }
     return this;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -94,9 +94,10 @@
         RBBINode(NodeType t);
         RBBINode(const RBBINode &other);
         ~RBBINode();
+        static void  NRDeleteNode(RBBINode *node);
         
         RBBINode    *cloneTree();
-        RBBINode    *flattenVariables();
+        RBBINode    *flattenVariables(UErrorCode &status, int depth=0);
         void         flattenSets();
         void         findNodes(UVector *dest, RBBINode::NodeType kind, UErrorCode &status);
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -86,7 +86,8 @@
     if (U_FAILURE(status)) {
         return;
     }
-    if(fSetBuilder == 0 || fScanner == 0 || fUSetNodes == 0 || fRuleStatusVals == 0) {
+    if (fSetBuilder == nullptr || fScanner == nullptr ||
+        fUSetNodes == nullptr || fRuleStatusVals == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
     }
 }
@@ -102,7 +103,7 @@
 
     int        i;
     for (i=0; ; i++) {
-        RBBINode *n = (RBBINode *)fUSetNodes->elementAt(i);
+        RBBINode* n = static_cast<RBBINode*>(fUSetNodes->elementAt(i));
         if (n==nullptr) {
             break;
         }
@@ -156,7 +157,7 @@
     int32_t statusTableSize   = align8(fRuleStatusVals->size() * sizeof(int32_t));
 
     int32_t rulesLengthInUTF8 = 0;
-    u_strToUTF8WithSub(0, 0, &rulesLengthInUTF8,
+    u_strToUTF8WithSub(nullptr, 0, &rulesLengthInUTF8,
                        fStrippedRules.getBuffer(), fStrippedRules.length(),
                        0xfffd, nullptr, fStatus);
     *fStatus = U_ZERO_ERROR;
@@ -181,12 +182,12 @@
     }
 #endif
 
-    RBBIDataHeader  *data     = (RBBIDataHeader *)uprv_malloc(totalSize);
-    if (data == nullptr) {
+    LocalMemory<RBBIDataHeader> data(static_cast<RBBIDataHeader*>(uprv_malloc(totalSize)));
+    if (data.isNull()) {
         *fStatus = U_MEMORY_ALLOCATION_ERROR;
         return nullptr;
     }
-    uprv_memset(data, 0, totalSize);
+    uprv_memset(data.getAlias(), 0, totalSize);
 
 
     data->fMagic            = 0xb1a0;
@@ -212,16 +213,16 @@
 
     uprv_memset(data->fReserved, 0, sizeof(data->fReserved));
 
-    fForwardTable->exportTable((uint8_t *)data + data->fFTable);
-    fForwardTable->exportSafeTable((uint8_t *)data + data->fRTable);
-    fSetBuilder->serializeTrie ((uint8_t *)data + data->fTrie);
+    fForwardTable->exportTable(reinterpret_cast<uint8_t*>(data.getAlias()) + data->fFTable);
+    fForwardTable->exportSafeTable(reinterpret_cast<uint8_t*>(data.getAlias()) + data->fRTable);
+    fSetBuilder->serializeTrie(reinterpret_cast<uint8_t*>(data.getAlias()) + data->fTrie);
 
-    int32_t *ruleStatusTable = (int32_t *)((uint8_t *)data + data->fStatusTable);
+    int32_t* ruleStatusTable = reinterpret_cast<int32_t*>(reinterpret_cast<uint8_t*>(data.getAlias()) + data->fStatusTable);
     for (i=0; i<fRuleStatusVals->size(); i++) {
         ruleStatusTable[i] = fRuleStatusVals->elementAti(i);
     }
 
-    u_strToUTF8WithSub((char *)data+data->fRuleSource, rulesSize, &rulesLengthInUTF8,
+    u_strToUTF8WithSub(reinterpret_cast<char*>(data.getAlias()) + data->fRuleSource, rulesSize, &rulesLengthInUTF8,
                        fStrippedRules.getBuffer(), fStrippedRules.length(),
                        0xfffd, nullptr, fStatus);
     if (U_FAILURE(*fStatus)) {
@@ -228,7 +229,7 @@
         return nullptr;
     }
 
-    return data;
+    return data.orphan();
 }
 
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -289,6 +289,9 @@
 
             // Terminate expression, leaves expression parse tree rooted in TOS node.
             fixOpStack(RBBINode::precStart);
+            if (U_FAILURE(*fRB->fStatus)) {
+                break;
+            }
 
             RBBINode *startExprNode  = fNodeStack[fNodeStackPtr-2];
             RBBINode *varRefNode     = fNodeStack[fNodeStackPtr-1];
@@ -312,6 +315,11 @@
                 UErrorCode t = *fRB->fStatus;
                 *fRB->fStatus = U_ZERO_ERROR;
                 error(t);
+                // When adding $variableRef to the symbol table fail, Delete
+                // both nodes because deleting varRefNode will not delete
+                // RHSExprNode internally.
+                delete RHSExprNode;
+                delete varRefNode;
             }
 
             // Clean up the stack.
@@ -522,7 +530,13 @@
             n = fNodeStack[fNodeStackPtr];
             uint32_t v = u_charDigitValue(fC.fChar);
             U_ASSERT(v < 10);
-            n->fVal = n->fVal*10 + v;
+            int64_t updated = static_cast<int64_t>(n->fVal)*10 + v;
+            // Avoid overflow n->fVal
+            if (updated > INT32_MAX) {
+                error(U_BRK_RULE_SYNTAX);
+                break;
+            }
+            n->fVal = static_cast<int32_t>(updated);
             break;
         }
 
@@ -734,7 +748,7 @@
     // First check whether we've already cached a set for this string.
     // If so, just use the cached set in the new node.
     //   delete any set provided by the caller, since we own it.
-    el = (RBBISetTableEl *)uhash_get(fSetTable, &s);
+    el = static_cast<RBBISetTableEl*>(uhash_get(fSetTable, &s));
     if (el != nullptr) {
         delete setToAdopt;
         node->fLeftChild = el->val;
@@ -762,6 +776,7 @@
     RBBINode *usetNode    = new RBBINode(RBBINode::uset);
     if (usetNode == nullptr) {
         error(U_MEMORY_ALLOCATION_ERROR);
+        delete setToAdopt;
         return;
     }
     usetNode->fInputSet   = setToAdopt;
@@ -779,7 +794,7 @@
     //
     // Add the new set to the set hash table.
     //
-    el      = (RBBISetTableEl *)uprv_malloc(sizeof(RBBISetTableEl));
+    el = static_cast<RBBISetTableEl*>(uprv_malloc(sizeof(RBBISetTableEl)));
     UnicodeString *tkey = new UnicodeString(s);
     if (tkey == nullptr || el == nullptr || setToAdopt == nullptr) {
         // Delete to avoid memory leak
@@ -796,8 +811,6 @@
     el->key = tkey;
     el->val = usetNode;
     uhash_put(fSetTable, el->key, el, fRB->fStatus);
-
-    return;
 }
 
 
@@ -851,7 +864,7 @@
     UChar32  ch;
 
     if (fNextIndex >= fRB->fRules.length()) {
-        return (UChar32)-1;
+        return static_cast<UChar32>(-1);
     }
     ch         = fRB->fRules.char32At(fNextIndex);
     if (U_IS_SURROGATE(ch)) {
@@ -926,6 +939,9 @@
         }
     }
 
+    if (c.fChar == static_cast<UChar32>(-1)) {
+        return;
+    }
     if (fQuoteMode) {
         c.fEscaped = true;
     }
@@ -942,7 +958,7 @@
             int32_t commentStart = fScanIndex;
             for (;;) {
                 c.fChar = nextCharLL();
-                if (c.fChar == (UChar32)-1 ||  // EOF
+                if (c.fChar == static_cast<UChar32>(-1) || // EOF
                     c.fChar == chCR     ||
                     c.fChar == chLF     ||
                     c.fChar == chNEL    ||
@@ -952,7 +968,7 @@
                 fRB->fStrippedRules.setCharAt(i, u' ');
             }
         }
-        if (c.fChar == (UChar32)-1) {
+        if (c.fChar == static_cast<UChar32>(-1)) {
             return;
         }
 
@@ -1049,7 +1065,7 @@
                 // Table row specified "escaped P" and the char is either 'p' or 'P'.
                 break;
             }
-            if (tableEl->fCharClass == 252 && fC.fChar == (UChar32)-1)  {
+            if (tableEl->fCharClass == 252 && fC.fChar == static_cast<UChar32>(-1)) {
                 // Table row specified eof and we hit eof on the input.
                 break;
             }
@@ -1056,7 +1072,7 @@
 
             if (tableEl->fCharClass >= 128 && tableEl->fCharClass < 240 &&   // Table specs a char class &&
                 fC.fEscaped == false &&                                      //   char is not escaped &&
-                fC.fChar != (UChar32)-1) {                                   //   char is not EOF
+                fC.fChar != static_cast<UChar32>(-1)) {                      //   char is not EOF
                 U_ASSERT((tableEl->fCharClass-128) < UPRV_LENGTHOF(fRuleSets));
                 if (fRuleSets[tableEl->fCharClass-128].contains(fC.fChar)) {
                     // Table row specified a character class, or set of characters,
@@ -1074,7 +1090,7 @@
         // We've found the row of the state table that matches the current input
         //   character from the rules string.
         // Perform any action specified  by this row in the state table.
-        if (doParseActions((int32_t)tableEl->fAction) == false) {
+        if (doParseActions(static_cast<int32_t>(tableEl->fAction)) == false) {
             // Break out of the state machine loop if the
             //   the action signalled some kind of error, or
             //   the action was to exit, occurs on normal end-of-rules-input.
@@ -1199,7 +1215,6 @@
 //
 //------------------------------------------------------------------------------
 void RBBIRuleScanner::scanSet() {
-    UnicodeSet    *uset;
     ParsePosition  pos;
     int            startPos;
     int            i;
@@ -1211,12 +1226,12 @@
     pos.setIndex(fScanIndex);
     startPos = fScanIndex;
     UErrorCode localStatus = U_ZERO_ERROR;
-    uset = new UnicodeSet();
-    if (uset == nullptr) {
-        localStatus = U_MEMORY_ALLOCATION_ERROR;
-    } else {
-        uset->applyPatternIgnoreSpace(fRB->fRules, pos, fSymbolTable, localStatus);
+    LocalPointer<UnicodeSet> uset(new UnicodeSet(), localStatus);
+    if (U_FAILURE(localStatus)) {
+        error(localStatus);
+        return;
     }
+    uset->applyPatternIgnoreSpace(fRB->fRules, pos, fSymbolTable, localStatus);
     if (U_FAILURE(localStatus)) {
         //  TODO:  Get more accurate position of the error from UnicodeSet's return info.
         //         UnicodeSet appears to not be reporting correctly at this time.
@@ -1224,20 +1239,22 @@
             RBBIDebugPrintf("UnicodeSet parse position.ErrorIndex = %d\n", pos.getIndex());
         #endif
         error(localStatus);
-        delete uset;
         return;
     }
 
     // Verify that the set contains at least one code point.
     //
-    U_ASSERT(uset!=nullptr);
-    if (uset->isEmpty()) {
+    U_ASSERT(uset.isValid());
+    UnicodeSet tempSet(*uset);
+    // Use tempSet to handle the case that the UnicodeSet contains
+    // only string element, such as [{ab}] and treat it as empty set.
+    tempSet.removeAllStrings();
+    if (tempSet.isEmpty()) {
         // This set is empty.
         //  Make it an error, because it almost certainly is not what the user wanted.
         //  Also, avoids having to think about corner cases in the tree manipulation code
         //   that occurs later on.
         error(U_BRK_RULE_EMPTY_SET);
-        delete uset;
         return;
     }
 
@@ -1246,7 +1263,7 @@
     //   Don't just set fScanIndex because the line/char positions maintained
     //   for error reporting would be thrown off.
     i = pos.getIndex();
-    for (;;) {
+    for (;U_SUCCESS(*fRB->fStatus);) {
         if (fNextIndex >= i) {
             break;
         }
@@ -1269,7 +1286,7 @@
         //          character categories for run time engine.
         //     - Eliminates mulitiple instances of the same set.
         //     - Creates a new uset node if necessary (if this isn't a duplicate.)
-        findSetFor(n->fText, n, uset);
+        findSetFor(n->fText, n, uset.orphan());
     }
 
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -120,7 +120,7 @@
     //
     int  ni;
     for (ni=0; ; ni++) {        // Loop over each of the UnicodeSets encountered in the input rules
-        usetNode = (RBBINode *)this->fRB->fUSetNodes->elementAt(ni);
+        usetNode = static_cast<RBBINode*>(this->fRB->fUSetNodes->elementAt(ni));
         if (usetNode==nullptr) {
             break;
         }
@@ -251,7 +251,7 @@
     UnicodeString eofString(u"eof");
     UnicodeString bofString(u"bof");
     for (ni=0; ; ni++) {        // Loop over each of the UnicodeSets encountered in the input rules
-        usetNode = (RBBINode *)this->fRB->fUSetNodes->elementAt(ni);
+        usetNode = static_cast<RBBINode*>(this->fRB->fUSetNodes->elementAt(ni));
         if (usetNode==nullptr) {
             break;
         }
@@ -369,7 +369,7 @@
     int32_t       ix;
 
     for (ix=0; ix<sets->size(); ix++) {
-        RBBINode *usetNode = (RBBINode *)sets->elementAt(ix);
+        RBBINode* usetNode = static_cast<RBBINode*>(sets->elementAt(ix));
         addValToSet(usetNode, val);
     }
 }
@@ -380,7 +380,7 @@
         *fStatus = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
-    leafNode->fVal = (unsigned short)val;
+    leafNode->fVal = static_cast<unsigned short>(val);
     if (usetNode->fLeftChild == nullptr) {
         usetNode->fLeftChild = leafNode;
         leafNode->fParent    = usetNode;
@@ -441,7 +441,7 @@
 //------------------------------------------------------------------------
 UChar32  RBBISetBuilder::getFirstChar(int32_t category) const {
     RangeDescriptor   *rlRange;
-    UChar32            retVal = (UChar32)-1;
+    UChar32 retVal = static_cast<UChar32>(-1);
     for (rlRange = fRangeList; rlRange!=nullptr; rlRange=rlRange->fNext) {
         if (rlRange->fNum == category) {
             retVal = rlRange->fStartChar;
@@ -674,7 +674,7 @@
 bool RangeDescriptor::isDictionaryRange() {
     static const char16_t *dictionary = u"dictionary";
     for (int32_t i=0; i<fIncludesSets->size(); i++) {
-        RBBINode *usetNode  = (RBBINode *)fIncludesSets->elementAt(i);
+        RBBINode* usetNode = static_cast<RBBINode*>(fIncludesSets->elementAt(i));
         RBBINode *setRef = usetNode->fParent;
         if (setRef != nullptr) {
             RBBINode *varRef = setRef->fParent;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbistbl.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbistbl.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbistbl.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -41,7 +41,7 @@
 U_NAMESPACE_BEGIN
 
 RBBISymbolTable::RBBISymbolTable(RBBIRuleScanner *rs, const UnicodeString &rules, UErrorCode &status)
-    :fRules(rules), fRuleScanner(rs), ffffString(char16_t(0xffff))
+    : fRules(rules), fRuleScanner(rs), ffffString(static_cast<char16_t>(0xffff))
 {
     fHashTable       = nullptr;
     fCachedSetLookup = nullptr;
@@ -76,9 +76,9 @@
     RBBINode              *exprNode;
     RBBINode              *usetNode;
     const UnicodeString   *retString;
-    RBBISymbolTable       *This = (RBBISymbolTable *)this;   // cast off const
+    RBBISymbolTable       *This = const_cast<RBBISymbolTable*>(this); // cast off const
 
-    el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &s);
+    el = static_cast<RBBISymbolTableEntry*>(uhash_get(fHashTable, &s));
     if (el == nullptr) {
         return nullptr;
     }
@@ -119,10 +119,10 @@
 const UnicodeFunctor *RBBISymbolTable::lookupMatcher(UChar32 ch) const
 {
     UnicodeSet *retVal = nullptr;
-    RBBISymbolTable *This = (RBBISymbolTable *)this;   // cast off const
+    RBBISymbolTable *This = const_cast<RBBISymbolTable*>(this); // cast off const
     if (ch == 0xffff) {
         retVal = fCachedSetLookup;
-        This->fCachedSetLookup = 0;
+        This->fCachedSetLookup = nullptr;
     }
     return retVal;
 }
@@ -170,7 +170,7 @@
     RBBINode             *retNode = nullptr;
     RBBISymbolTableEntry *el;
 
-    el = (RBBISymbolTableEntry *)uhash_get(fHashTable, &key);
+    el = static_cast<RBBISymbolTableEntry*>(uhash_get(fHashTable, &key));
     if (el != nullptr) {
         retNode = el->val;
     }
@@ -190,7 +190,7 @@
     if (U_FAILURE(err)) {
         return;
     }
-    e = (RBBISymbolTableEntry *)uhash_get(fHashTable, &key);
+    e = static_cast<RBBISymbolTableEntry*>(uhash_get(fHashTable, &key));
     if (e != nullptr) {
         err = U_BRK_VARIABLE_REDFINITION;
         return;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -51,7 +51,7 @@
 RBBITableBuilder::~RBBITableBuilder() {
     int i;
     for (i=0; i<fDStates->size(); i++) {
-        delete (RBBIStateDescriptor *)fDStates->elementAt(i);
+        delete static_cast<RBBIStateDescriptor*>(fDStates->elementAt(i));
     }
     delete fDStates;
     delete fSafeTable;
@@ -81,7 +81,10 @@
     // Walk through the tree, replacing any references to $variables with a copy of the
     //   parse tree for the substitution expression.
     //
-    fTree = fTree->flattenVariables();
+    fTree = fTree->flattenVariables(*fStatus, 0);
+    if (U_FAILURE(*fStatus)) {
+        return;
+    }
 #ifdef RBBI_DEBUG
     if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ftree")) {
         RBBIDebugPuts("\nParse tree after flattening variable references.");
@@ -358,8 +361,8 @@
 
         UVector *LastPosOfLeftChild = n->fLeftChild->fLastPosSet;
 
-        for (ix=0; ix<(uint32_t)LastPosOfLeftChild->size(); ix++) {
-            i = (RBBINode *)LastPosOfLeftChild->elementAt(ix);
+        for (ix = 0; ix < static_cast<uint32_t>(LastPosOfLeftChild->size()); ix++) {
+            i = static_cast<RBBINode*>(LastPosOfLeftChild->elementAt(ix));
             setAdd(i->fFollowPos, n->fRightChild->fFirstPosSet);
         }
     }
@@ -370,8 +373,8 @@
         RBBINode   *i;  // again, n and i are the names from Aho's description.
         uint32_t    ix;
 
-        for (ix=0; ix<(uint32_t)n->fLastPosSet->size(); ix++) {
-            i = (RBBINode *)n->fLastPosSet->elementAt(ix);
+        for (ix = 0; ix < static_cast<uint32_t>(n->fLastPosSet->size()); ix++) {
+            i = static_cast<RBBINode*>(n->fLastPosSet->elementAt(ix));
             setAdd(i->fFollowPos, n->fFirstPosSet);
         }
     }
@@ -442,7 +445,7 @@
     int32_t  startNodeIx;
 
     for (endNodeIx=0; endNodeIx<leafNodes.size(); endNodeIx++) {
-        RBBINode *endNode   = (RBBINode *)leafNodes.elementAt(endNodeIx);
+        RBBINode* endNode = static_cast<RBBINode*>(leafNodes.elementAt(endNodeIx));
 
         // Identify leaf nodes that correspond to overall rule match positions.
         // These include the endMarkNode in their followPos sets.
@@ -462,7 +465,7 @@
         //   with the same char class as our ending node.
         RBBINode *startNode;
         for (startNodeIx = 0; startNodeIx<matchStartNodes.size(); startNodeIx++) {
-            startNode = (RBBINode *)matchStartNodes.elementAt(startNodeIx);
+            startNode = static_cast<RBBINode*>(matchStartNodes.elementAt(startNodeIx));
             if (startNode->fType != RBBINode::leafChar) {
                 continue;
             }
@@ -522,7 +525,7 @@
     RBBINode *startNode;
     int       startNodeIx;
     for (startNodeIx = 0; startNodeIx<matchStartNodes->size(); startNodeIx++) {
-        startNode = (RBBINode *)matchStartNodes->elementAt(startNodeIx);
+        startNode = static_cast<RBBINode*>(matchStartNodes->elementAt(startNodeIx));
         if (startNode->fType != RBBINode::leafChar) {
             continue;
         }
@@ -602,7 +605,7 @@
         int32_t              tx;
         for (tx=1; tx<fDStates->size(); tx++) {
             RBBIStateDescriptor *temp;
-            temp = (RBBIStateDescriptor *)fDStates->elementAt(tx);
+            temp = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(tx));
             if (temp->fMarked == false) {
                 T = temp;
                 break;
@@ -625,7 +628,7 @@
             RBBINode   *p;
             int32_t     px;
             for (px=0; px<T->fPositions->size(); px++) {
-                p = (RBBINode *)T->fPositions->elementAt(px);
+                p = static_cast<RBBINode*>(T->fPositions->elementAt(px));
                 if ((p->fType == RBBINode::leafChar) &&  (p->fVal == a)) {
                     if (U == nullptr) {
                         U = new UVector(*fStatus);
@@ -646,7 +649,7 @@
                 int  ix;
                 for (ix=0; ix<fDStates->size(); ix++) {
                     RBBIStateDescriptor *temp2;
-                    temp2 = (RBBIStateDescriptor *)fDStates->elementAt(ix);
+                    temp2 = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(ix));
                     if (setEquals(U, temp2->fPositions)) {
                         delete U;
                         U  = temp2->fPositions;
@@ -702,7 +705,7 @@
     fLookAheadRuleMap->setSize(fRB->fScanner->numRules() + 1);
 
     for (int32_t n=0; n<fDStates->size(); n++) {
-        RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n);
+        RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(n));
         int32_t laSlotForState = 0;
 
         // Establish the look-ahead slot for this state, if the state covers
@@ -786,9 +789,9 @@
     }
 
     for (i=0; i<endMarkerNodes.size(); i++) {
-        endMarker = (RBBINode *)endMarkerNodes.elementAt(i);
+        endMarker = static_cast<RBBINode*>(endMarkerNodes.elementAt(i));
         for (n=0; n<fDStates->size(); n++) {
-            RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n);
+            RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(n));
             if (sd->fPositions->indexOf(endMarker) >= 0) {
                 // Any non-zero value for fAccepting means this is an accepting node.
                 // The value is what will be returned to the user as the break status.
@@ -834,11 +837,11 @@
         return;
     }
     for (i=0; i<lookAheadNodes.size(); i++) {
-        lookAheadNode = (RBBINode *)lookAheadNodes.elementAt(i);
+        lookAheadNode = static_cast<RBBINode*>(lookAheadNodes.elementAt(i));
         U_ASSERT(lookAheadNode->fType == RBBINode::NodeType::lookAhead);
 
         for (n=0; n<fDStates->size(); n++) {
-            RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n);
+            RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(n));
             int32_t positionsIdx = sd->fPositions->indexOf(lookAheadNode);
             if (positionsIdx >= 0) {
                 U_ASSERT(lookAheadNode == sd->fPositions->elementAt(positionsIdx));
@@ -879,10 +882,10 @@
         return;
     }
     for (i=0; i<tagNodes.size(); i++) {                   // For each tag node t (all of 'em)
-        tagNode = (RBBINode *)tagNodes.elementAt(i);
+        tagNode = static_cast<RBBINode*>(tagNodes.elementAt(i));
 
         for (n=0; n<fDStates->size(); n++) {              //    For each state  s (row in the state table)
-            RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n);
+            RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(n));
             if (sd->fPositions->indexOf(tagNode) >= 0) {  //       if  s include the tag node t
                 sortedAdd(&sd->fTagVals, tagNode->fVal);
             }
@@ -920,12 +923,12 @@
     //   We will need this as a default, for rule sets with no explicit tagging.
     if (fRB->fRuleStatusVals->size() == 0) {
         fRB->fRuleStatusVals->addElement(1, *fStatus);  // Num of statuses in group
-        fRB->fRuleStatusVals->addElement((int32_t)0, *fStatus);  //   and our single status of zero
+        fRB->fRuleStatusVals->addElement(static_cast<int32_t>(0), *fStatus); // and our single status of zero
     }
 
     //    For each state
     for (n=0; n<fDStates->size(); n++) {
-        RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(n);
+        RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(n));
         UVector *thisStatesTagValues = sd->fTagVals;
         if (thisStatesTagValues == nullptr) {
             // No tag values are explicitly associated with this state.
@@ -1151,9 +1154,9 @@
             uint16_t table_base = 0;
             uint16_t table_dupl = 1;
             for (int32_t state=0; state<numStates; state++) {
-                RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
-                table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
-                table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
+                RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(state));
+                table_base = static_cast<uint16_t>(sd->fDtran->elementAti(categories->first));
+                table_dupl = static_cast<uint16_t>(sd->fDtran->elementAti(categories->second));
                 if (table_base != table_dupl) {
                     break;
                 }
@@ -1173,7 +1176,7 @@
 void RBBITableBuilder::removeColumn(int32_t column) {
     int32_t numStates = fDStates->size();
     for (int32_t state=0; state<numStates; state++) {
-        RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
+        RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(state));
         U_ASSERT(column < sd->fDtran->size());
         sd->fDtran->removeElementAt(column);
     }
@@ -1187,9 +1190,9 @@
     int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
 
     for (; states->first<numStates-1; states->first++) {
-        RBBIStateDescriptor *firstSD = (RBBIStateDescriptor *)fDStates->elementAt(states->first);
+        RBBIStateDescriptor* firstSD = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(states->first));
         for (states->second=states->first+1; states->second<numStates; states->second++) {
-            RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(states->second);
+            RBBIStateDescriptor* duplSD = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(states->second));
             if (firstSD->fAccepting != duplSD->fAccepting ||
                 firstSD->fLookAhead != duplSD->fLookAhead ||
                 firstSD->fTagsIdx   != duplSD->fTagsIdx) {
@@ -1249,7 +1252,7 @@
     U_ASSERT(keepState < duplState);
     U_ASSERT(duplState < fDStates->size());
 
-    RBBIStateDescriptor *duplSD = (RBBIStateDescriptor *)fDStates->elementAt(duplState);
+    RBBIStateDescriptor* duplSD = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(duplState));
     fDStates->removeElementAt(duplState);
     delete duplSD;
 
@@ -1256,7 +1259,7 @@
     int32_t numStates = fDStates->size();
     int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
     for (int32_t state=0; state<numStates; ++state) {
-        RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
+        RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(state));
         for (int32_t col=0; col<numCols; col++) {
             int32_t existingVal = sd->fDtran->elementAti(col);
             int32_t newVal = existingVal;
@@ -1280,7 +1283,7 @@
                                               // and will auto-delete the removed element.
     int32_t numStates = fSafeTable->size();
     for (int32_t state=0; state<numStates; ++state) {
-        UnicodeString *sd = (UnicodeString *)fSafeTable->elementAt(state);
+        UnicodeString* sd = static_cast<UnicodeString*>(fSafeTable->elementAt(state));
         int32_t numCols = sd->length();
         for (int32_t col=0; col<numCols; col++) {
             int32_t existingVal = sd->charAt(col);
@@ -1354,7 +1357,7 @@
 //
 //-----------------------------------------------------------------------------
 void RBBITableBuilder::exportTable(void *where) {
-    RBBIStateTable    *table = (RBBIStateTable *)where;
+    RBBIStateTable* table = static_cast<RBBIStateTable*>(where);
     uint32_t           state;
     int                col;
 
@@ -1387,13 +1390,13 @@
     }
 
     for (state=0; state<table->fNumStates; state++) {
-        RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
-        RBBIStateTableRow   *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen);
+        RBBIStateDescriptor* sd = static_cast<RBBIStateDescriptor*>(fDStates->elementAt(state));
+        RBBIStateTableRow* row = reinterpret_cast<RBBIStateTableRow*>(table->fTableData + state * table->fRowLen);
         if (use8BitsForTable()) {
             U_ASSERT (sd->fAccepting <= 255);
             U_ASSERT (sd->fLookAhead <= 255);
             U_ASSERT (0 <= sd->fTagsIdx && sd->fTagsIdx <= 255);
-            RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row;
+            RBBIStateTableRow8* r8 = reinterpret_cast<RBBIStateTableRow8*>(row);
             r8->fAccepting = sd->fAccepting;
             r8->fLookAhead = sd->fLookAhead;
             r8->fTagsIdx   = sd->fTagsIdx;
@@ -1469,8 +1472,8 @@
                 }
             }
             if (wantedEndState == endState) {
-                safePairs.append((char16_t)c1);
-                safePairs.append((char16_t)c2);
+                safePairs.append(static_cast<char16_t>(c1));
+                safePairs.append(static_cast<char16_t>(c2));
                 // printf("(%d, %d) ", c1, c2);
             }
         }
@@ -1576,7 +1579,7 @@
 //
 //-----------------------------------------------------------------------------
 void RBBITableBuilder::exportSafeTable(void *where) {
-    RBBIStateTable    *table = (RBBIStateTable *)where;
+    RBBIStateTable* table = static_cast<RBBIStateTable*>(where);
     uint32_t           state;
     int                col;
 
@@ -1601,10 +1604,10 @@
     }
 
     for (state=0; state<table->fNumStates; state++) {
-        UnicodeString *rowString = (UnicodeString *)fSafeTable->elementAt(state);
-        RBBIStateTableRow   *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen);
+        UnicodeString* rowString = static_cast<UnicodeString*>(fSafeTable->elementAt(state));
+        RBBIStateTableRow* row = reinterpret_cast<RBBIStateTableRow*>(table->fTableData + state * table->fRowLen);
         if (use8BitsForSafeTable()) {
-            RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row;
+            RBBIStateTableRow8* r8 = reinterpret_cast<RBBIStateTableRow8*>(row);
             r8->fAccepting = 0;
             r8->fLookAhead = 0;
             r8->fTagsIdx    = 0;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/resbund.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/resbund.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/resbund.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -179,7 +179,7 @@
 ResourceBundle::ResourceBundle(UErrorCode &err)
                                 :UObject(), fLocale(nullptr)
 {
-    fResource = ures_open(0, Locale::getDefault().getName(), &err);
+    fResource = ures_open(nullptr, Locale::getDefault().getName(), &err);
 }
 
 ResourceBundle::ResourceBundle(const ResourceBundle &other)
@@ -188,7 +188,7 @@
     UErrorCode status = U_ZERO_ERROR;
 
     if (other.fResource) {
-        fResource = ures_copyResb(0, other.fResource, &status);
+        fResource = ures_copyResb(nullptr, other.fResource, &status);
     } else {
         /* Copying a bad resource bundle */
         fResource = nullptr;
@@ -199,7 +199,7 @@
                                :UObject(), fLocale(nullptr)
 {
     if (res) {
-        fResource = ures_copyResb(0, res, &err);
+        fResource = ures_copyResb(nullptr, res, &err);
     } else {
         /* Copying a bad resource bundle */
         fResource = nullptr;
@@ -218,7 +218,7 @@
     if(this == &other) {
         return *this;
     }
-    if(fResource != 0) {
+    if (fResource != nullptr) {
         ures_close(fResource);
         fResource = nullptr;
     }
@@ -228,7 +228,7 @@
     }
     UErrorCode status = U_ZERO_ERROR;
     if (other.fResource) {
-        fResource = ures_copyResb(0, other.fResource, &status);
+        fResource = ures_copyResb(nullptr, other.fResource, &status);
     } else {
         /* Copying a bad resource bundle */
         fResource = nullptr;
@@ -238,12 +238,10 @@
 
 ResourceBundle::~ResourceBundle()
 {
-    if(fResource != 0) {
+    if (fResource != nullptr) {
         ures_close(fResource);
     }
-    if(fLocale != nullptr) {
-      delete(fLocale);
-    }
+    delete fLocale;
 }
 
 ResourceBundle *
@@ -311,7 +309,7 @@
 
 UnicodeString ResourceBundle::getNextString(UErrorCode& status) {
     int32_t len = 0;
-    const char16_t* r = ures_getNextString(fResource, &len, 0, &status);
+    const char16_t* r = ures_getNextString(fResource, &len, nullptr, &status);
     return UnicodeString(true, r, len);
 }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/resbund_cnv.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/resbund_cnv.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/resbund_cnv.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -49,7 +49,7 @@
     }
     else {
         UnicodeString nullTerminatedPath(path);
-        nullTerminatedPath.append((char16_t)0);
+        nullTerminatedPath.append(static_cast<char16_t>(0));
         fResource = ures_openU(nullTerminatedPath.getBuffer(), locale.getName(), &error);
     }
 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -27,12 +27,12 @@
     text(theText),
     pos(thePos),
     sym(theSym),
-    buf(0),
+    buf(nullptr),
     bufPos(0)
 {}
 
 UBool RuleCharacterIterator::atEnd() const {
-    return buf == 0 && pos.getIndex() == text.length();
+    return buf == nullptr && pos.getIndex() == text.length();
 }
 
 UChar32 RuleCharacterIterator::next(int32_t options, UBool& isEscaped, UErrorCode& ec) {
@@ -45,8 +45,8 @@
         c = _current();
         _advance(U16_LENGTH(c));
 
-        if (c == SymbolTable::SYMBOL_REF && buf == 0 &&
-            (options & PARSE_VARIABLES) != 0 && sym != 0) {
+        if (c == SymbolTable::SYMBOL_REF && buf == nullptr &&
+            (options & PARSE_VARIABLES) != 0 && sym != nullptr) {
             UnicodeString name = sym->parseReference(text, pos, text.length());
             // If name is empty there was an isolated SYMBOL_REF;
             // return it.  Caller must be prepared for this.
@@ -55,13 +55,13 @@
             }
             bufPos = 0;
             buf = sym->lookup(name);
-            if (buf == 0) {
+            if (buf == nullptr) {
                 ec = U_UNDEFINED_VARIABLE;
                 return DONE;
             }
             // Handle empty variable value
             if (buf->length() == 0) {
-                buf = 0;
+                buf = nullptr;
             }
             continue;
         }
@@ -114,7 +114,7 @@
     if (maxLookAhead < 0) {
         maxLookAhead = 0x7FFFFFFF;
     }
-    if (buf != 0) {
+    if (buf != nullptr) {
         buf->extract(bufPos, maxLookAhead, result);
     } else {
         text.extract(pos.getIndex(), maxLookAhead, result);
@@ -135,19 +135,19 @@
 */
 
 UChar32 RuleCharacterIterator::_current() const {
-    if (buf != 0) {
+    if (buf != nullptr) {
         return buf->char32At(bufPos);
     } else {
         int i = pos.getIndex();
-        return (i < text.length()) ? text.char32At(i) : (UChar32)DONE;
+        return (i < text.length()) ? text.char32At(i) : static_cast<UChar32>(DONE);
     }
 }
 
 void RuleCharacterIterator::_advance(int32_t count) {
-    if (buf != 0) {
+    if (buf != nullptr) {
         bufPos += count;
         if (bufPos == buf->length()) {
-            buf = 0;
+            buf = nullptr;
         }
     } else {
         pos.setIndex(pos.getIndex() + count);

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -224,7 +224,7 @@
 };
 
 inline UBool RuleCharacterIterator::inVariable() const {
-    return buf != 0;
+    return buf != nullptr;
 }
 
 U_NAMESPACE_END

Modified: trunk/Build/source/libs/icu/icu-src/source/common/serv.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/serv.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/serv.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -424,7 +424,7 @@
         return handleDefault(key, actualReturn, status);
     }
 
-    ICUService* ncthis = (ICUService*)this; // cast away semantic const
+    ICUService* ncthis = const_cast<ICUService*>(this); // cast away semantic const
 
     CacheEntry* result = nullptr;
     {
@@ -462,7 +462,7 @@
 
         if (factory != nullptr) {
             for (int32_t i = 0; i < limit; ++i) {
-                if (factory == (const ICUServiceFactory*)factories->elementAt(i)) {
+                if (factory == static_cast<const ICUServiceFactory*>(factories->elementAt(i))) {
                     startIndex = i + 1;
                     break;
                 }
@@ -478,7 +478,7 @@
         do {
             currentDescriptor.remove();
             key.currentDescriptor(currentDescriptor);
-            result = (CacheEntry*)serviceCache->get(currentDescriptor);
+            result = static_cast<CacheEntry*>(serviceCache->get(currentDescriptor));
             if (result != nullptr) {
                 break;
             }
@@ -490,7 +490,7 @@
 
             int32_t index = startIndex;
             while (index < limit) {
-                ICUServiceFactory* f = (ICUServiceFactory*)factories->elementAt(index++);
+                ICUServiceFactory* f = static_cast<ICUServiceFactory*>(factories->elementAt(index++));
                 LocalPointer<UObject> service(f->create(key, this, status));
                 if (U_FAILURE(status)) {
                     return nullptr;
@@ -543,7 +543,7 @@
 
                 if (cacheDescriptorList.isValid()) {
                     for (int32_t i = cacheDescriptorList->size(); --i >= 0;) {
-                        UnicodeString* desc = (UnicodeString*)cacheDescriptorList->elementAt(i);
+                        UnicodeString* desc = static_cast<UnicodeString*>(cacheDescriptorList->elementAt(i));
 
                         serviceCache->put(*desc, result, status);
                         if (U_FAILURE(status)) {
@@ -558,7 +558,7 @@
 
             if (actualReturn != nullptr) {
                 // strip null prefix
-                if (result->actualDescriptor.indexOf((char16_t)0x2f) == 0) { // U+002f=slash (/)
+                if (result->actualDescriptor.indexOf(static_cast<char16_t>(0x2f)) == 0) { // U+002f=slash (/)
                     actualReturn->remove();
                     actualReturn->append(result->actualDescriptor, 
                         1, 
@@ -618,7 +618,7 @@
                     break;
                 }
 
-                const UnicodeString* id = (const UnicodeString*)e->key.pointer;
+                const UnicodeString* id = static_cast<const UnicodeString*>(e->key.pointer);
                 if (fallbackKey != nullptr) {
                     if (!fallbackKey->isFallbackOf(*id)) {
                         continue;
@@ -644,7 +644,7 @@
 
     // must only be called when lock is already held
 
-    ICUService* ncthis = (ICUService*)this; // cast away semantic const
+    ICUService* ncthis = const_cast<ICUService*>(this); // cast away semantic const
     if (idCache == nullptr) {
         ncthis->idCache = new Hashtable(status);
         if (idCache == nullptr) {
@@ -651,7 +651,7 @@
             status = U_MEMORY_ALLOCATION_ERROR;
         } else if (factories != nullptr) {
             for (int32_t pos = factories->size(); --pos >= 0;) {
-                ICUServiceFactory* f = (ICUServiceFactory*)factories->elementAt(pos);
+                ICUServiceFactory* f = static_cast<ICUServiceFactory*>(factories->elementAt(pos));
                 f->updateVisibleIDs(*idCache, status);
             }
             if (U_FAILURE(status)) {
@@ -679,7 +679,7 @@
         Mutex mutex(&lock);
         const Hashtable* map = getVisibleIDMap(status);
         if (map != nullptr) {
-            ICUServiceFactory* f = (ICUServiceFactory*)map->get(id);
+            ICUServiceFactory* f = static_cast<ICUServiceFactory*>(map->get(id));
             if (f != nullptr) {
                 f->getDisplayName(id, locale, result);
                 return result;
@@ -691,7 +691,7 @@
             while (fallbackKey != nullptr && fallbackKey->fallback()) {
                 UnicodeString us;
                 fallbackKey->currentID(us);
-                f = (ICUServiceFactory*)map->get(us);
+                f = static_cast<ICUServiceFactory*>(map->get(us));
                 if (f != nullptr) {
                     f->getDisplayName(id, locale, result);
                     delete fallbackKey;
@@ -727,7 +727,7 @@
     result.removeAllElements();
     result.setDeleter(userv_deleteStringPair);
     if (U_SUCCESS(status)) {
-        ICUService* ncthis = (ICUService*)this; // cast away semantic const
+        ICUService* ncthis = const_cast<ICUService*>(this); // cast away semantic const
         Mutex mutex(&lock);
 
         if (dnCache != nullptr && dnCache->locale != locale) {
@@ -749,8 +749,8 @@
             int32_t pos = UHASH_FIRST;
             const UHashElement* entry = nullptr;
             while ((entry = m->nextElement(pos)) != nullptr) {
-                const UnicodeString* id = (const UnicodeString*)entry->key.pointer;
-                ICUServiceFactory* f = (ICUServiceFactory*)entry->value.pointer;
+                const UnicodeString* id = static_cast<const UnicodeString*>(entry->key.pointer);
+                ICUServiceFactory* f = static_cast<ICUServiceFactory*>(entry->value.pointer);
                 UnicodeString dname;
                 f->getDisplayName(*id, locale, dname);
                 if (dname.isBogus()) {
@@ -776,11 +776,11 @@
     int32_t pos = UHASH_FIRST; 
     const UHashElement *entry = nullptr;
     while ((entry = dnCache->cache.nextElement(pos)) != nullptr) {
-        const UnicodeString* id = (const UnicodeString*)entry->value.pointer;
+        const UnicodeString* id = static_cast<const UnicodeString*>(entry->value.pointer);
         if (matchKey != nullptr && !matchKey->isFallbackOf(*id)) {
             continue;
         }
-        const UnicodeString* dn = (const UnicodeString*)entry->key.pointer;
+        const UnicodeString* dn = static_cast<const UnicodeString*>(entry->key.pointer);
         StringPair* sp = StringPair::create(*id, *dn, status);
         result.adoptElement(sp, status);
         if (U_FAILURE(status)) {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/servlkf.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/servlkf.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/servlkf.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -76,7 +76,7 @@
         const UHashElement* elem = nullptr;
         int32_t pos = UHASH_FIRST;
         while ((elem = supported->nextElement(pos)) != nullptr) {
-            const UnicodeString& id = *((const UnicodeString*)elem->key.pointer);
+            const UnicodeString& id = *static_cast<const UnicodeString*>(elem->key.pointer);
             if (!visible) {
                 result.remove(id);
             } else {

Modified: trunk/Build/source/libs/icu/icu-src/source/common/servls.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/servls.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/servls.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -179,7 +179,7 @@
 
             length = other._ids.size();
             for(i = 0; i < length; ++i) {
-                LocalPointer<UnicodeString> clonedId(((UnicodeString *)other._ids.elementAt(i))->clone(), status);
+                LocalPointer<UnicodeString> clonedId(static_cast<UnicodeString*>(other._ids.elementAt(i))->clone(), status);
                 _ids.adoptElement(clonedId.orphan(), status);
             }
 
@@ -228,7 +228,7 @@
 
     virtual const UnicodeString* snext(UErrorCode& status) override {
         if (upToDate(status) && (_pos < _ids.size())) {
-            return (const UnicodeString*)_ids[_pos++];
+            return static_cast<const UnicodeString*>(_ids[_pos++]);
         }
         return nullptr;
     }
@@ -263,7 +263,7 @@
 ICULocaleService::validateFallbackLocale() const
 {
     const Locale&     loc    = Locale::getDefault();
-    ICULocaleService* ncThis = (ICULocaleService*)this;
+    ICULocaleService* ncThis = const_cast<ICULocaleService*>(this);
     static UMutex llock;
     {
         Mutex mutex(&llock);

Modified: trunk/Build/source/libs/icu/icu-src/source/common/servnotf.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/servnotf.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/servnotf.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -56,7 +56,7 @@
                 listeners = lpListeners.orphan();
             } else {
                 for (int i = 0, e = listeners->size(); i < e; ++i) {
-                    const EventListener* el = (const EventListener*)(listeners->elementAt(i));
+                    const EventListener* el = static_cast<const EventListener*>(listeners->elementAt(i));
                     if (l == el) {
                         return;
                     }
@@ -88,7 +88,7 @@
             if (listeners != nullptr) {
                 // identity equality check
                 for (int i = 0, e = listeners->size(); i < e; ++i) {
-                    const EventListener* el = (const EventListener*)listeners->elementAt(i);
+                    const EventListener* el = static_cast<const EventListener*>(listeners->elementAt(i));
                     if (l == el) {
                         listeners->removeElementAt(i);
                         if (listeners->size() == 0) {
@@ -109,7 +109,7 @@
     Mutex lmx(&notifyLock);
     if (listeners != nullptr) {
         for (int i = 0, e = listeners->size(); i < e; ++i) {
-            EventListener* el = (EventListener*)listeners->elementAt(i);
+            EventListener* el = static_cast<EventListener*>(listeners->elementAt(i));
             notifyListener(*el);
         }
     }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/servrbf.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/servrbf.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/servrbf.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -61,8 +61,8 @@
                 // who made this change? -- dlf
         char pkg[20];
         int32_t length;
-        length=_bundleName.extract(0, INT32_MAX, pkg, (int32_t)sizeof(pkg), US_INV);
-        if(length>=(int32_t)sizeof(pkg)) {
+        length = _bundleName.extract(0, INT32_MAX, pkg, static_cast<int32_t>(sizeof(pkg)), US_INV);
+        if (length >= static_cast<int32_t>(sizeof(pkg))) {
             return nullptr;
         }
         return new ResourceBundle(pkg, loc, status);

Modified: trunk/Build/source/libs/icu/icu-src/source/common/simpleformatter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/simpleformatter.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/simpleformatter.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -73,7 +73,7 @@
     const char16_t *patternBuffer = pattern.getBuffer();
     int32_t patternLength = pattern.length();
     // Reserve the first char for the number of arguments.
-    compiledPattern.setTo((char16_t)0);
+    compiledPattern.setTo(static_cast<char16_t>(0));
     int32_t textLength = 0;
     int32_t maxArg = -1;
     UBool inQuote = false;
@@ -98,7 +98,7 @@
         } else if (!inQuote && c == OPEN_BRACE) {
             if (textLength > 0) {
                 compiledPattern.setCharAt(compiledPattern.length() - textLength - 1,
-                                          (char16_t)(ARG_NUM_LIMIT + textLength));
+                                          static_cast<char16_t>(ARG_NUM_LIMIT + textLength));
                 textLength = 0;
             }
             int32_t argNumber;
@@ -129,7 +129,7 @@
             if (argNumber > maxArg) {
                 maxArg = argNumber;
             }
-            compiledPattern.append((char16_t)argNumber);
+            compiledPattern.append(static_cast<char16_t>(argNumber));
             continue;
         }  // else: c is part of literal text
         // Append c and track the literal-text segment length.
@@ -144,7 +144,7 @@
     }
     if (textLength > 0) {
         compiledPattern.setCharAt(compiledPattern.length() - textLength - 1,
-                                  (char16_t)(ARG_NUM_LIMIT + textLength));
+                                  static_cast<char16_t>(ARG_NUM_LIMIT + textLength));
     }
     int32_t argCount = maxArg + 1;
     if (argCount < min || max < argCount) {
@@ -151,7 +151,7 @@
         errorCode = U_ILLEGAL_ARGUMENT_ERROR;
         return false;
     }
-    compiledPattern.setCharAt(0, (char16_t)argCount);
+    compiledPattern.setCharAt(0, static_cast<char16_t>(argCount));
     return true;
 }
 

Modified: trunk/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -328,7 +328,7 @@
     const UHashElement *old=uhash_find(nodes, newNode);
     if(old!=nullptr) {
         delete newNode;
-        return (Node *)old->key.pointer;
+        return static_cast<Node*>(old->key.pointer);
     }
     // If uhash_puti() returns a non-zero value from an equivalent, previously
     // registered node, then uhash_find() failed to find that and we will leak newNode.
@@ -352,7 +352,7 @@
     FinalValueNode key(value);
     const UHashElement *old=uhash_find(nodes, &key);
     if(old!=nullptr) {
-        return (Node *)old->key.pointer;
+        return static_cast<Node*>(old->key.pointer);
     }
     Node *newNode=new FinalValueNode(value);
     if(newNode==nullptr) {
@@ -375,12 +375,12 @@
 
 int32_t
 StringTrieBuilder::hashNode(const void *node) {
-    return ((const Node *)node)->hashCode();
+    return static_cast<const Node*>(node)->hashCode();
 }
 
 UBool
 StringTrieBuilder::equalNodes(const void *left, const void *right) {
-    return *(const Node *)left==*(const Node *)right;
+    return *static_cast<const Node*>(left) == *static_cast<const Node*>(right);
 }
 
 bool

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubidi.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubidi.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -304,7 +304,7 @@
     if ((pBiDi!=nullptr) && (reorderingMode >= UBIDI_REORDER_DEFAULT)
                         && (reorderingMode < UBIDI_REORDER_COUNT)) {
         pBiDi->reorderingMode = reorderingMode;
-        pBiDi->isInverse = (UBool)(reorderingMode == UBIDI_REORDER_INVERSE_NUMBERS_AS_L);
+        pBiDi->isInverse = reorderingMode == UBIDI_REORDER_INVERSE_NUMBERS_AS_L;
     }
 }
 
@@ -381,7 +381,7 @@
     for(i=0; i<length; ) {
         /* i is incremented by U16_NEXT */
         U16_NEXT(text, i, length, uchar);
-        dirProp=(DirProp)ubidi_getCustomizedClass(pBiDi, uchar);
+        dirProp = static_cast<DirProp>(ubidi_getCustomizedClass(pBiDi, uchar));
         if(result==ON) {
             if(dirProp==L || dirProp==R || dirProp==AL) {
                 result=dirProp;
@@ -436,13 +436,13 @@
     UBool isDefaultLevel=IS_DEFAULT_LEVEL(pBiDi->paraLevel);
     /* for inverse BiDi, the default para level is set to RTL if there is a
        strong R or AL character at either end of the text                            */
-    UBool isDefaultLevelInverse=isDefaultLevel && (UBool)
-            (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT ||
-             pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL);
+    UBool isDefaultLevelInverse = isDefaultLevel && static_cast<UBool>(
+            pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_LIKE_DIRECT ||
+            pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL);
     int32_t lastArabicPos=-1;
     int32_t controlCount=0;
-    UBool removeBiDiControls = (UBool)(pBiDi->reorderingOptions &
-                                       UBIDI_OPTION_REMOVE_CONTROLS);
+    UBool removeBiDiControls =
+        static_cast<UBool>(pBiDi->reorderingOptions & UBIDI_OPTION_REMOVE_CONTROLS);
 
     enum State {
          NOT_SEEKING_STRONG,            /* 0: not contextual paraLevel, not after FSI */
@@ -676,7 +676,7 @@
     bd->isoRuns[0].level=GET_PARALEVEL(pBiDi, 0);
     UBiDiLevel t = GET_PARALEVEL(pBiDi, 0) & 1;
     bd->isoRuns[0].lastStrong = bd->isoRuns[0].lastBase = t;
-    bd->isoRuns[0].contextDir = (UBiDiDirection)t;
+    bd->isoRuns[0].contextDir = static_cast<UBiDiDirection>(t);
     bd->isoRuns[0].contextPos=0;
     if(pBiDi->openingsMemory) {
         bd->openings=pBiDi->openingsMemory;
@@ -696,7 +696,7 @@
     bd->isoRuns[0].limit=0;
     bd->isoRuns[0].level=level;
     bd->isoRuns[0].lastStrong=bd->isoRuns[0].lastBase=level&1;
-    bd->isoRuns[0].contextDir=(UBiDiDirection)(level&1);
+    bd->isoRuns[0].contextDir = static_cast<UBiDiDirection>(level & 1);
     bd->isoRuns[0].contextPos=0;
 }
 
@@ -713,8 +713,8 @@
     pLastIsoRun->limit=pLastIsoRun->start;
     pLastIsoRun->level=embeddingLevel;
     pLastIsoRun->lastStrong=pLastIsoRun->lastBase=contextLevel&1;
-    pLastIsoRun->contextDir=(UBiDiDirection)(contextLevel&1);
-    pLastIsoRun->contextPos=(UBiDiDirection)lastCcPos;
+    pLastIsoRun->contextDir = static_cast<UBiDiDirection>(contextLevel & 1);
+    pLastIsoRun->contextPos = static_cast<UBiDiDirection>(lastCcPos);
 }
 
 /* LRI or RLI */
@@ -729,7 +729,7 @@
     pLastIsoRun->start=pLastIsoRun->limit=lastLimit;
     pLastIsoRun->level=level;
     pLastIsoRun->lastStrong=pLastIsoRun->lastBase=level&1;
-    pLastIsoRun->contextDir=(UBiDiDirection)(level&1);
+    pLastIsoRun->contextDir = static_cast<UBiDiDirection>(level & 1);
     pLastIsoRun->contextPos=0;
 }
 
@@ -803,7 +803,7 @@
     UBool stable;
     DirProp newProp;
     pOpening=&bd->openings[openIdx];
-    direction=(UBiDiDirection)(pLastIsoRun->level&1);
+    direction = static_cast<UBiDiDirection>(pLastIsoRun->level & 1);
     stable=true;            /* assume stable until proved otherwise */
 
     /* The stable flag is set when brackets are paired and their
@@ -896,7 +896,7 @@
                 break;
             }
             pLastIsoRun->lastBase=ON;
-            pLastIsoRun->contextDir=(UBiDiDirection)newProp;
+            pLastIsoRun->contextDir = static_cast<UBiDiDirection>(newProp);
             pLastIsoRun->contextPos=position;
             level=bd->pBiDi->levels[position];
             if(level&UBIDI_LEVEL_OVERRIDE) {    /* X4, X5 */
@@ -944,7 +944,7 @@
             dirProps[position]=newProp;
         pLastIsoRun->lastBase=newProp;
         pLastIsoRun->lastStrong=newProp;
-        pLastIsoRun->contextDir=(UBiDiDirection)newProp;
+        pLastIsoRun->contextDir = static_cast<UBiDiDirection>(newProp);
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp<=R || dirProp==AL) {
@@ -951,7 +951,7 @@
         newProp= static_cast<DirProp>(DIR_FROM_STRONG(dirProp));
         pLastIsoRun->lastBase=dirProp;
         pLastIsoRun->lastStrong=dirProp;
-        pLastIsoRun->contextDir=(UBiDiDirection)newProp;
+        pLastIsoRun->contextDir = static_cast<UBiDiDirection>(newProp);
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp==EN) {
@@ -960,7 +960,7 @@
             newProp=L;                  /* W7 */
             if(!bd->isNumbersSpecial)
                 dirProps[position]=ENL;
-            pLastIsoRun->contextDir=(UBiDiDirection)L;
+            pLastIsoRun->contextDir = static_cast<UBiDiDirection>(L);
             pLastIsoRun->contextPos=position;
         }
         else {
@@ -969,7 +969,7 @@
                 dirProps[position]=AN;  /* W2 */
             else
                 dirProps[position]=ENR;
-            pLastIsoRun->contextDir=(UBiDiDirection)R;
+            pLastIsoRun->contextDir = static_cast<UBiDiDirection>(R);
             pLastIsoRun->contextPos=position;
         }
     }
@@ -976,7 +976,7 @@
     else if(dirProp==AN) {
         newProp=R;                      /* N0 */
         pLastIsoRun->lastBase=AN;
-        pLastIsoRun->contextDir=(UBiDiDirection)R;
+        pLastIsoRun->contextDir = static_cast<UBiDiDirection>(R);
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp==NSM) {
@@ -1177,10 +1177,10 @@
                 levels[i]=previousLevel;
                 if (dirProp==LRE || dirProp==LRO)
                     /* least greater even level */
-                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1));
+                    newLevel = static_cast<UBiDiLevel>((embeddingLevel + 2) & ~(UBIDI_LEVEL_OVERRIDE | 1));
                 else
                     /* least greater odd level */
-                    newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1);
+                    newLevel = static_cast<UBiDiLevel>((NO_OVERRIDE(embeddingLevel) + 1) | 1);
                 if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 &&
                                                          overflowEmbeddingCount==0) {
                     lastCcPos=i;
@@ -1213,7 +1213,7 @@
                 if(stackLast>0 && stack[stackLast]<ISOLATE) {   /* not an isolate entry */
                     lastCcPos=i;
                     stackLast--;
-                    embeddingLevel=(UBiDiLevel)stack[stackLast];
+                    embeddingLevel = static_cast<UBiDiLevel>(stack[stackLast]);
                 }
                 break;
             case LRI:
@@ -1229,10 +1229,10 @@
                 /* (X5a, X5b) */
                 if(dirProp==LRI)
                     /* least greater even level */
-                    newLevel=(UBiDiLevel)((embeddingLevel+2)&~(UBIDI_LEVEL_OVERRIDE|1));
+                    newLevel = static_cast<UBiDiLevel>((embeddingLevel + 2) & ~(UBIDI_LEVEL_OVERRIDE | 1));
                 else
                     /* least greater odd level */
-                    newLevel=(UBiDiLevel)((NO_OVERRIDE(embeddingLevel)+1)|1);
+                    newLevel = static_cast<UBiDiLevel>((NO_OVERRIDE(embeddingLevel) + 1) | 1);
                 if(newLevel<=UBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount==0 &&
                                                          overflowEmbeddingCount==0) {
                     flags|=DIRPROP_FLAG(dirProp);
@@ -1276,7 +1276,7 @@
                 } else
                     /* make it WS so that it is handled by adjustWSLevels() */
                     dirProps[i]=WS;
-                embeddingLevel=(UBiDiLevel)stack[stackLast]&~ISOLATE;
+                embeddingLevel = static_cast<UBiDiLevel>(stack[stackLast]) & ~ISOLATE;
                 flags|=(DIRPROP_FLAG(ON)|DIRPROP_FLAG_LR(embeddingLevel));
                 previousLevel=embeddingLevel;
                 levels[i]=NO_OVERRIDE(embeddingLevel);
@@ -1315,7 +1315,7 @@
                 previousLevel=embeddingLevel;
                 levels[i]=embeddingLevel;
                 if(!bracketProcessChar(&bracketData, i))
-                    return (UBiDiDirection)-1;
+                    return static_cast<UBiDiDirection>(-1);
                 /* the dirProp may have been changed in bracketProcessChar() */
                 flags|=DIRPROP_FLAG(dirProps[i]);
                 break;
@@ -1386,7 +1386,7 @@
                 } else {
                     // Treat explicit level 0 as a wildcard for the paragraph level.
                     // Avoid making the caller guess what the paragraph level would be.
-                    level = (UBiDiLevel)currentParaLevel;
+                    level = static_cast<UBiDiLevel>(currentParaLevel);
                     levels[i] = level | overrideFlag;
                 }
             } else {
@@ -1868,7 +1868,7 @@
     int32_t start0, k;
 
     start0=start;                           /* save original start position */
-    oldStateSeq=(uint8_t)pLevState->state;
+    oldStateSeq = static_cast<uint8_t>(pLevState->state);
     cell=(*pImpTab)[oldStateSeq][_prop];
     pLevState->state=GET_STATE(cell);       /* isolate the new state */
     actionSeq=(*pImpAct)[GET_ACTION(cell)]; /* isolate the action */
@@ -2076,7 +2076,7 @@
     for(i=length; i>0; ) {
         /* i is decremented by U16_PREV */
         U16_PREV(text, 0, i, uchar);
-        dirProp=(DirProp)ubidi_getCustomizedClass(pBiDi, uchar);
+        dirProp = static_cast<DirProp>(ubidi_getCustomizedClass(pBiDi, uchar));
         if(dirProp==L) {
             return DirProp_L;
         }
@@ -2104,7 +2104,7 @@
     for(i=0; i<length; ) {
         /* i is incremented by U16_NEXT */
         U16_NEXT(text, i, length, uchar);
-        dirProp=(DirProp)ubidi_getCustomizedClass(pBiDi, uchar);
+        dirProp = static_cast<DirProp>(ubidi_getCustomizedClass(pBiDi, uchar));
         if(dirProp==L) {
             return DirProp_L;
         }
@@ -2142,10 +2142,10 @@
      * actions) and different levels state tables (maybe very similar to the
      * LTR corresponding ones.
      */
-    inverseRTL=(UBool)
-        ((start<pBiDi->lastArabicPos) && (GET_PARALEVEL(pBiDi, start) & 1) &&
-         (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT  ||
-          pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL));
+    inverseRTL =
+        static_cast<UBool>((start < pBiDi->lastArabicPos) && (GET_PARALEVEL(pBiDi, start) & 1) &&
+                           (pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_LIKE_DIRECT ||
+                            pBiDi->reorderingMode == UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL));
 
     /* initialize for property and levels state tables */
     levState.startL2EN=-1;              /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
@@ -2152,8 +2152,8 @@
     levState.lastStrongRTL=-1;          /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
     levState.runStart=start;
     levState.runLevel=pBiDi->levels[start];
-    levState.pImpTab=(const ImpTab*)((pBiDi->pImpTabPair)->pImpTab)[levState.runLevel&1];
-    levState.pImpAct=(const ImpAct*)((pBiDi->pImpTabPair)->pImpAct)[levState.runLevel&1];
+    levState.pImpTab = static_cast<const ImpTab*>(((pBiDi->pImpTabPair)->pImpTab)[levState.runLevel & 1]);
+    levState.pImpAct = static_cast<const ImpAct*>(((pBiDi->pImpTabPair)->pImpAct)[levState.runLevel & 1]);
     if(start==0 && pBiDi->proLength>0) {
         DirProp lastStrong=lastL_R_AL(pBiDi);
         if(lastStrong!=DirProp_ON) {
@@ -2391,8 +2391,8 @@
         goto cleanup3;
     }
     visualMap=runsOnlyMemory;
-    visualText=(char16_t *)&visualMap[length];
-    saveLevels=(UBiDiLevel *)&visualText[length];
+    visualText = reinterpret_cast<char16_t*>(&visualMap[length]);
+    saveLevels = reinterpret_cast<UBiDiLevel*>(&visualText[length]);
     saveOptions=pBiDi->reorderingOptions;
     if(saveOptions & UBIDI_OPTION_INSERT_MARKS) {
         pBiDi->reorderingOptions&=~UBIDI_OPTION_INSERT_MARKS;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -51,7 +51,7 @@
     (void)end;
     (void)value;
     /* add the start code point to the USet */
-    const USetAdder *sa=(const USetAdder *)context;
+    const USetAdder* sa = static_cast<const USetAdder*>(context);
     sa->add(sa->set, start);
     return true;
 }
@@ -139,7 +139,7 @@
 U_CFUNC UBool
 ubidi_isMirrored(UChar32 c) {
     uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c);
-    return (UBool)UBIDI_GET_FLAG(props, UBIDI_IS_MIRRORED_SHIFT);
+    return UBIDI_GET_FLAG(props, UBIDI_IS_MIRRORED_SHIFT);
 }
 
 static UChar32
@@ -183,13 +183,13 @@
 U_CFUNC UBool
 ubidi_isBidiControl(UChar32 c) {
     uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c);
-    return (UBool)UBIDI_GET_FLAG(props, UBIDI_BIDI_CONTROL_SHIFT);
+    return UBIDI_GET_FLAG(props, UBIDI_BIDI_CONTROL_SHIFT);
 }
 
 U_CFUNC UBool
 ubidi_isJoinControl(UChar32 c) {
     uint16_t props=UTRIE2_GET16(&ubidi_props_singleton.trie, c);
-    return (UBool)UBIDI_GET_FLAG(props, UBIDI_JOIN_CONTROL_SHIFT);
+    return UBIDI_GET_FLAG(props, UBIDI_JOIN_CONTROL_SHIFT);
 }
 
 U_CFUNC UJoiningType

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -9,681 +9,694 @@
 
 #ifdef INCLUDED_FROM_UBIDI_PROPS_C
 
-static const UVersionInfo ubidi_props_dataVersion={0xf,1,0,0};
+static const UVersionInfo ubidi_props_dataVersion={0x10,0,0,0};
 
-static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6ba0,0x65b0,0x28,0x620,0x8cc,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6702b6};
+static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6f08,0x6778,0x28,0x620,0x8cb,0x10ac0,0x10ec5,0,0,0,0,0,0,0,0x6802b6};
 
-static const uint16_t ubidi_props_trieIndex[13008]={
-0x387,0x38f,0x397,0x39f,0x3b7,0x3bf,0x3c7,0x3cf,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,
-0x3a7,0x3af,0x3a7,0x3af,0x3d5,0x3dd,0x3e5,0x3ed,0x3f5,0x3fd,0x3f9,0x401,0x409,0x411,0x40c,0x414,
-0x3a7,0x3af,0x3a7,0x3af,0x41c,0x424,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x42a,0x432,0x43a,0x442,
-0x44a,0x452,0x45a,0x462,0x468,0x470,0x478,0x480,0x488,0x490,0x496,0x49e,0x4a6,0x4ae,0x4b6,0x4be,
-0x4ca,0x4c6,0x4d2,0x4da,0x4e2,0x4f2,0x4f9,0x4ea,0x501,0x503,0x50b,0x513,0x51b,0x51c,0x524,0x52c,
-0x534,0x51c,0x53c,0x541,0x534,0x51c,0x549,0x551,0x51b,0x559,0x561,0x513,0x569,0x3a7,0x571,0x575,
-0x57d,0x57f,0x587,0x58f,0x51b,0x597,0x59f,0x513,0x41e,0x5a3,0x524,0x513,0x51b,0x3a7,0x5ab,0x3a7,
-0x3a7,0x5b1,0x5b9,0x3a7,0x3a7,0x5bd,0x5c5,0x3a7,0x5c9,0x5d0,0x3a7,0x5d8,0x5e0,0x5e7,0x568,0x3a7,
-0x3a7,0x5ef,0x5f7,0x5ff,0x607,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x60f,0x3a7,0x617,0x3a7,0x3a7,0x3a7,
-0x61f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x627,0x3a7,0x3a7,0x3a7,0x62f,0x528,0x528,0x528,0x3a7,0x635,0x63d,0x617,
-0x653,0x645,0x645,0x65b,0x662,0x64b,0x3a7,0x3a7,0x3a7,0x66a,0x672,0x3a7,0x3a7,0x3a7,0x674,0x67c,
-0x684,0x3a7,0x68b,0x693,0x3a7,0x69b,0x4fe,0x3a7,0x558,0x6a3,0x569,0x6ab,0x41e,0x6b3,0x3a7,0x6ba,
-0x3a7,0x6bf,0x3a7,0x3a7,0x3a7,0x3a7,0x6c5,0x6cd,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0x3f5,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x6d4,0x6dc,0x6e0,
-0x6f8,0x6fe,0x6e8,0x6f0,0x706,0x70e,0x712,0x5ea,0x71a,0x722,0x72a,0x3a7,0x732,0x67c,0x67c,0x67c,
-0x742,0x74a,0x752,0x75a,0x75f,0x767,0x76f,0x73a,0x777,0x77f,0x3a7,0x785,0x78c,0x67c,0x67c,0x67c,
-0x67c,0x595,0x792,0x67c,0x79a,0x3a7,0x3a7,0x679,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,
-0x67c,0x67c,0x67c,0x67c,0x67c,0x7a2,0x67c,0x67c,0x67c,0x67c,0x67c,0x7a8,0x67c,0x67c,0x7b0,0x7b8,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c,0x67c,0x67c,0x7c8,0x7d0,0x7d8,0x7c0,
-0x7e8,0x7f0,0x7f8,0x7ff,0x806,0x80e,0x812,0x7e0,0x67c,0x67c,0x67c,0x81a,0x820,0x67c,0x67c,0x826,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x82e,0x3a7,0x3a7,0x3a7,0x836,0x3a7,0x3a7,0x3a7,0x3f5,
-0x83e,0x846,0x849,0x3a7,0x851,0x67c,0x67c,0x67f,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x858,0x85e,
-0x86e,0x866,0x3a7,0x3a7,0x876,0x61f,0x3a7,0x3ce,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x87e,
-0x3dc,0x3a7,0x85e,0x882,0x3a7,0x88a,0x892,0x3a7,0x3a7,0x3a7,0x3a7,0x896,0x3a7,0x3a7,0x674,0x3cd,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x85e,0x67c,0x595,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x89d,0x3a7,0x3a7,0x8a2,0x8aa,0x3a7,0x3a7,0x5cb,0x67c,0x673,0x3a7,0x3a7,0x8b2,0x3a7,0x3a7,0x3a7,
-0x8ba,0x8c1,0x645,0x8c9,0x3a7,0x3a7,0x5a1,0x8d1,0x3a7,0x8d9,0x8e0,0x3a7,0x501,0x8e5,0x3a7,0x51a,
-0x3a7,0x8ed,0x8f5,0x51c,0x3a7,0x8f9,0x51b,0x901,0x3a7,0x3a7,0x3a7,0x907,0x3a7,0x3a7,0x3a7,0x90e,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x922,0x916,0x91a,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,
-0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x92a,0x932,0x4a6,0x4a6,0x4a6,0x937,0x93b,
-0x943,0x94b,0x94f,0x957,0x4a6,0x4a6,0x4a6,0x95b,0x963,0x397,0x96b,0x973,0x3a7,0x3a7,0x3a7,0x97b,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0xe9c,0xe9c,0xedc,0xf1c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xf54,0xf94,0xfd4,0xfe4,0x1024,0x1030,
-0xe9c,0xe9c,0x1070,0xe9c,0xe9c,0xe9c,0x10a8,0x10e8,0x1128,0x1168,0x11a0,0x11e0,0x1220,0x1258,0x1298,0x12d8,
-0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0xb3f,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb68,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xba8,0x1a0,0xbce,0xc09,0xc49,0xc89,0xcc9,0xd09,0xd49,
+static const uint16_t ubidi_props_trieIndex[13236]={
+0x395,0x39d,0x3a5,0x3ad,0x3c5,0x3cd,0x3d5,0x3dd,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd,
+0x3b5,0x3bd,0x3b5,0x3bd,0x3e3,0x3eb,0x3f3,0x3fb,0x403,0x40b,0x407,0x40f,0x417,0x41f,0x41a,0x422,
+0x3b5,0x3bd,0x3b5,0x3bd,0x42a,0x432,0x3b5,0x3bd,0x3b5,0x3bd,0x3b5,0x3bd,0x438,0x440,0x448,0x450,
+0x458,0x460,0x468,0x470,0x476,0x47e,0x486,0x48e,0x496,0x49e,0x4a4,0x4ac,0x4b4,0x4bc,0x4c4,0x4cc,
+0x4d8,0x4d4,0x4e0,0x4e8,0x4f0,0x500,0x507,0x4f8,0x50f,0x511,0x519,0x521,0x529,0x52a,0x532,0x53a,
+0x542,0x52a,0x54a,0x54f,0x542,0x52a,0x557,0x55f,0x529,0x567,0x56f,0x521,0x577,0x3b5,0x57f,0x583,
+0x58b,0x58d,0x595,0x59d,0x529,0x5a5,0x5ad,0x521,0x42c,0x5b1,0x532,0x521,0x529,0x3b5,0x5b9,0x3b5,
+0x3b5,0x5bf,0x5c7,0x3b5,0x3b5,0x5cb,0x5d3,0x3b5,0x5d7,0x5de,0x3b5,0x5e6,0x5ee,0x5f5,0x576,0x3b5,
+0x3b5,0x5fd,0x605,0x60d,0x615,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x61d,0x3b5,0x625,0x3b5,0x3b5,0x3b5,
+0x62d,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x635,0x3b5,0x3b5,0x3b5,0x63d,0x536,0x536,0x536,0x3b5,0x643,0x64b,0x625,
+0x661,0x653,0x653,0x669,0x670,0x659,0x3b5,0x3b5,0x3b5,0x678,0x680,0x3b5,0x3b5,0x3b5,0x682,0x68a,
+0x692,0x3b5,0x699,0x6a1,0x3b5,0x6a9,0x50c,0x3b5,0x566,0x6b1,0x577,0x6b9,0x42c,0x6c1,0x3b5,0x6c8,
+0x3b5,0x6cd,0x3b5,0x3b5,0x3b5,0x3b5,0x6d3,0x6db,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x403,0x403,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x6e2,0x6ea,0x6ee,
+0x706,0x70c,0x6f6,0x6fe,0x714,0x71c,0x720,0x5f8,0x728,0x730,0x738,0x3b5,0x740,0x68a,0x68a,0x68a,
+0x750,0x758,0x760,0x768,0x76d,0x775,0x77d,0x748,0x785,0x78d,0x3b5,0x793,0x79a,0x68a,0x68a,0x68a,
+0x68a,0x790,0x7a0,0x68a,0x7a8,0x3b5,0x3b5,0x687,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,
+0x68a,0x68a,0x68a,0x68a,0x68a,0x7b0,0x68a,0x68a,0x68a,0x68a,0x68a,0x7b6,0x68a,0x68a,0x7be,0x7c6,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x7d6,0x7de,0x7e6,0x7ce,
+0x7f6,0x7fe,0x806,0x80d,0x814,0x81c,0x820,0x7ee,0x68a,0x68a,0x68a,0x828,0x82e,0x68a,0x68a,0x834,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x83c,0x3b5,0x3b5,0x3b5,0x844,0x3b5,0x3b5,0x3b5,0x403,
+0x84c,0x854,0x857,0x3b5,0x85f,0x68a,0x68a,0x68d,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x866,0x86c,
+0x87c,0x874,0x3b5,0x3b5,0x884,0x62d,0x3b5,0x3dc,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x88c,
+0x3ea,0x3b5,0x86c,0x890,0x3b5,0x898,0x8a0,0x3b5,0x3b5,0x3b5,0x3b5,0x8a4,0x3b5,0x3b5,0x682,0x3db,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x86c,0x68a,0x5a3,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x8ab,0x3b5,0x3b5,0x8b0,0x8b8,0x3b5,0x3b5,0x5d9,0x68a,0x681,0x3b5,0x3b5,0x8c0,0x3b5,0x3b5,0x3b5,
+0x8c8,0x8cf,0x653,0x8d7,0x3b5,0x3b5,0x5af,0x8df,0x3b5,0x8e7,0x8ee,0x3b5,0x50f,0x8f3,0x3b5,0x528,
+0x3b5,0x8fb,0x903,0x52a,0x3b5,0x907,0x529,0x90f,0x3b5,0x3b5,0x3b5,0x915,0x3b5,0x3b5,0x3b5,0x91c,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x930,0x924,0x928,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,
+0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x938,0x940,0x4b4,0x4b4,0x4b4,0x945,0x949,
+0x951,0x959,0x95d,0x965,0x4b4,0x4b4,0x4b4,0x969,0x971,0x3a5,0x979,0x981,0x3b5,0x3b5,0x3b5,0x989,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xed4,0xed4,0xf14,0xf54,0xed4,0xed4,0xed4,0xed4,0xed4,0xed4,0xf8c,0xfcc,0x100c,0x101c,0x105c,0x1068,
+0xed4,0xed4,0x10a8,0xed4,0xed4,0xed4,0x10e0,0x1120,0x1160,0x11a0,0x11d8,0x1218,0x1258,0x1290,0x12d0,0x1310,
+0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0xb3f,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb77,0xba0,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xbe0,0x1a0,0xc06,0xc41,0xc81,0xcc1,0xd01,0xd41,0xd81,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
-0xdc9,0xdd9,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
+0xe01,0xe11,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,
-0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x983,0x3a7,0x67c,0x67c,0x98b,0x61f,0x3a7,0x514,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x993,0x3a7,0x3a7,0x3a7,0x99a,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9a2,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,
-0x9aa,0x9ae,0x43c,0x43c,0x43c,0x43c,0x9be,0x9b6,0x43c,0x9c6,0x43c,0x43c,0x9ce,0x9d4,0x43c,0x43c,
-0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9e4,0x9dc,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,
-0x43c,0x43c,0x43c,0x9ec,0x43c,0x9f4,0x4a6,0x9fc,0x43c,0xa04,0xa0b,0xa11,0xa19,0xa1d,0xa25,0x43c,
-0x51b,0xa2d,0xa34,0xa3b,0x41e,0xa43,0x569,0x3a7,0x501,0xa4a,0x3a7,0xa50,0x41e,0xa55,0xa5d,0x3a7,
-0x3a7,0xa62,0x51b,0x3a7,0x3a7,0x3a7,0x836,0xa6a,0x41e,0x5a3,0x57e,0xa71,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0xa2d,0xa79,0x3a7,0x3a7,0xa81,0xa89,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa8d,0xa95,0x3a7,
-0x3a7,0xa9d,0x57e,0xaa5,0x3a7,0xaab,0x3a7,0x3a7,0x60f,0xab3,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0xab8,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xabf,0xac7,0x3a7,0x3a7,0x3a7,0xaca,0x57e,0xad2,
-0xad6,0xade,0x3a7,0xae5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0xaec,0x3a7,0x3a7,0xafa,0xaf4,0x3a7,0x3a7,0x3a7,0xb02,0xb0a,0x3a7,0xb0e,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x5a5,0x41e,0x99a,0xb16,0x3a7,0x3a7,0x3a7,0xb23,0xb1e,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0xb2b,0xb33,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb39,
-0x3a7,0xb3f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0xa51,0x3a7,0xb45,0x3a7,0x3a7,0xb4d,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x535,0xb55,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb5d,0x500,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0xb65,0xb6d,0xb73,0x3a7,0xb79,0x67c,0x67c,0xb81,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x67c,0x67c,0xb89,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb8f,
-0x3a7,0xb96,0x3a7,0xb92,0x3a7,0xb99,0x3a7,0xba1,0xba5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xbad,0x3f5,0xbb4,0xbbb,0xbc3,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xbcb,0xbd3,0x3a7,0x3a7,0xa51,0x3a7,0x3a7,
-0x3a7,0x3a7,0xb3f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa7d,0x3a7,
-0xbd8,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0xbe0,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0xbe8,
-0x43c,0xbf0,0xbf0,0xbf7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,
-0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x91a,0x4a6,0x4a6,0x43c,
-0x43c,0x4a6,0x4a6,0xbff,0x43c,0x43c,0x43c,0x43c,0x43c,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,
-0xc07,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x67c,0xc0f,0x67c,0x67c,0x67f,0xc14,0xc18,
-0x858,0xc20,0x3c9,0x3a7,0xc26,0x3a7,0xc2b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x783,0x3a7,0x3a7,0x3a7,
-0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,
-0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0xc33,
-0x98b,0x67c,0x67c,0x67c,0xc3a,0x67c,0x67c,0xc41,0xc49,0xc0f,0x67c,0xc51,0x67c,0xc59,0xc5e,0x3a7,
-0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67f,0xc66,0xc6f,0xc73,0xc7b,
-0xc6b,0x67c,0x67c,0x67c,0x67c,0xc83,0x67c,0x792,0xc8b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc92,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,
-0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc92,0xca2,0xc9a,0xc9a,0xc9a,0xca3,0xca3,0xca3,
-0xca3,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0xcab,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,
-0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,
-0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,
-0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,
-0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0xca3,0x386,0x386,0x386,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4,
-4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,
-2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,
+0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xdc1,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x991,0x3b5,0x68a,0x68a,0x999,0x62d,0x3b5,0x522,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x9a1,0x3b5,0x3b5,0x3b5,0x9a8,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x9b0,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,
+0x9b8,0x9bc,0x44a,0x44a,0x44a,0x44a,0x9cc,0x9c4,0x44a,0x9d4,0x44a,0x44a,0x9dc,0x9e2,0x44a,0x44a,
+0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x9f2,0x9ea,0xa02,0x9fa,0x44a,0x44a,0x44a,0x44a,
+0x44a,0x44a,0x44a,0xa0a,0x44a,0xa12,0xa22,0xa1a,0x44a,0xa2a,0xa31,0xa37,0xa3f,0xa43,0xa4b,0x44a,
+0x529,0xa53,0xa5a,0xa61,0x42c,0xa69,0x577,0x3b5,0x50f,0xa70,0x3b5,0xa76,0x42c,0xa7b,0xa83,0x3b5,
+0x3b5,0xa88,0x529,0x3b5,0x3b5,0x3b5,0x844,0xa90,0x42c,0x5b1,0x58c,0xa97,0x3b5,0xa9d,0xaa5,0x542,
+0x3b5,0xa53,0xaad,0x3b5,0x3b5,0xab5,0xabd,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xac1,0xac9,0x3b5,
+0x3b5,0xad1,0x58c,0xad9,0x3b5,0xadf,0x3b5,0x3b5,0xae5,0xaed,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xaf2,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xaf9,0xb01,0x3b5,0x3b5,0x3b5,0xb04,0x58c,0xb0c,
+0xb10,0xb18,0x3b5,0xb1f,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xb26,0x3b5,0x3b5,0xb34,0xb2e,0x3b5,0x3b5,0x3b5,0xb3c,0xae3,0x3b5,0xb44,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x5b3,0x42c,0x9a8,0xaae,0x3b5,0x3b5,0x3b5,0xb51,0xb4c,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xb59,0xb61,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x8b8,
+0xb69,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xb6d,0x3b5,0xb73,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xa77,0x3b5,0xb79,0x3b5,0x3b5,0xb81,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x543,0xb89,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x866,0xb8d,0x68a,0x68a,
+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68d,0x3b5,0x3b5,0x403,0xb95,
+0x50e,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xb9d,0xba5,0xbab,0x3b5,
+0xbb1,0x68a,0x68a,0xbb9,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0xbc1,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xbc9,0x3dc,0xbd0,0xbd6,0xbcc,0x3d7,0xbd3,0xbc7,0xbde,
+0xbe2,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x403,0xbea,0x403,0xbf1,0xbf8,0xc00,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0xc08,0xc10,0x3b5,0x3b5,0xa77,0x3b5,0x3b5,0x3b5,0x3b5,0xb73,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xab1,0x3b5,0xc15,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0xc1d,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xc22,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0xc2a,0x44a,0xc32,0xc32,0xc39,0x44a,0x44a,0x44a,0x44a,
+0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,
+0x44a,0x44a,0x44a,0x44a,0x928,0x4b4,0x4b4,0x44a,0x44a,0x4b4,0x4b4,0xa26,0x44a,0x44a,0x44a,0x44a,
+0x44a,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0x4b4,0xc41,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,0x44a,
+0x44a,0x68a,0xc49,0x68a,0x68a,0x68d,0xc4e,0xc52,0x866,0xc5a,0x3d7,0x3b5,0xc60,0x3b5,0xc65,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x791,0x3b5,0x3b5,0x3b5,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,
+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,
+0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0xc6d,0x999,0x68a,0x68a,0x68a,0xc74,0x68a,0x68a,0xc7b,
+0xc83,0xc49,0x68a,0xc8b,0x68a,0xc93,0xc98,0x681,0x3b5,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,
+0x68a,0x68a,0x68a,0x68d,0xca0,0xca8,0x68a,0xcaf,0xcb7,0x68a,0x68a,0x68a,0x68a,0xcbf,0x68a,0x68a,
+0xcc4,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xccb,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,0x3b5,
+0xccb,0xcdb,0xcd3,0xcd3,0xcd3,0xcdc,0xcdc,0xcdc,0xcdc,0x403,0x403,0x403,0x403,0x403,0x403,0x403,
+0xce4,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,
+0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,
+0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,
+0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,0xcdc,
+0xcdc,0x394,0x394,0x394,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,8,7,8,
+9,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+7,7,7,8,9,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3,
+6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa,
+0x500a,0xa,0xd00a,0xa,0xa,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,0x510a,
+0xa,0xd20a,0xa,0xa,0xa,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,0x510a,
+0xa,0xd20a,0xa,0x12,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,0x510a,0xa,0xd20a,0xa,0xa,0xa,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,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x12,0x12,0x12,0x12,0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,6,0xa,4,4,4,4,0xa,0xa,0xa,0xa,0,0x900a,
+0xa,0xb2,0xa,0xa,4,4,2,2,0xa,0,0xa,0xa,0xa,2,0,0x900a,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xa,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,0xa,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,0x12,0x12,0x12,0x12,
-0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4,
-4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2,
-0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xa,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,0xa,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,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,
-0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0,0,0,0,0,
-0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
+0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0,
+0xa,0xa,0,0xa,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,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,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,0xa,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0xa,0,0,0xa,0xa,4,
+1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,
+1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,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,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,5,5,5,5,5,5,0xa,0xa,
-0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,
-0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5,
-5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+5,5,5,5,5,5,0xa,0xa,0xd,4,4,0xd,6,0xd,0xa,0xa,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,
+0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,
+0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+5,5,5,5,5,5,5,5,5,5,4,5,5,0xd,0x4d,0x4d,
+0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,
-0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,
-2,2,2,2,2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,
-0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,
-0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,
-0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,
+0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d,2,2,2,2,2,2,2,2,
+2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad,0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,
+0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,
-1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+1,1,1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,
 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,
-0xa,0xa,0x21,1,1,0xb1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,
-1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,
-0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,
-0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x81,0x81,
-0x81,0xb1,0xb1,0xb1,1,1,1,1,0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d,
-0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
-0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x2d,0x2d,0x2d,0x4d,0xd,
-0xd,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0xd,5,5,0xd,0xd,0xd,0xd,0xd,0xd,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,
+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,0xa,0xa,0x21,1,1,0xb1,1,1,
+0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,
+0x41,0x41,0x41,0x41,0x81,0x41,0x81,0x81,0x81,0xb1,0xb1,0xb1,1,1,1,1,
+0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d,0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x2d,0x2d,0x2d,0x4d,0xd,0xd,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0xd,
+5,5,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,
+0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-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,0xb1,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,0xb1,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,4,0,0,0,0,0,0,0,4,0,0,0xb1,0,
-0,0xb1,0xb1,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,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,
-0,0xb1,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,0xb1,0,
+0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
 0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,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,
-0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,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,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,4,0xa,0,
-0,0,0,0,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
+0,0,0,4,0,0,0xb1,0,0,0xb1,0xb1,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,0xb1,0,0xb1,0xb1,0xb1,0,0,0,
-0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,
+0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,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,0xb1,0,0,0xa0,0,0,0,0,
-0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
+0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,
+0xb1,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,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,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,0xb1,0xb1,0,0,
+0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,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,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,
+0xb1,0,0,0xa0,0,0,0,0,0,0,0xa0,0,0,0,0,0,
+0xb1,0xb1,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,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,
+0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,
+0,0xb1,0xb1,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,0xb1,0xb1,0,0,
+0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,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,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0xa,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,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0,0,0,
+0,0,0,0,9,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,0x310a,
+0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,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,9,0,0,0,
+0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,4,0,0xb1,0,0,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4,
-0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,
+0xb1,0xb1,0x12,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0,
+0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,
+0xa,0,0,0,0xa,0xa,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,0,0xa,0xa,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,
+0xb1,0,0,0,0xb1,0xb1,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,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,
+0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2,
+2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,9,9,9,9,
+9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,
+4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+2,2,2,2,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,0,0,4,0,
+0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0,
+0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
+0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,
+0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,
+0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a,
+0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,
+0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x100a,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,
+0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa,
+0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,
+0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,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,0xa,0,0xa,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,
-0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,
-0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-2,0,0,0,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0,
-9,9,9,9,9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa,
-0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,
-2,2,3,3,0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,
-0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,
-0,0xa,0,0,0,0,4,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0xa,0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0,
-0,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,
-0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,
-0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,
-0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a,0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa,
-0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,
-0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,
-0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,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,0xa,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,
+0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,
+0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,
+0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,
+0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,
+0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,
+0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,
+0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,
+0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,
+0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,
+0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,
+0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,
+0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,
+0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,
+0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,
-0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
+0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,
-0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,
-0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a,
-0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,
-0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,
-0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa,
-0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,
-0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,
+0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+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,0xb1,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
+0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,
-0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,
+0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0,0,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0,0,0,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,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,0xb1,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
-0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,
-0xf20a,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xa,0,0,0,0,0,0xa,0xa,
-0,0,0,0,0,0xa,0xa,0xa,9,0xa,0xa,0xa,0xa,0,0,0,
-0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,
-0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0xa,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,
+0xa,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,
+9,0xa,0xa,0xa,0xa,0,0,0,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,
+0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa,0xa,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0xa,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0xa,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,0xb1,0,0,0,0xb1,0,
-0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,
-0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
-0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
-1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0,
+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,
+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,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0xa,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,0xb1,0,0,0,0xb1,0,0,0,0,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,4,4,0,0,0,0,0,0,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,
+0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0,0,0xb1,0,0,0,0,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0,
-0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,
-0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd,
+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,1,0xb1,1,
 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4,
-4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2,
-2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xa,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,
+0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa,
+0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3,
+6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa,
+0x500a,0xa,0xd00a,0xa,0xa,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,0x510a,
+0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,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,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,
-0xa,0xa,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,4,4,0xa,0xa,
-0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0,
+0,0,0,0,4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,
+0xa,0xa,0x12,0x12,0,0xa,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,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xb1,2,2,2,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0,0,0,0xb1,2,2,2,2,2,2,2,2,2,2,2,
 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,1,1,1,1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,
-1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xa,
+1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1,
-1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,
-1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,
-0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1,
+0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,
-0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1,
+0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81,
+0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-5,5,5,5,5,5,5,5,5,5,0xd,0xd,0xd,0xd,0xd,0xd,
-0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+1,1,1,1,1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,
+0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,5,5,5,5,5,5,5,5,
+5,5,0xd,0xd,0xd,0xd,0xd,0xd,0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,1,1,1,1,1,1,1,1,
+1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,
+5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,
-1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,
+1,1,1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,
-0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,
-0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x41,0x41,0x41,0x41,0x41,
-0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,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,0x41,1,0x41,0x41,0x81,0x81,0x81,1,0x41,0x81,0x81,0x41,
-0x41,0x81,0x41,0x41,1,0x41,0x81,0x81,0x41,1,1,1,1,0x81,0x41,0x61,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
+0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,
+0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0x41,0x41,0x41,0x41,
+0x81,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,
+0xb1,0xb1,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,0x41,1,0x41,0x41,
+0x81,0x81,0x81,1,0x41,0x81,0x81,0x41,0x41,0x81,0x41,0x41,1,0x41,0x81,0x81,
+0x41,1,1,1,1,0x81,0x41,0x61,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1,
-0,0,0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,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,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0xb1,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -698,41 +711,41 @@
 0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
 0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0,0xb1,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,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,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,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,
+0xb1,0,0xb1,0,0,0,0,0xb1,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,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0,0xa0,0xb1,0xb1,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,0xb1,0xb1,0xb1,0xb1,
-0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0,
-0xa0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
-0,0,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
+0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,
-0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0,0xb1,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,4,4,4,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa0,0xa0,0xa0,0xa0,
-0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xb1,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0,0,0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,
+4,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,
+0xa0,0xa0,0xa0,0xa0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -741,6 +754,7 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0xb2,0xb2,0xb2,0xb2,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,2,2,2,2,2,2,2,2,2,2,0,0,
 0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,
@@ -754,79 +768,80 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0xa,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,0x100a,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x100a,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,0x100a,0,0,0,0,0,0,0,0,
-0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+0,0,0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0,
+0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,
-0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
-0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,
+1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-2,2,2,2,2,2,2,2,2,2,2,0xa,0xa,0xa,0xa,0xa,
+1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
+0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,
+2,2,2,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,
+0,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
-2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,
+2,2,2,2,2,2,2,2,2,2,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,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
+0,0,0,0,0,0,0,0,0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,
 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,
 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0,0,0,0
 };
 
 static const uint32_t ubidi_props_mirrors[40]={
@@ -835,8 +850,8 @@
 0x16029b8,0x4029f5,0x1802ade,0x1c02ae3,0x1a02ae4,0x1e02ae5,0xe02aee,0x602bfe
 };
 
-static const uint8_t ubidi_props_jgArray[684]={
-0x2d,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6,
+static const uint8_t ubidi_props_jgArray[683]={
+0x68,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6,
 6,0x1f,0x1f,0x23,0x23,0x21,0x21,0x28,0x28,1,1,0xb,0xb,0x37,0x37,0x37,
 0,9,0x1d,0x13,0x16,0x18,0x1a,0x10,0x2c,0x2d,0x2d,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -878,10 +893,10 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 4,4,0xd,0x28,9,0x1d,0x16,0x18,0x2d,0x2d,0x1f,0x2c,0x39,0,6,0x21,
 0xb,0x55,0x1f,1,0x13,0x1d,4,4,4,0x1f,0x2d,0x56,0x58,0x57,4,4,
-4,0xd,0xb,1,0x58,0xd,0xd,0x16,0xb,0,0,0
+4,0xd,0xb,1,0x58,0xd,0xd,0x16,0xb,0,0
 };
 
-static const uint8_t ubidi_props_jgArray2[612]={
+static const uint8_t ubidi_props_jgArray2[1029]={
 0x3a,0x3c,0x3c,0x40,0x40,0x3d,0,0x52,0,0x54,0x54,0,0,0x41,0x4f,0x53,
 0x43,0x43,0x43,0x44,0x3e,0x50,0x45,0x46,0x4c,0x3b,0x3b,0x48,0x48,0x4b,0x49,0x49,
 0x49,0x4a,0,0,0x4d,0,0,0,0,0,0,0x47,0x3f,0x4e,0x51,0x42,
@@ -920,7 +935,33 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0x65,0,0,0,0,0,0,0x65,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0x64,0,0,0x65,0,0x64,0,
-0x64,0,0,0x64
+0x64,0,0,0x64,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,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,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,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,
+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,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,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,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,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,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,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,6,0x28,0x13
 };
 
 static const UBiDiProps ubidi_props_singleton={
@@ -931,16 +972,16 @@
   ubidi_props_jgArray2,
   {
     ubidi_props_trieIndex,
-    ubidi_props_trieIndex+3612,
+    ubidi_props_trieIndex+3668,
     nullptr,
-    3612,
-    9396,
+    3668,
+    9568,
     0x1a0,
-    0xe9c,
+    0xed4,
     0x0,
     0x0,
     0x110000,
-    0x32cc,
+    0x33b0,
     nullptr, 0, false, false, 0, nullptr
   },
   { 2,2,0,0 }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -244,7 +244,6 @@
         }
     }
     pLineBiDi->pParaBiDi=pParaBiDi;     /* mark successful setLine */
-    return;
 }
 
 U_CAPI UBiDiLevel U_EXPORT2

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -233,7 +233,7 @@
             uprv_free(pTransform->src);
             pTransform->src = nullptr;
         }
-        pTransform->src = (char16_t *)uprv_malloc(newSize * sizeof(char16_t));
+        pTransform->src = static_cast<char16_t*>(uprv_malloc(newSize * sizeof(char16_t)));
         if (pTransform->src == nullptr) {
             *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
             //pTransform->srcLength = pTransform->srcSize = 0;
@@ -499,7 +499,7 @@
     /* Checking for U_SUCCESS() within the loop to bail out on first failure. */
     for (action = pBiDiTransform->pActiveScheme->actions; *action && U_SUCCESS(*pErrorCode); action++) {
         if ((*action)(pBiDiTransform, pErrorCode)) {
-            if (action + 1) {
+            if (action[1] != nullptr) {
                 updateSrc(pBiDiTransform, pBiDiTransform->dest, *pBiDiTransform->pDestLength,
                         *pBiDiTransform->pDestLength, pErrorCode);
             }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -501,7 +501,10 @@
                     destSize-=runLength;
 
                     if((pBiDi->isInverse) &&
-                       (/*run<runCount-1 &&*/ dirProps[logicalStart+runLength-1]!=L)) {
+                           (/*run<runCount-1 &&*/
+                            runLength > 0 && // doWriteForward may return 0 if src
+                                             // only include bidi control chars
+                            dirProps[logicalStart+runLength-1]!=L)) {
                         markFlag |= LRM_AFTER;
                     }
                     if (markFlag & LRM_AFTER) {
@@ -632,7 +635,10 @@
                     }
                     destSize-=runLength;
 
-                    if(/*run>0 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1]))) {
+                    if(/*run>0 &&*/
+                            runLength > 0 && // doWriteForward may return 0 if src
+                                             // only include bidi control chars
+                            !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1]))) {
                         if(destSize>0) {
                             *dest++=RLM_CHAR;
                         }

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ubrk.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ubrk.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ubrk.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -38,9 +38,9 @@
       UErrorCode *status)
 {
 
-  if(U_FAILURE(*status)) return 0;
+  if (U_FAILURE(*status)) return nullptr;
 
-  BreakIterator *result = 0;
+  BreakIterator *result = nullptr;
 
   switch(type) {
 
@@ -70,11 +70,11 @@
 
   // check for allocation error
   if (U_FAILURE(*status)) {
-     return 0;
+    return nullptr;
   }
-  if(result == 0) {
+  if (result == nullptr) {
     *status = U_MEMORY_ALLOCATION_ERROR;
-    return 0;
+    return nullptr;
   }
 
 
@@ -102,14 +102,14 @@
                        UErrorCode   *status)  {
 
     if (status == nullptr || U_FAILURE(*status)){
-        return 0;
+        return nullptr;
     }
 
-    BreakIterator *result = 0;
+    BreakIterator *result = nullptr;
     UnicodeString ruleString(rules, rulesLength);
     result = RBBIRuleBuilder::createRuleBasedBreakIterator(ruleString, parseErr, *status);
     if(U_FAILURE(*status)) {
-        return 0;
+        return nullptr;
     }
 
     UBreakIterator *uBI = (UBreakIterator *)result;

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ucase.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ucase.cpp	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ucase.cpp	2024-10-27 22:03:54 UTC (rev 72681)
@@ -38,7 +38,7 @@
 static UBool U_CALLCONV
 _enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) {
     /* add the start code point to the USet */
-    const USetAdder *sa=(const USetAdder *)context;
+    const USetAdder* sa = static_cast<const USetAdder*>(context);
     sa->add(sa->set, start);
     return true;
 }
@@ -696,7 +696,7 @@
 
 U_CAPI UBool U_EXPORT2
 ucase_isSoftDotted(UChar32 c) {
-    return (UBool)(getDotType(c)==UCASE_SOFT_DOTTED);
+    return getDotType(c)==UCASE_SOFT_DOTTED;
 }
 
 U_CAPI UBool U_EXPORT2
@@ -703,10 +703,10 @@
 ucase_isCaseSensitive(UChar32 c) {
     uint16_t props=UTRIE2_GET16(&ucase_props_singleton.trie, c);
     if(!UCASE_HAS_EXCEPTION(props)) {
-        return (UBool)((props&UCASE_SENSITIVE)!=0);
+        return (props&UCASE_SENSITIVE)!=0;
     } else {
         const uint16_t *pe=GET_EXCEPTIONS(&ucase_props_singleton, props);
-        return (UBool)((*pe&UCASE_EXC_SENSITIVE)!=0);
+        return (*pe&UCASE_EXC_SENSITIVE)!=0;
     }
 }
 
@@ -1623,12 +1623,12 @@
 
 U_CAPI UBool U_EXPORT2
 u_isULowercase(UChar32 c) {
-    return (UBool)(UCASE_LOWER==ucase_getType(c));
+    return UCASE_LOWER==ucase_getType(c);
 }
 
 U_CAPI UBool U_EXPORT2
 u_isUUppercase(UChar32 c) {
-    return (UBool)(UCASE_UPPER==ucase_getType(c));
+    return UCASE_UPPER==ucase_getType(c);
 }
 
 /* Transforms the Unicode character to its lower case equivalent.*/

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ucase.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ucase.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ucase.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -357,7 +357,7 @@
 /* definitions for 16-bit case properties word ------------------------------ */
 
 U_CFUNC const UTrie2 * U_EXPORT2
-ucase_getTrie();
+ucase_getTrie(void);
 
 /* 2-bit constants for types of cased characters */
 #define UCASE_TYPE_MASK     3

Modified: trunk/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h	2024-10-27 20:16:09 UTC (rev 72680)
+++ trunk/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h	2024-10-27 22:03:54 UTC (rev 72681)
@@ -9,145 +9,145 @@
 
 #ifdef INCLUDED_FROM_UCASE_CPP
 
-static const UVersionInfo ucase_props_dataVersion={0xf,1,0,0};
+static const UVersionInfo ucase_props_dataVersion={0x10,0,0,0};
 
-static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x76ec,0x66c8,0x680,0x172,0,0,0,0,0,0,0,0,0,0,3};
+static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x78bc,0x6888,0x688,0x172,0,0,0,0,0,0,0,0,0,0,3};
 
-static const uint16_t ucase_props_trieIndex[13148]={
-0x355,0x35d,0x365,0x36d,0x37b,0x383,0x38b,0x393,0x39b,0x3a3,0x3aa,0x3b2,0x3ba,0x3c2,0x3ca,0x3d2,
-0x3d8,0x3e0,0x3e8,0x3f0,0x3f8,0x400,0x408,0x410,0x418,0x420,0x428,0x430,0x438,0x440,0x448,0x450,
-0x458,0x460,0x468,0x470,0x478,0x480,0x488,0x490,0x48c,0x494,0x499,0x4a1,0x4a8,0x4b0,0x4b8,0x4c0,
-0x4c8,0x4d0,0x4d8,0x4e0,0x374,0x37c,0x4e5,0x4ed,0x4f2,0x4fa,0x502,0x50a,0x509,0x511,0x516,0x51e,
-0x526,0x52d,0x531,0x374,0x538,0x355,0x548,0x540,0x550,0x552,0x55a,0x562,0x566,0x567,0x56f,0x577,
-0x57f,0x567,0x587,0x58c,0x57f,0x567,0x594,0x59c,0x566,0x5a4,0x5ac,0x5b4,0x5bc,0x374,0x5c4,0x374,
-0x5cc,0x5ce,0x5d6,0x5b4,0x566,0x5a4,0x5dd,0x5b4,0x5e5,0x5e7,0x56f,0x5b4,0x566,0x374,0x5ef,0x374,
-0x374,0x5f5,0x5fc,0x374,0x374,0x600,0x608,0x374,0x60c,0x613,0x374,0x61a,0x622,0x629,0x631,0x374,
-0x374,0x636,0x63e,0x646,0x64e,0x656,0x65d,0x665,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x66d,0x374,0x374,0x67d,0x67d,0x675,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x685,0x68b,0x573,0x573,0x374,0x691,0x699,0x374,
-0x6a1,0x374,0x6a9,0x374,0x6b0,0x6b6,0x374,0x374,0x374,0x6be,0x374,0x374,0x374,0x374,0x374,0x374,
-0x6c5,0x374,0x6cc,0x6d4,0x374,0x6dc,0x6e4,0x374,0x5a3,0x6e8,0x6f0,0x6f6,0x5e5,0x6fe,0x374,0x705,
-0x374,0x70a,0x374,0x710,0x718,0x71c,0x724,0x72c,0x734,0x739,0x73c,0x744,0x754,0x74c,0x764,0x75c,
-0x39b,0x76c,0x39b,0x774,0x777,0x39b,0x77f,0x39b,0x787,0x78f,0x797,0x79f,0x7a7,0x7af,0x7b7,0x7bf,
-0x7c7,0x7ce,0x374,0x7d6,0x7de,0x374,0x7e6,0x7ee,0x7f6,0x7fe,0x806,0x80e,0x816,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x819,0x81f,0x825,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x82d,0x831,0x835,0x83d,0x39b,0x39b,0x39b,0x845,0x84d,0x854,0x374,0x859,0x374,0x374,0x374,0x861,
-0x374,0x6a6,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x565,0x869,0x374,0x374,0x870,0x374,0x374,0x878,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x880,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x710,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x886,0x374,0x88e,0x893,0x89b,0x374,0x374,0x8a3,0x8ab,0x8b3,0x39b,0x8b8,0x8c0,0x8c6,0x8cd,0x8d4,
-0x8dc,0x8e3,0x374,0x374,0x374,0x374,0x8ea,0x8f2,0x374,0x8fa,0x901,0x374,0x550,0x906,0x90e,0x6b0,
-0x374,0x914,0x91c,0x920,0x374,0x928,0x930,0x938,0x374,0x93e,0x942,0x94a,0x95a,0x952,0x374,0x962,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x96a,0x374,0x374,0x374,0x374,0x972,0x550,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x977,0x97f,0x983,0x374,0x374,0x374,0x374,0x357,0x35d,0x98b,0x993,0x99a,0x50b,0x374,0x374,0x9a2,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0xdd4,0xdd4,0xdec,0xe2c,0xe6c,0xea8,0xee8,0xf28,0xf60,0xfa0,0xfe0,0x1020,0x1060,0x10a0,0x10e0,0x1120,
-0x1160,0x11a0,0x11e0,0x1220,0x1230,0x1264,0x12a0,0x12e0,0x1320,0x1360,0xdd0,0x1394,0x13c8,0x1408,0x1424,0x1458,
-0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad9,0x188,0x188,0x188,0x188,0x188,0x188,0xb02,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0xb42,0x188,0xb82,0x188,0xba8,0xbe3,0xc22,0xc62,0xc9c,0xcd3,0x188,
+static const uint16_t ucase_props_trieIndex[13372]={
+0x363,0x36b,0x373,0x37b,0x389,0x391,0x399,0x3a1,0x3a9,0x3b1,0x3b8,0x3c0,0x3c8,0x3d0,0x3d8,0x3e0,
+0x3e6,0x3ee,0x3f6,0x3fe,0x406,0x40e,0x416,0x41e,0x426,0x42e,0x436,0x43e,0x446,0x44e,0x456,0x45e,
+0x466,0x46e,0x476,0x47e,0x486,0x48e,0x496,0x49e,0x49a,0x4a2,0x4a7,0x4af,0x4b6,0x4be,0x4c6,0x4ce,
+0x4d6,0x4de,0x4e6,0x4ee,0x382,0x38a,0x4f3,0x4fb,0x500,0x508,0x510,0x518,0x517,0x51f,0x524,0x52c,
+0x534,0x53b,0x53f,0x382,0x546,0x363,0x556,0x54e,0x55e,0x560,0x568,0x570,0x574,0x575,0x57d,0x585,
+0x58d,0x575,0x595,0x59a,0x58d,0x575,0x5a2,0x5aa,0x574,0x5b2,0x5ba,0x5c2,0x5ca,0x382,0x5d2,0x382,
+0x5da,0x5dc,0x5e4,0x5c2,0x574,0x5b2,0x5eb,0x5c2,0x5f3,0x5f5,0x57d,0x5c2,0x574,0x382,0x5fd,0x382,
+0x382,0x603,0x60a,0x382,0x382,0x60e,0x616,0x382,0x61a,0x621,0x382,0x628,0x630,0x637,0x63f,0x382,
+0x382,0x644,0x64c,0x654,0x65c,0x664,0x66b,0x673,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x67b,0x382,0x382,0x68b,0x68b,0x683,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x693,0x699,0x581,0x581,0x382,0x69f,0x6a7,0x382,
+0x6af,0x382,0x6b7,0x382,0x6be,0x6c4,0x382,0x382,0x382,0x6cc,0x382,0x382,0x382,0x382,0x382,0x382,
+0x6d3,0x382,0x6da,0x6e2,0x382,0x6ea,0x6f2,0x382,0x5b1,0x6f6,0x6fe,0x704,0x5f3,0x70c,0x382,0x713,
+0x382,0x718,0x382,0x71e,0x726,0x72a,0x732,0x73a,0x742,0x747,0x74a,0x752,0x762,0x75a,0x772,0x76a,
+0x3a9,0x77a,0x3a9,0x782,0x785,0x3a9,0x78d,0x3a9,0x795,0x79d,0x7a5,0x7ad,0x7b5,0x7bd,0x7c5,0x7cd,
+0x7d5,0x7dc,0x382,0x7e4,0x7ec,0x382,0x7f4,0x7fc,0x804,0x80c,0x814,0x81c,0x824,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x827,0x82d,0x833,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x83b,0x83f,0x843,0x84b,0x3a9,0x3a9,0x3a9,0x853,0x85b,0x862,0x382,0x867,0x382,0x382,0x382,0x86f,
+0x382,0x6b4,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x573,0x877,0x382,0x382,0x87e,0x382,0x382,0x886,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x88e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x71e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x894,0x382,0x89c,0x8a1,0x8a9,0x382,0x382,0x8b1,0x8b9,0x8c1,0x3a9,0x8c6,0x8ce,0x8d4,0x8db,0x8e3,
+0x8eb,0x8f2,0x382,0x382,0x382,0x382,0x8f9,0x901,0x382,0x909,0x910,0x382,0x55e,0x915,0x91d,0x6be,
+0x382,0x923,0x92b,0x92f,0x382,0x937,0x93f,0x947,0x382,0x94d,0x951,0x959,0x969,0x961,0x382,0x971,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x979,0x382,0x382,0x382,0x382,0x981,0x55e,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x986,0x98e,0x992,0x382,0x382,0x382,0x382,0x365,0x36b,0x99a,0x9a2,0x9a9,0x519,0x382,0x382,0x9b1,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0xe0c,0xe0c,0xe24,0xe64,0xea4,0xee0,0xf20,0xf60,0xf98,0xfd8,0x1018,0x1058,0x1098,0x10d8,0x1118,0x1158,
+0x1198,0x11d8,0x1218,0x1258,0x1268,0x129c,0x12d8,0x1318,0x1358,0x1398,0xe08,0x13cc,0x1400,0x1440,0x145c,0x1490,
+0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad9,0x188,0x188,0x188,0x188,0x188,0xb11,0xb3a,0x188,0x188,
+0x188,0x188,0x188,0x188,0x188,0xb7a,0x188,0xbba,0x188,0xbe0,0xc1b,0xc5a,0xc9a,0xcd4,0xd0b,0x188,
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
@@ -172,657 +172,671 @@
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
-0xd13,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x9a9,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9b1,0x374,0x374,0x374,0x9b4,0x374,0x374,0x374,
-0x374,0x9bc,0x9c2,0x9c6,0x374,0x374,0x9ca,0x9ce,0x9d4,0x374,0x374,0x374,0x9db,0x9df,0x9e7,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9f7,0x9ef,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x9ff,
-0xa03,0x374,0x374,0x374,0x374,0x374,0xa0b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0xa13,0xa17,0xa1f,0xa23,0x374,0xa2a,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0xa30,0x374,0xa34,0x374,0x374,0xa3c,0x374,0xa44,0x374,0x374,0x374,0x566,
-0xa46,0xa4d,0xa51,0x5e5,0xa59,0xa61,0x374,0xa69,0xa70,0x374,0xa76,0x5e5,0xa7b,0xa83,0x374,0x374,
-0xa88,0x566,0x374,0x374,0x374,0x357,0xa90,0x5e5,0x5e7,0xa98,0xa9f,0x374,0x374,0x374,0x374,0x374,
-0xa46,0xaa7,0x374,0x374,0xaaf,0xab7,0x374,0x374,0x374,0x374,0x374,0x374,0xabb,0xac3,0x374,0x374,
-0xacb,0x4cf,0x374,0x374,0xad3,0x374,0x374,0xad9,0xae1,0x374,0x374,0x374,0x374,0x374,0x374,0xae6,
-0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0xafe,0xb06,0x374,0x374,0x374,0xb09,0x9b1,0xb11,0xb15,
-0xb1d,0x374,0xb24,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb2b,
-0x374,0x374,0x972,0xb33,0x374,0x374,0x374,0xb39,0xb41,0x374,0xb45,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0xb4b,0x5e5,0xb51,0xb59,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb5d,0xb65,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xb6b,0x374,0xb71,0x5a3,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0xaee,0xaf6,0x374,0x374,0x374,0x374,0x374,0x374,0x6a6,0x374,0xb77,0x374,
-0x374,0xb7f,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0xb84,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0xb8c,0x5a3,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x8ab,0xb94,0xb9b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xba2,0xbaa,
-0xbb0,0x374,0x374,0x374,0x374,0xbb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0xbc0,0xbc8,0xbcd,0xbd3,0xbdb,0xbe3,0xbeb,0xbc4,0xbf3,0xbfb,0xc03,0xc0a,0xbc5,
-0xbc0,0xbc8,0xbc3,0xbd3,0xbc6,0xbc1,0xc12,0xbc4,0xc1a,0xc22,0xc2a,0xc31,0xc1d,0xc25,0xc2d,0xc34,
-0xc20,0xc3c,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x8ab,0xc44,0x8ab,0xc4b,0xc52,0xc5a,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc6a,0xc72,0x374,0x374,0x374,0x374,
-0x374,0x374,0xc62,0xc7a,0xc8d,0xc80,0xc85,0x374,0x374,0x374,0x374,0xc95,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xaab,0x374,0xa28,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xc9d,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0xca1,0x374,0xca9,0xcb1,0xcb8,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0xbbc,0xcc0,0xcc0,0xcc6,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0xa6b,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x566,0x8ab,0x8ab,0x8ab,0x374,0x374,0x374,0x374,0x8ab,0x8ab,0x8ab,0x8ab,0x8ab,
-0x8ab,0x8ab,0xcce,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,0x374,
-0x374,0x374,0x374,0x354,0,0,0,0,0,0,0,0,0,0,0,0,
+0xd4b,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x9b8,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x9c0,0x382,0x382,0x382,0x9c3,0x382,0x382,0x382,
+0x382,0x9cb,0x9d1,0x9d5,0x382,0x382,0x9d9,0x9dd,0x9e3,0x382,0x382,0x382,0x9ea,0x9ee,0x9f6,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa06,0x9fe,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa0e,
+0xa12,0x382,0x382,0x382,0x382,0x382,0xa1a,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0xa22,0xa26,0xa2e,0xa32,0x382,0xa39,0xa3e,0xa45,0xa4c,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0xa52,0x382,0xa56,0x382,0x382,0xa5e,0x382,0xa66,0x382,0x382,0x382,0x574,
+0xa68,0xa6f,0xa73,0x5f3,0xa7b,0xa83,0x382,0xa8b,0xa92,0x382,0xa98,0x5f3,0xa9d,0xaa5,0x382,0x382,
+0xaaa,0x574,0x382,0x382,0x382,0x365,0xab2,0x5f3,0x5f5,0xaba,0xac1,0x382,0xa8d,0xac9,0x58d,0x382,
+0xa68,0xad1,0x382,0x382,0xad9,0xae1,0x382,0x382,0x382,0x382,0x382,0x382,0xae5,0xaed,0x382,0x382,
+0xaf5,0x4dd,0x382,0x382,0xafd,0x382,0x382,0xb03,0xb0b,0x382,0x382,0x382,0x382,0x382,0x382,0xb10,
+0x382,0x382,0x382,0xb18,0xb20,0x382,0x382,0xb28,0xb30,0x382,0x382,0x382,0xb33,0x9c0,0xb3b,0xb3f,
+0xb47,0x382,0xb4e,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xb55,
+0x382,0x382,0x981,0xb5d,0x382,0x382,0x382,0xb63,0xb6b,0x382,0xb6f,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0xb75,0x5f3,0xb7b,0xb83,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xb8a,0xb92,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x519,0xb9a,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0xb9e,0x382,0xba4,0x5b1,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x55e,0xb77,0x382,0x382,0x382,0x382,0x382,0x382,0xb18,0xb20,0x382,0x382,
+0x382,0x382,0x382,0x382,0x6b4,0x382,0xbaa,0x382,0x382,0xbb2,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbb7,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbbf,0x5b1,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x8b9,0xbc7,0xbce,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0xbd5,0xbdd,0xbe3,0x382,0x382,0x382,0x382,0xbeb,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xbf3,0xbfb,0xc00,0xc06,0xc0e,
+0xc16,0xc1e,0xbf7,0xc26,0xc2e,0xc36,0xc3d,0xbf8,0xbf3,0xbfb,0xbf6,0xc06,0xbf9,0xbf4,0xc45,0xbf7,
+0xc4d,0xc55,0xc5d,0xc64,0xc50,0xc58,0xc60,0xc67,0xc53,0xc6f,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x8b9,0xc77,0x8b9,0xc7e,0xc85,0xc8d,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0xc9d,0xca5,0x382,0x382,0x382,0x382,0x382,0x382,0xc95,0xcad,0xcc0,0xcb3,0xcb8,0x382,
+0x382,0x382,0x382,0xcc8,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xad5,
+0x382,0xa37,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0xcd0,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xcd5,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xcd9,0x382,0xce1,0xce9,0xcf0,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0xbef,0xcf8,0xcf8,0xcfe,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0xa8d,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x574,0x8b9,0x8b9,0x8b9,0x382,
+0x382,0x382,0x382,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0x8b9,0xd06,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,
+0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x382,0x362,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,4,0,0,0,0,
-0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,
-0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,
-0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,
-0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,
-0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,0,0,0,0,0,0,4,0,0,0,0,0,
+0,0,0,0,0,0,4,0,0,0,0,0,0,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,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,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,0,1,0,0,4,0,4,0,0,0,0,
-4,0x1c9,0,4,4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,
-0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
-0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,
-0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
-0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,
+0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0,
+0,4,0,4,0,0,0,0,4,0x1c9,0,4,4,0,1,0,
+0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91,
+0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92,
+0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,
-0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459,
+0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512,
+0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,0x489,0x6992,0x6a92,0x4111,0x6b12,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92,
+0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0,0x92,0xff91,1,0x1c11,
+0,0,0,0,0x4aa,0x4db,0x519,0x54a,0x57b,0x5b9,0x5ea,0x61b,0x659,0x92,0xff91,0x92,
+0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,
-0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,
-0x92,0xff91,0x5191,1,0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,
-0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,
-0x92,0xff91,1,0,0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a,
-0x55b,0x599,0x5ca,0x5fb,0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,
-0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412,
+0x689,0x70a,0x73b,0x779,0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9,
-0x7c9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x7e9,0x809,0x829,0x9711,0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1,
-0x9991,0x869,1,0x9891,1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691,
-1,0x909,0x9591,1,1,0x9511,1,1,1,1,1,1,1,0x929,1,1,
-0x9311,1,0x949,0x9311,1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,
-1,1,0x9291,1,0,1,1,1,1,1,1,1,1,0x989,0x9a9,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-5,5,0x25,5,5,5,5,5,5,4,4,4,0x14,4,0x14,4,
-5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,1,1,
+1,1,0x7aa,0x92,0xff91,0xae92,0x7ca,0x7e9,0x7e9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91,
+0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x809,0x829,0x849,0x9711,0x9911,1,0x9991,0x9991,
+1,0x9b11,1,0x9a91,0x869,1,1,1,0x9991,0x889,1,0x9891,0x8a9,0x8c9,0x8e9,1,
+0x97b1,0x9691,0x8e9,0x909,0x929,1,1,0x9691,1,0x949,0x9591,1,1,0x9511,1,1,
+1,1,1,1,1,0x969,1,1,0x9311,1,0x989,0x9311,1,1,1,0x9a9,
+0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,1,1,0x9291,1,0,1,1,1,
+1,1,1,1,1,0x9c9,0x9e9,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,5,5,0x25,5,5,5,5,5,
+5,4,4,4,0x14,4,0x14,4,5,5,4,4,4,4,4,4,
 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,
 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-0x54,0x54,0x44,0x44,0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,
-0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
+4,4,4,4,4,4,4,4,0x54,0x54,0x44,0x44,0x44,0x44,0x44,0xa0c,
+0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64,
 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
-0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,
-0x44,0x44,0x54,0x44,0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,
-0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12,
-0,0,0,0,4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,
-0xa29,0x1012,0xafa,0x1012,0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012,0xc5a,0x1012,0x1012,0x1012,
-0xc9a,0xcda,0,0xd1a,0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,
-0xdd9,0xf011,0xea9,0xf011,0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011,0x1009,0xf011,0xf011,0xf011,
-0x1049,0x1089,0x10c9,0x10f9,0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,
-0x11b9,0x11e9,2,2,2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64,
+0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x44,0xa1d,0x44,0x64,
+0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,
+0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91,
+0,0,5,0x4111,0x4111,0x4111,0,0x3a12,0,0,0,0,4,4,0x1312,4,
+0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,0xa69,0x1012,0xb3a,0x1012,0x1012,0xb7a,0x1012,0x1012,
+0xbba,0xc0a,0xc5a,0x1012,0xc9a,0x1012,0x1012,0x1012,0xcda,0xd1a,0,0xd5a,0x1012,0x1012,0xd9a,0x1012,
+0x1012,0xdda,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,0xe19,0xf011,0xee9,0xf011,0xf011,0xf29,0xf011,0xf011,
+0xf69,0xfb9,0x1009,0xf011,0x1049,0xf011,0xf011,0xf011,0x1089,0x10c9,0x1109,0x1139,0xf011,0xf011,0x1179,0xf011,
+0xf011,0x11b9,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,0x11f9,0x1229,2,2,2,0x1279,0x12a9,0xfc11,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x1299,0x12c9,0x391,0xc631,0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,
-0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,
-0x1012,0x1012,0x137a,0x1012,0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13fa,0x1012,
-0x1012,0x143a,0x147a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012,0x1012,0x1012,0x1012,0x1012,
-0xf011,0xf011,0x1509,0xf011,0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1589,0xf011,
-0xf011,0x15c9,0x1609,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011,0xf011,0xf011,0xf011,0xf011,
-0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,
-0x92,0xff91,0x169a,0x16d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x12d9,0x1309,0x391,0xc631,0x133a,0x1389,0,0x92,
+0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,
+0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x13ba,0x1012,0x13fa,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x143a,0x1012,0x1012,0x147a,0x14ba,0x1012,0x1012,0x1012,0x1012,0x1012,
+0x1012,0x1012,0x150a,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x1549,0xf011,0x1589,0xf011,0xf011,0xf011,
+0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x15c9,0xf011,0xf011,0x1609,0x1649,0xf011,0xf011,0xf011,0xf011,0xf011,
+0xf011,0xf011,0x1699,0xf011,0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811,
+0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x16da,0x1719,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44,
+4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,
+0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
-0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0,
-0,0,0,4,1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+0x1812,0x1812,0x1812,0,0,4,0,0,0,0,0,4,1,0xe811,0xe811,0xe811,
 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
-0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1719,1,0,0,0,0,0,0,0,
-0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,
-0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,
-0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,
-0,0x64,0x64,0,0x44,0x64,0,0x64,0,0,0,0,0,0,0,0,
+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1759,
+1,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,
+0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,
+0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
+0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64,
 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,4,0,0,0,0,0,0,0,0,0,0,0,
-4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,
+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x64,0x64,0x64,0,4,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,4,0,0,0,0,0,0,0,
+0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,
+0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,
-0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,
+0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64,
+0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
+0,0x64,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,
-0x64,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,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,4,0,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44,
-0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,4,0,0x64,0,0,0,0,0,0,
+0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,
+0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,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,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,
-0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,
-0x64,0x44,0x44,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,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,
-4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,4,4,4,4,4,4,4,4,4,4,4,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,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0,
-0,0,4,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,
-0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44,
-0x44,0x44,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,0x64,0x64,0x64,
-0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
-4,4,0,0,0,0,0,0,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44,
-0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,
-0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,
-0,0,0,0,0,0,0,0,0,4,0x44,0x44,0x44,0x44,0x44,0x64,
-0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0,0,0x64,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,0,0x64,0,0,0,0,4,4,4,4,4,4,4,
-4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4,
-0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,
+0,0,0,0,0,0,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,
+4,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,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,0x64,0,0,0,0,4,4,4,
-4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
+0,0,0,0,0,0x64,0x64,0x64,0,0,0,0,0,0,0,0,
+4,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0x44,
+0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,
+0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,
+0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,
+0,4,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,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,0x44,0,0,4,4,0,
+0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0,0,
+0,4,4,4,4,4,4,4,4,0,0,0,0,0x64,0,0,
+0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0,
+0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,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,0,0,0,0,4,4,0,
-0,0,0,4,4,0,0,4,4,0x64,0,0,0,4,0,0,
+0x64,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,
+0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
-0,4,4,4,4,4,0,4,4,0,0,0,0,0x64,0,0,
+0,0,0x44,0,0,4,4,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,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,
+0,0,0,0,0,4,4,0,0,0,0,4,4,0,0,4,
+4,0x64,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,0,0,0,4,0,0,
+0,0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,
+4,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,4,4,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,0x64,0,0,4,
-0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0,
-0,0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,
-0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,4,4,4,4,4,4,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,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x64,0,0,4,0,4,4,4,4,0,0,0,
+0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4,0,
+0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,
+0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x64,0,4,4,4,0,0,0,0,0,4,4,
-4,0,4,4,4,0x64,0,0,0,0,0,0,0,0x64,0x64,0,
-0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,
-4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,
+4,0,0,0,0,0,4,4,4,0,4,4,4,0x64,0,0,
+0,0,0,0,0,0x64,0x64,0,0,0,0,0,0,0,0,0,
+0,0,4,0,0,0,0,0,4,0x64,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,4,4,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,0x64,0x64,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x64,0,0,0,0,0,0,0,4,4,
-4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,4,4,4,4,0x64,0x64,0x64,0,
-0,0,0,0,0,0,4,4,0x64,0x64,0x64,0x64,4,4,4,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,
+0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,
+0,0,0,0,0,0,4,4,4,0,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+4,4,4,4,0x64,0x64,0x64,0,0,0,0,0,0,0,4,4,
+0x64,0x64,0x64,0x64,4,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,4,0,0,4,4,4,4,
+0x64,0x64,0x64,4,4,0,0,0,0,0,0,0,0,0,4,0,
+0x64,0x64,0x64,0x64,4,4,4,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,4,0,0,4,4,4,4,0x64,0x64,0x64,4,4,0,0,0,
-0,0,0,0,0,0,4,0,0x64,0x64,0x64,0x64,4,4,4,0,
+0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x64,0,0x64,0,0x64,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,0x64,0x64,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x64,0,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x64,0x64,4,0x64,4,4,4,
-4,4,0x64,0x64,0x64,0x64,4,0,0x64,4,0x44,0x44,0x64,0,0x44,0x44,
-0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,
-0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+0,0x64,0x64,4,0x64,4,4,4,4,4,0x64,0x64,0x64,0x64,4,0,
+0x64,4,0x44,0x44,0x64,0,0x44,0x44,0,0,0,0,0,4,4,4,
+4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,
 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,
+4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,
+0,0,0x64,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,4,4,4,
+4,0,4,4,4,4,4,0x64,0,0x64,0x64,0,0,4,4,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,4,4,4,0,4,4,4,4,4,0x64,
-0,0x64,0x64,0,0,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,4,0,0,0,0,4,4,
+4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,
+0,0,4,0,0,4,4,0,0,0,0,0,0,0x64,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,0x179a,
+0x179a,0x179a,0,0x179a,0,0,0,0,0,0x179a,0,0,0x17b9,0x17e9,0x1819,0x1849,
+0x1879,0x18a9,0x18d9,0x1909,0x1939,0x1969,0x1999,0x19c9,0x19f9,0x1a29,0x1a59,0x1a89,0x1ab9,0x1ae9,0x1b19,0x1b49,
+0x1b79,0x1ba9,0x1bd9,0x1c09,0x1c39,0x1c69,0x1c99,0x1cc9,0x1cf9,0x1d29,0x1d59,0x1d89,0x1db9,0x1de9,0x1e19,0x1e49,
+0x1e79,0x1ea9,0x1ed9,0x1f09,0x1f39,0x1f69,0x1f99,0,5,0x1fc9,0x1ff9,0x2029,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-4,4,0,0,0,0,4,4,4,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,0,0,4,4,0,
-0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,
-0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,
-0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0x175a,0,0x175a,0,0,0,0,
-0,0x175a,0,0,0x1779,0x17a9,0x17d9,0x1809,0x1839,0x1869,0x1899,0x18c9,0x18f9,0x1929,0x1959,0x1989,
-0x19b9,0x19e9,0x1a19,0x1a49,0x1a79,0x1aa9,0x1ad9,0x1b09,0x1b39,0x1b69,0x1b99,0x1bc9,0x1bf9,0x1c29,0x1c59,0x1c89,
-0x1cb9,0x1ce9,0x1d19,0x1d49,0x1d79,0x1da9,0x1dd9,0x1e09,0x1e39,0x1e69,0x1e99,0x1ec9,0x1ef9,0x1f29,0x1f59,0,
-5,0x1f89,0x1fb9,0x1fe9,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,0x44,0x44,0x44,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,
-0x201a,0x201a,0x201a,0x201a,0x203a,0x203a,0x203a,0x203a,0x203a,0x203a,0,0,0x2059,0x2089,0x20b9,0x20e9,
-0x2119,0x2149,0,0,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,
-0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,
-0x201a,0x201a,0x201a,0x201a,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,4,4,0x64,0x60,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x205a,0x205a,0x205a,0x205a,
+0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x207a,0x207a,0x207a,0x207a,
+0x207a,0x207a,0,0,0x2099,0x20c9,0x20f9,0x2129,0x2159,0x2189,0,0,0x205a,0x205a,0x205a,0x205a,
+0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,
+0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0x205a,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,
-0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,0,4,4,4,4,4,
-4,4,0,0,0,0,0,0,0,0,4,0,0,4,4,4,
-4,4,4,4,4,4,0x64,4,0,0,0,4,0,0,0,0,
-0,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
-4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
+0x64,0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,4,4,0x60,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,4,4,0,0,0,0,0,0,0,0,0,
+4,4,0,4,4,4,4,4,4,4,0,0,0,0,0,0,
+0,0,4,0,0,4,4,4,4,4,4,4,4,4,0x64,4,
+0,0,0,4,0,0,0,0,0,0x44,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,4,
-4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,
-0,0x64,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0,0,4,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,0,
-0x64,0,4,0,0,4,4,4,4,4,4,4,4,0,0,0,
-0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64,
-0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,
-0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0x64,
-0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0,
+0,0,0,0,0,0,0,0,0,0x64,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,0x64,0,4,4,4,4,4,0,4,0,0,0,
-0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,0,0,0,0,4,4,0,0,0,0,0,0,0,
+0,0,4,0,0,0,0,0,0,0x64,0x44,0x64,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,
-4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0,
-0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0,
-0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64,
+0,0,0,0x44,0x64,0,0,4,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
+4,4,4,4,4,4,4,0,0x64,0,4,0,0,4,4,4,
+4,4,4,4,4,0,0,0,0,0,0,4,4,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0,0,0x64,0,0,0,0,0,0,0,4,
+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,
+0x64,0x64,0x64,0x44,0x44,0x64,4,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,
+0x44,0x44,0x64,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,
+4,4,4,0,4,0,0,0,0,0,4,0,0x60,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,4,4,4,4,4,4,0,0,
-0x2179,0x21a9,0x21d9,0x2209,0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0,
-0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,
-0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a,
+0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,4,4,4,4,0,0,4,4,0x60,0x64,4,4,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,
-0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0,
-0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0,
+0,0,0x64,0,4,4,0,0,0,4,0,4,4,4,0x60,0x60,
+0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
+4,4,4,4,0,0,4,0x64,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,4,4,4,4,4,0,0,0x21b9,0x21e9,0x2219,0x2249,0x2279,0x22c9,0x2319,0x2349,
+0x2379,0x92,0xff91,0,0,0,0,0,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,
+0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,0x23aa,
+0x23aa,0x23aa,0x23aa,0,0,0x23aa,0x23aa,0x23aa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,
+0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,
+0x64,0,0,0,0,0x64,0,0,0,0,0,0,0x44,0,0,0,
+0x44,0x44,0,0,0,0,0,0,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,1,
+1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,
 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1,
-1,1,1,1,1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1,
-5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x23c9,1,
-1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,
-0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,
-0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,
+5,5,5,5,5,5,5,5,5,5,0x25,5,5,5,5,5,
+5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,
+5,0x23c9,1,1,1,0x23e9,1,1,5,5,5,5,0x25,5,5,5,
+0x25,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x2409,1,1,1,1,1,1,1,0x21,1,
+1,1,1,5,5,5,5,5,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,
+0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x242a,0x2469,0x92,0xff91,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x23ea,0x2429,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x24a9,0x2529,0x25a9,0x2629,0x26a9,0x2729,
+1,1,0x275a,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x2469,0x24e9,0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,
-0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
-0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,
-0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
-0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,
-0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411,
-0x2899,0x411,0x2949,0x411,0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,
-0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,
-0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49,
-0x2bb9,0x2c29,0x2c99,0x2d09,0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249,
-0x32b9,0x3329,0x3399,0x3409,0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949,
-0x39b9,0x3a29,0x3a99,0x3b09,0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79,
-0x3fe9,0,0x4069,0x40e9,0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9,
-0x4349,0,0x43c9,0x4449,0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619,
-0,0,0x46d9,0x4759,0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4809,0x48b9,
-0x4979,0x391,0x49f9,0x4a79,0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b29,0x4ba9,
-0x4c19,0,0x4c99,0x4d19,0xc012,0xc012,0xc112,0xc112,0x4dcb,4,4,0,0,0,0,0,
-0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0,
-0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4,
-0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,
-4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0,
-0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,
-0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44,
-0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,
-0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0,
-0,2,2,2,2,2,0,0,0,0,0,0,2,0,0x4e3a,0,
-2,0,0x4e7a,0x4eba,2,2,0,1,2,2,0xe12,2,1,0,0,0,
-0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1,
-0x21,0x21,0,0,0,0,0xf211,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,
-0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,
-0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0,
+0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0,0,0x27a9,0x411,0x2829,0x411,0x28d9,0x411,0x2989,0x411,0,0xfc12,0,0xfc12,
+0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,
+0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,
+0x3f11,0x3f11,0,0,0x2a39,0x2aa9,0x2b19,0x2b89,0x2bf9,0x2c69,0x2cd9,0x2d49,0x2dbb,0x2e2b,0x2e9b,0x2f0b,
+0x2f7b,0x2feb,0x305b,0x30cb,0x3139,0x31a9,0x3219,0x3289,0x32f9,0x3369,0x33d9,0x3449,0x34bb,0x352b,0x359b,0x360b,
+0x367b,0x36eb,0x375b,0x37cb,0x3839,0x38a9,0x3919,0x3989,0x39f9,0x3a69,0x3ad9,0x3b49,0x3bbb,0x3c2b,0x3c9b,0x3d0b,
+0x3d7b,0x3deb,0x3e5b,0x3ecb,0x411,0x411,0x3f39,0x3fb9,0x4029,0,0x40a9,0x4129,0xfc12,0xfc12,0xdb12,0xdb12,
+0x41db,4,0x4249,4,4,4,0x4299,0x4319,0x4389,0,0x4409,0x4489,0xd512,0xd512,0xd512,0xd512,
+0x453b,4,4,4,0x411,0x411,0x45a9,0x4659,0,0,0x4719,0x4799,0xfc12,0xfc12,0xce12,0xce12,
+0,4,4,4,0x411,0x411,0x4849,0x48f9,0x49b9,0x391,0x4a39,0x4ab9,0xfc12,0xfc12,0xc812,0xc812,
+0xfc92,4,4,4,0,0,0x4b69,0x4be9,0x4c59,0,0x4cd9,0x4d59,0xc012,0xc012,0xc112,0xc112,
+0x4e0b,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,
+4,4,4,4,0,0,0,0,0,0,0,0,4,4,0,0,
+0,0,0,0,4,0,0,4,0,0,4,4,4,4,4,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,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,
-0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,
-0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,
+4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,
+0,0x25,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44,0x44,4,4,4,
+4,0x44,4,4,4,0x64,0x64,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,
+0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,0,0,0,0,2,0,0,1,2,2,2,1,1,
+2,2,2,1,0,2,0,0,0,2,2,2,2,2,0,0,
+0,0,0,0,2,0,0x4e7a,0,2,0,0x4eba,0x4efa,2,2,0,1,
+2,2,0xe12,2,1,0,0,0,0,1,0,0,1,1,2,2,
+0,0,0,0,0,2,1,1,0x21,0x21,0,0,0,0,0xf211,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,
+0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,
+0,0,0,0x92,0xff91,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,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,
+0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,
+0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1812,0x1812,0x1812,0x1812,
 0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,
-0x1812,0x1812,0x1812,0x1812,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
+0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0xe811,0xe811,0xe811,0xe811,
 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,
-0xe811,0xe811,0xe811,0xe811,0x92,0xff91,0x4efa,0x4f1a,0x4f3a,0x4f59,0x4f79,0x92,0xff91,0x92,0xff91,0x92,
-0xff91,0x4f9a,0x4fba,0x4fda,0x4ffa,1,0x92,0xff91,1,0x92,0xff91,1,1,1,1,1,
-0x25,5,0x501a,0x501a,0x92,0xff91,0x92,0xff91,1,0,0,0,0,0,0,0x92,
-0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,0,0,0,0,0,0,0,0,
-0,0,0,0,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,
-0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,
-0x5039,0x5039,0x5039,0x5039,0x5039,0x5039,0,0x5039,0,0,0,0,0,0x5039,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x92,0xff91,0x4f3a,0x4f5a,
+0x4f7a,0x4f99,0x4fb9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x4fda,0x4ffa,0x501a,0x503a,1,0x92,0xff91,
+1,0x92,0xff91,1,1,1,1,1,0x25,5,0x505a,0x505a,0x92,0xff91,0x92,0xff91,
+1,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,
+0,0,0,0,0,0,0,0,0,0,0,0,0x5079,0x5079,0x5079,0x5079,
+0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,
+0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0x5079,0,0x5079,
+0,0,0,0,0,0x5079,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,
 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
-0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0x64,0x64,
-0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0,0,0,0,4,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,
+0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4,
+4,4,0,0,0,0,0,4,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,0x64,0x64,4,4,4,4,0,
+0,0x64,0x64,4,4,4,4,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,4,4,4,0,
+0,0,0,0,4,4,4,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x505a,0x5099,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,4,4,4,0,
-0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x509a,0x50d9,0x92,0xff91,0x92,0xff91,
 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,
+0x92,0xff91,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
+0x44,0x44,0,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
+5,5,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x44,0x44,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,
 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,
-5,1,1,1,1,1,1,1,1,0x92,0xff91,0x92,0xff91,0x50da,0x92,0xff91,
-0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,4,4,4,0x92,0xff91,0x50fa,1,0,
-0x92,0xff91,0x92,0xff91,0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,

@@ Diff output truncated at 1234567 characters. @@


More information about the tex-live-commits mailing list.