/
YakuninAV
/
Convertors
Обзор
Документация
Войти
/
YakuninAV
/
Convertors
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Core/PUCU.pas
49 448 строк
1 MB
YakuninAV
begin with gitflick
31 июл 2026, 15:21
31 июл 2026, 15:21
1dc0fc6
Код
Авторство
О чём код?
(****************************************************************************** * PUCU Pascal UniCode Utils Libary * ****************************************************************************** * Version 2022-11-22-16-12-0000 * ****************************************************************************** * zlib license * *============================================================================* * * * Copyright (C) 2016-2022, Benjamin Rosseaux (benjamin@rosseaux.de) * * * * This software is provided 'as-is', without any express or implied * * warranty. In no event will the authors be held liable for any damages * * arising from the use of this software. * * * * Permission is granted to anyone to use this software for any purpose, * * including commercial applications, and to alter it and redistribute it * * freely, subject to the following restrictions: * * * * 1. The origin of this software must not be misrepresented; you must not * * claim that you wrote the original software. If you use this software * * in a product, an acknowledgement in the product documentation would be * * appreciated but is not required. * * 2. Altered source versions must be plainly marked as such, and must not be * * misrepresented as being the original software. * * 3. This notice may not be removed or altered from any source distribution. * * * ****************************************************************************** * General guidelines for code contributors * *============================================================================* * * * 1. Make sure you are legally allowed to make a contribution under the zlib * * license. * * 2. The zlib license header goes at the top of each source file, with * * appropriate copyright notice. * * 3. After a pull request, check the status of your pull request on * http://github.com/BeRo1985/pucu * * 4. Write code, which is compatible with Delphi 7-XE7 and FreePascal >= 3.0 * * so don't use generics/templates, operator overloading and another newer * * syntax features than Delphi 7 has support for that, but if needed, make * * it out-ifdef-able. * * 5. Don't use Delphi-only, FreePascal-only or Lazarus-only libraries/units, * * but if needed, make it out-ifdef-able. * * 6. No use of third-party libraries/units as possible, but if needed, make * * it out-ifdef-able. * * 7. Try to use const when possible. * * 8. Make sure to comment out writeln, used while debugging. * * 9. Make sure the code compiles on 32-bit and 64-bit platforms (x86-32, * * x86-64, ARM, ARM64, etc.). * * * ******************************************************************************) unit PUCU; {$define PUCUStrictUTF8} {$ifdef fpc} {$mode delphi} {$ifdef cpui386} {$define cpu386} {$endif} {$ifdef cpu386} {$asmmode intel} {$endif} {$ifdef cpuamd64} {$asmmode intel} {$endif} {$ifdef FPC_LITTLE_ENDIAN} {$define LITTLE_ENDIAN} {$else} {$ifdef FPC_BIG_ENDIAN} {$define BIG_ENDIAN} {$endif} {$endif} {-$pic off} {$define CanInline} {$ifdef FPC_HAS_TYPE_EXTENDED} {$define HAS_TYPE_EXTENDED} {$else} {$undef HAS_TYPE_EXTENDED} {$endif} {$ifdef FPC_HAS_TYPE_DOUBLE} {$define HAS_TYPE_DOUBLE} {$else} {$undef HAS_TYPE_DOUBLE} {$endif} {$ifdef FPC_HAS_TYPE_SINGLE} {$define HAS_TYPE_SINGLE} {$else} {$undef HAS_TYPE_SINGLE} {$endif} {$if declared(RawByteString)} {$define HAS_TYPE_RAWBYTESTRING} {$else} {$undef HAS_TYPE_RAWBYTESTRING} {$ifend} {$if declared(UTF8String)} {$define HAS_TYPE_UTF8STRING} {$else} {$undef HAS_TYPE_UTF8STRING} {$ifend} {$if declared(UnicodeString)} {$define HAS_TYPE_UNICODESTRING} {$else} {$undef HAS_TYPE_UNICODESTRING} {$ifend} {$else} {$realcompatibility off} {$localsymbols on} {$define LITTLE_ENDIAN} {$ifndef cpu64} {$define cpu32} {$endif} {$define HAS_TYPE_EXTENDED} {$define HAS_TYPE_DOUBLE} {$define HAS_TYPE_SINGLE} {$ifdef conditionalexpressions} {$if declared(RawByteString)} {$define HAS_TYPE_RAWBYTESTRING} {$else} {$undef HAS_TYPE_RAWBYTESTRING} {$ifend} {$if declared(UTF8String)} {$define HAS_TYPE_UTF8STRING} {$else} {$undef HAS_TYPE_UTF8STRING} {$ifend} {$if declared(UnicodeString)} {$define HAS_TYPE_UNICODESTRING} {$else} {$undef HAS_TYPE_UNICODESTRING} {$ifend} {$else} {$undef HAS_TYPE_RAWBYTESTRING} {$undef HAS_TYPE_UTF8STRING} {$undef HAS_TYPE_UNICODESTRING} {$endif} {$ifndef BCB} {$ifdef ver120} {$define Delphi4or5} {$endif} {$ifdef ver130} {$define Delphi4or5} {$endif} {$ifdef ver140} {$define Delphi6} {$endif} {$ifdef ver150} {$define Delphi7} {$endif} {$ifdef ver170} {$define Delphi2005} {$endif} {$else} {$ifdef ver120} {$define Delphi4or5} {$define BCB4} {$endif} {$ifdef ver130} {$define Delphi4or5} {$endif} {$endif} {$ifdef conditionalexpressions} {$if CompilerVersion>=24} {$legacyifend on} {$ifend} {$if CompilerVersion>=14.0} {$if CompilerVersion=14.0} {$define Delphi6} {$ifend} {$define Delphi6AndUp} {$ifend} {$if CompilerVersion>=15.0} {$if CompilerVersion=15.0} {$define Delphi7} {$ifend} {$define Delphi7AndUp} {$ifend} {$if CompilerVersion>=17.0} {$if CompilerVersion=17.0} {$define Delphi2005} {$ifend} {$define Delphi2005AndUp} {$ifend} {$if CompilerVersion>=18.0} {$if CompilerVersion=18.0} {$define BDS2006} {$define Delphi2006} {$ifend} {$define Delphi2006AndUp} {$ifend} {$if CompilerVersion>=18.5} {$if CompilerVersion=18.5} {$define Delphi2007} {$ifend} {$define Delphi2007AndUp} {$ifend} {$if CompilerVersion=19.0} {$define Delphi2007Net} {$ifend} {$if CompilerVersion>=20.0} {$if CompilerVersion=20.0} {$define Delphi2009} {$ifend} {$define Delphi2009AndUp} {$ifend} {$if CompilerVersion>=21.0} {$if CompilerVersion=21.0} {$define Delphi2010} {$ifend} {$define Delphi2010AndUp} {$ifend} {$if CompilerVersion>=22.0} {$if CompilerVersion=22.0} {$define DelphiXE} {$ifend} {$define DelphiXEAndUp} {$ifend} {$if CompilerVersion>=23.0} {$if CompilerVersion=23.0} {$define DelphiXE2} {$ifend} {$define DelphiXE2AndUp} {$ifend} {$if CompilerVersion>=24.0} {$if CompilerVersion=24.0} {$define DelphiXE3} {$ifend} {$define DelphiXE3AndUp} {$ifend} {$if CompilerVersion>=25.0} {$if CompilerVersion=25.0} {$define DelphiXE4} {$ifend} {$define DelphiXE4AndUp} {$ifend} {$if CompilerVersion>=26.0} {$if CompilerVersion=26.0} {$define DelphiXE5} {$ifend} {$define DelphiXE5AndUp} {$ifend} {$if CompilerVersion>=27.0} {$if CompilerVersion=27.0} {$define DelphiXE6} {$ifend} {$define DelphiXE6AndUp} {$ifend} {$if CompilerVersion>=28.0} {$if CompilerVersion=28.0} {$define DelphiXE7} {$ifend} {$define DelphiXE7AndUp} {$ifend} {$if CompilerVersion>=29.0} {$if CompilerVersion=29.0} {$define DelphiXE8} {$ifend} {$define DelphiXE8AndUp} {$ifend} {$if CompilerVersion>=30.0} {$if CompilerVersion=30.0} {$define Delphi10Seattle} {$ifend} {$define Delphi10SeattleAndUp} {$ifend} {$if CompilerVersion>=31.0} {$if CompilerVersion=31.0} {$define Delphi10Berlin} {$ifend} {$define Delphi10BerlinAndUp} {$ifend} {$endif} {$ifndef Delphi4or5} {$ifndef BCB} {$define Delphi6AndUp} {$endif} {$ifndef Delphi6} {$define BCB6OrDelphi7AndUp} {$ifndef BCB} {$define Delphi7AndUp} {$endif} {$ifndef BCB} {$ifndef Delphi7} {$ifndef Delphi2005} {$define BDS2006AndUp} {$endif} {$endif} {$endif} {$endif} {$endif} {$ifdef Delphi6AndUp} {$warn symbol_platform off} {$warn symbol_deprecated off} {$endif} {$endif} {$ifdef win32} {$define windows} {$endif} {$ifdef win64} {$define windows} {$endif} {$ifdef wince} {$define windows} {$endif} {$rangechecks off} {$extendedsyntax on} {$writeableconst on} {$hints off} {$booleval off} {$typedaddress off} {$stackframes off} {$varstringchecks on} {$typeinfo on} {$overflowchecks off} {$longstrings on} {$openstrings on} interface uses SysUtils,Classes; const suDONOTKNOW=-1; suNOUTF8=0; suPOSSIBLEUTF8=1; suISUTF8=2; ucACCEPT=0; ucERROR=16; cpLATIN1=28591; cpISO_8859_1=28591; cpUTF16LE=1200; cpUTF16BE=1201; cpUTF7=65000; cpUTF8=65001; type PPUCUInt8=^TPUCUInt8; TPUCUInt8={$ifdef fpc}Int8{$else}ShortInt{$endif}; PPUCUUInt8=^TPUCUUInt8; TPUCUUInt8={$ifdef fpc}UInt8{$else}Byte{$endif}; PPUCUInt16=^TPUCUInt16; TPUCUInt16={$ifdef fpc}Int16{$else}SmallInt{$endif}; PPUCUUInt16=^TPUCUUInt16; TPUCUUInt16={$ifdef fpc}UInt16{$else}Word{$endif}; PPUCUInt32=^TPUCUInt32; TPUCUInt32={$ifdef fpc}Int32{$else}LongInt{$endif}; PPUCUUInt32=^TPUCUUInt32; TPUCUUInt32={$ifdef fpc}UInt32{$else}LongWord{$endif}; PPUCUInt64=^TPUCUInt64; TPUCUInt64=Int64; PPUCUUInt64=^TPUCUUInt64; TPUCUUInt64=UInt64; PPUCUPtrUInt=^TPUCUPtrUInt; PPUCUPtrInt=^TPUCUPtrInt; {$ifdef fpc} TPUCUPtrUInt=PtrUInt; TPUCUPtrInt=PtrInt; {$else} {$if Declared(CompilerVersion) and (CompilerVersion>=23.0)} TPUCUPtrUInt=NativeUInt; TPUCUPtrInt=NativeInt; {$else} {$ifdef cpu64} TPUCUPtrUInt=UInt64; TPUCUPtrInt=int64; {$else} TPUCUPtrUInt=TPUCUUInt32; TPUCUPtrInt=TPUCUInt32; {$endif} {$ifend} {$endif} PPUCUNativeUInt=^TPUCUNativeUInt; PPUCUNativeInt=^TPUCUNativeInt; TPUCUNativeUInt=TPUCUPtrUInt; TPUCUNativeInt=TPUCUPtrInt; PPUCURawByteChar=PAnsiChar; TPUCURawByteChar=AnsiChar; PPUCURawByteCharSet=^TPUCURawByteCharSet; TPUCURawByteCharSet=set of TPUCURawByteChar; PPUCURawByteString=^TPUCURawByteString; TPUCURawByteString={$ifdef HAS_TYPE_RAWBYTESTRING}RawByteString{$else}AnsiString{$endif}; PPUCUUTF8Char=PAnsiChar; TPUCUUTF8Char=AnsiChar; PPUCUUTF8String=^TPUCUUTF8String; TPUCUUTF8String={$ifdef HAS_TYPE_UTF8STRING}UTF8String{$else}AnsiString{$endif}; PPUCUUTF16Char={$ifdef HAS_TYPE_UNICODESTRING}{$ifdef fpc}PUnicodeChar{$else}PWideChar{$endif}{$else}PWideChar{$endif}; TPUCUUTF16Char={$ifdef HAS_TYPE_UNICODESTRING}{$ifdef fpc}UnicodeChar{$else}WideChar{$endif}{$else}WideChar{$endif}; PPUCUUTF16String=^TPUCUUTF16String; TPUCUUTF16String={$ifdef HAS_TYPE_UNICODESTRING}UnicodeString{$else}WideString{$endif}; PPUCUUTF32Char=^TPUCUUTF32Char; TPUCUUTF32Char=TPUCUInt32; TPUCUUTF32String=array of TPUCUUTF32Char; type TPUCUUnicodeBlock=record Name:TPUCURawByteString; FromChar,ToChar:longword; end; const PUCUUnicodeBlockCount=327; PUCUUnicodeBlocks:array[0..326] of TPUCUUnicodeBlock=( (Name:'Basic Latin';FromChar:0;ToChar:127), (Name:'Latin-1 Supplement';FromChar:128;ToChar:255), (Name:'Latin Extended-A';FromChar:256;ToChar:383), (Name:'Latin Extended-B';FromChar:384;ToChar:591), (Name:'IPA Extensions';FromChar:592;ToChar:687), (Name:'Spacing Modifier Letters';FromChar:688;ToChar:767), (Name:'Combining Diacritical Marks';FromChar:768;ToChar:879), (Name:'Greek and Coptic';FromChar:880;ToChar:1023), (Name:'Cyrillic';FromChar:1024;ToChar:1279), (Name:'Cyrillic Supplement';FromChar:1280;ToChar:1327), (Name:'Armenian';FromChar:1328;ToChar:1423), (Name:'Hebrew';FromChar:1424;ToChar:1535), (Name:'Arabic';FromChar:1536;ToChar:1791), (Name:'Syriac';FromChar:1792;ToChar:1871), (Name:'Arabic Supplement';FromChar:1872;ToChar:1919), (Name:'Thaana';FromChar:1920;ToChar:1983), (Name:'NKo';FromChar:1984;ToChar:2047), (Name:'Samaritan';FromChar:2048;ToChar:2111), (Name:'Mandaic';FromChar:2112;ToChar:2143), (Name:'Syriac Supplement';FromChar:2144;ToChar:2159), (Name:'Arabic Extended-B';FromChar:2160;ToChar:2207), (Name:'Arabic Extended-A';FromChar:2208;ToChar:2303), (Name:'Devanagari';FromChar:2304;ToChar:2431), (Name:'Bengali';FromChar:2432;ToChar:2559), (Name:'Gurmukhi';FromChar:2560;ToChar:2687), (Name:'Gujarati';FromChar:2688;ToChar:2815), (Name:'Oriya';FromChar:2816;ToChar:2943), (Name:'Tamil';FromChar:2944;ToChar:3071), (Name:'Telugu';FromChar:3072;ToChar:3199), (Name:'Kannada';FromChar:3200;ToChar:3327), (Name:'Malayalam';FromChar:3328;ToChar:3455), (Name:'Sinhala';FromChar:3456;ToChar:3583), (Name:'Thai';FromChar:3584;ToChar:3711), (Name:'Lao';FromChar:3712;ToChar:3839), (Name:'Tibetan';FromChar:3840;ToChar:4095), (Name:'Myanmar';FromChar:4096;ToChar:4255), (Name:'Georgian';FromChar:4256;ToChar:4351), (Name:'Hangul Jamo';FromChar:4352;ToChar:4607), (Name:'Ethiopic';FromChar:4608;ToChar:4991), (Name:'Ethiopic Supplement';FromChar:4992;ToChar:5023), (Name:'Cherokee';FromChar:5024;ToChar:5119), (Name:'Unified Canadian Aboriginal Syllabics';FromChar:5120;ToChar:5759), (Name:'Ogham';FromChar:5760;ToChar:5791), (Name:'Runic';FromChar:5792;ToChar:5887), (Name:'Tagalog';FromChar:5888;ToChar:5919), (Name:'Hanunoo';FromChar:5920;ToChar:5951), (Name:'Buhid';FromChar:5952;ToChar:5983), (Name:'Tagbanwa';FromChar:5984;ToChar:6015), (Name:'Khmer';FromChar:6016;ToChar:6143), (Name:'Mongolian';FromChar:6144;ToChar:6319), (Name:'Unified Canadian Aboriginal Syllabics Extended';FromChar:6320;ToChar:6399), (Name:'Limbu';FromChar:6400;ToChar:6479), (Name:'Tai Le';FromChar:6480;ToChar:6527), (Name:'New Tai Lue';FromChar:6528;ToChar:6623), (Name:'Khmer Symbols';FromChar:6624;ToChar:6655), (Name:'Buginese';FromChar:6656;ToChar:6687), (Name:'Tai Tham';FromChar:6688;ToChar:6831), (Name:'Combining Diacritical Marks Extended';FromChar:6832;ToChar:6911), (Name:'Balinese';FromChar:6912;ToChar:7039), (Name:'Sundanese';FromChar:7040;ToChar:7103), (Name:'Batak';FromChar:7104;ToChar:7167), (Name:'Lepcha';FromChar:7168;ToChar:7247), (Name:'Ol Chiki';FromChar:7248;ToChar:7295), (Name:'Cyrillic Extended-C';FromChar:7296;ToChar:7311), (Name:'Georgian Extended';FromChar:7312;ToChar:7359), (Name:'Sundanese Supplement';FromChar:7360;ToChar:7375), (Name:'Vedic Extensions';FromChar:7376;ToChar:7423), (Name:'Phonetic Extensions';FromChar:7424;ToChar:7551), (Name:'Phonetic Extensions Supplement';FromChar:7552;ToChar:7615), (Name:'Combining Diacritical Marks Supplement';FromChar:7616;ToChar:7679), (Name:'Latin Extended Additional';FromChar:7680;ToChar:7935), (Name:'Greek Extended';FromChar:7936;ToChar:8191), (Name:'General Punctuation';FromChar:8192;ToChar:8303), (Name:'Superscripts and Subscripts';FromChar:8304;ToChar:8351), (Name:'Currency Symbols';FromChar:8352;ToChar:8399), (Name:'Combining Diacritical Marks for Symbols';FromChar:8400;ToChar:8447), (Name:'Letterlike Symbols';FromChar:8448;ToChar:8527), (Name:'Number Forms';FromChar:8528;ToChar:8591), (Name:'Arrows';FromChar:8592;ToChar:8703), (Name:'Mathematical Operators';FromChar:8704;ToChar:8959), (Name:'Miscellaneous Technical';FromChar:8960;ToChar:9215), (Name:'Control Pictures';FromChar:9216;ToChar:9279), (Name:'Optical Character Recognition';FromChar:9280;ToChar:9311), (Name:'Enclosed Alphanumerics';FromChar:9312;ToChar:9471), (Name:'Box Drawing';FromChar:9472;ToChar:9599), (Name:'Block Elements';FromChar:9600;ToChar:9631), (Name:'Geometric Shapes';FromChar:9632;ToChar:9727), (Name:'Miscellaneous Symbols';FromChar:9728;ToChar:9983), (Name:'Dingbats';FromChar:9984;ToChar:10175), (Name:'Miscellaneous Mathematical Symbols-A';FromChar:10176;ToChar:10223), (Name:'Supplemental Arrows-A';FromChar:10224;ToChar:10239), (Name:'Braille Patterns';FromChar:10240;ToChar:10495), (Name:'Supplemental Arrows-B';FromChar:10496;ToChar:10623), (Name:'Miscellaneous Mathematical Symbols-B';FromChar:10624;ToChar:10751), (Name:'Supplemental Mathematical Operators';FromChar:10752;ToChar:11007), (Name:'Miscellaneous Symbols and Arrows';FromChar:11008;ToChar:11263), (Name:'Glagolitic';FromChar:11264;ToChar:11359), (Name:'Latin Extended-C';FromChar:11360;ToChar:11391), (Name:'Coptic';FromChar:11392;ToChar:11519), (Name:'Georgian Supplement';FromChar:11520;ToChar:11567), (Name:'Tifinagh';FromChar:11568;ToChar:11647), (Name:'Ethiopic Extended';FromChar:11648;ToChar:11743), (Name:'Cyrillic Extended-A';FromChar:11744;ToChar:11775), (Name:'Supplemental Punctuation';FromChar:11776;ToChar:11903), (Name:'CJK Radicals Supplement';FromChar:11904;ToChar:12031), (Name:'Kangxi Radicals';FromChar:12032;ToChar:12255), (Name:'Ideographic Description Characters';FromChar:12272;ToChar:12287), (Name:'CJK Symbols and Punctuation';FromChar:12288;ToChar:12351), (Name:'Hiragana';FromChar:12352;ToChar:12447), (Name:'Katakana';FromChar:12448;ToChar:12543), (Name:'Bopomofo';FromChar:12544;ToChar:12591), (Name:'Hangul Compatibility Jamo';FromChar:12592;ToChar:12687), (Name:'Kanbun';FromChar:12688;ToChar:12703), (Name:'Bopomofo Extended';FromChar:12704;ToChar:12735), (Name:'CJK Strokes';FromChar:12736;ToChar:12783), (Name:'Katakana Phonetic Extensions';FromChar:12784;ToChar:12799), (Name:'Enclosed CJK Letters and Months';FromChar:12800;ToChar:13055), (Name:'CJK Compatibility';FromChar:13056;ToChar:13311), (Name:'CJK Unified Ideographs Extension A';FromChar:13312;ToChar:19903), (Name:'Yijing Hexagram Symbols';FromChar:19904;ToChar:19967), (Name:'CJK Unified Ideographs';FromChar:19968;ToChar:40959), (Name:'Yi Syllables';FromChar:40960;ToChar:42127), (Name:'Yi Radicals';FromChar:42128;ToChar:42191), (Name:'Lisu';FromChar:42192;ToChar:42239), (Name:'Vai';FromChar:42240;ToChar:42559), (Name:'Cyrillic Extended-B';FromChar:42560;ToChar:42655), (Name:'Bamum';FromChar:42656;ToChar:42751), (Name:'Modifier Tone Letters';FromChar:42752;ToChar:42783), (Name:'Latin Extended-D';FromChar:42784;ToChar:43007), (Name:'Syloti Nagri';FromChar:43008;ToChar:43055), (Name:'Common Indic Number Forms';FromChar:43056;ToChar:43071), (Name:'Phags-pa';FromChar:43072;ToChar:43135), (Name:'Saurashtra';FromChar:43136;ToChar:43231), (Name:'Devanagari Extended';FromChar:43232;ToChar:43263), (Name:'Kayah Li';FromChar:43264;ToChar:43311), (Name:'Rejang';FromChar:43312;ToChar:43359), (Name:'Hangul Jamo Extended-A';FromChar:43360;ToChar:43391), (Name:'Javanese';FromChar:43392;ToChar:43487), (Name:'Myanmar Extended-B';FromChar:43488;ToChar:43519), (Name:'Cham';FromChar:43520;ToChar:43615), (Name:'Myanmar Extended-A';FromChar:43616;ToChar:43647), (Name:'Tai Viet';FromChar:43648;ToChar:43743), (Name:'Meetei Mayek Extensions';FromChar:43744;ToChar:43775), (Name:'Ethiopic Extended-A';FromChar:43776;ToChar:43823), (Name:'Latin Extended-E';FromChar:43824;ToChar:43887), (Name:'Cherokee Supplement';FromChar:43888;ToChar:43967), (Name:'Meetei Mayek';FromChar:43968;ToChar:44031), (Name:'Hangul Syllables';FromChar:44032;ToChar:55215), (Name:'Hangul Jamo Extended-B';FromChar:55216;ToChar:55295), (Name:'High Surrogates';FromChar:55296;ToChar:56191), (Name:'High Private Use Surrogates';FromChar:56192;ToChar:56319), (Name:'Low Surrogates';FromChar:56320;ToChar:57343), (Name:'Private Use Area';FromChar:57344;ToChar:63743), (Name:'CJK Compatibility Ideographs';FromChar:63744;ToChar:64255), (Name:'Alphabetic Presentation Forms';FromChar:64256;ToChar:64335), (Name:'Arabic Presentation Forms-A';FromChar:64336;ToChar:65023), (Name:'Variation Selectors';FromChar:65024;ToChar:65039), (Name:'Vertical Forms';FromChar:65040;ToChar:65055), (Name:'Combining Half Marks';FromChar:65056;ToChar:65071), (Name:'CJK Compatibility Forms';FromChar:65072;ToChar:65103), (Name:'Small Form Variants';FromChar:65104;ToChar:65135), (Name:'Arabic Presentation Forms-B';FromChar:65136;ToChar:65279), (Name:'Halfwidth and Fullwidth Forms';FromChar:65280;ToChar:65519), (Name:'Specials';FromChar:65520;ToChar:65535), (Name:'Linear B Syllabary';FromChar:65536;ToChar:65663), (Name:'Linear B Ideograms';FromChar:65664;ToChar:65791), (Name:'Aegean Numbers';FromChar:65792;ToChar:65855), (Name:'Ancient Greek Numbers';FromChar:65856;ToChar:65935), (Name:'Ancient Symbols';FromChar:65936;ToChar:65999), (Name:'Phaistos Disc';FromChar:66000;ToChar:66047), (Name:'Lycian';FromChar:66176;ToChar:66207), (Name:'Carian';FromChar:66208;ToChar:66271), (Name:'Coptic Epact Numbers';FromChar:66272;ToChar:66303), (Name:'Old Italic';FromChar:66304;ToChar:66351), (Name:'Gothic';FromChar:66352;ToChar:66383), (Name:'Old Permic';FromChar:66384;ToChar:66431), (Name:'Ugaritic';FromChar:66432;ToChar:66463), (Name:'Old Persian';FromChar:66464;ToChar:66527), (Name:'Deseret';FromChar:66560;ToChar:66639), (Name:'Shavian';FromChar:66640;ToChar:66687), (Name:'Osmanya';FromChar:66688;ToChar:66735), (Name:'Osage';FromChar:66736;ToChar:66815), (Name:'Elbasan';FromChar:66816;ToChar:66863), (Name:'Caucasian Albanian';FromChar:66864;ToChar:66927), (Name:'Vithkuqi';FromChar:66928;ToChar:67007), (Name:'Linear A';FromChar:67072;ToChar:67455), (Name:'Latin Extended-F';FromChar:67456;ToChar:67519), (Name:'Cypriot Syllabary';FromChar:67584;ToChar:67647), (Name:'Imperial Aramaic';FromChar:67648;ToChar:67679), (Name:'Palmyrene';FromChar:67680;ToChar:67711), (Name:'Nabataean';FromChar:67712;ToChar:67759), (Name:'Hatran';FromChar:67808;ToChar:67839), (Name:'Phoenician';FromChar:67840;ToChar:67871), (Name:'Lydian';FromChar:67872;ToChar:67903), (Name:'Meroitic Hieroglyphs';FromChar:67968;ToChar:67999), (Name:'Meroitic Cursive';FromChar:68000;ToChar:68095), (Name:'Kharoshthi';FromChar:68096;ToChar:68191), (Name:'Old South Arabian';FromChar:68192;ToChar:68223), (Name:'Old North Arabian';FromChar:68224;ToChar:68255), (Name:'Manichaean';FromChar:68288;ToChar:68351), (Name:'Avestan';FromChar:68352;ToChar:68415), (Name:'Inscriptional Parthian';FromChar:68416;ToChar:68447), (Name:'Inscriptional Pahlavi';FromChar:68448;ToChar:68479), (Name:'Psalter Pahlavi';FromChar:68480;ToChar:68527), (Name:'Old Turkic';FromChar:68608;ToChar:68687), (Name:'Old Hungarian';FromChar:68736;ToChar:68863), (Name:'Hanifi Rohingya';FromChar:68864;ToChar:68927), (Name:'Rumi Numeral Symbols';FromChar:69216;ToChar:69247), (Name:'Yezidi';FromChar:69248;ToChar:69311), (Name:'Arabic Extended-C';FromChar:69312;ToChar:69375), (Name:'Old Sogdian';FromChar:69376;ToChar:69423), (Name:'Sogdian';FromChar:69424;ToChar:69487), (Name:'Old Uyghur';FromChar:69488;ToChar:69551), (Name:'Chorasmian';FromChar:69552;ToChar:69599), (Name:'Elymaic';FromChar:69600;ToChar:69631), (Name:'Brahmi';FromChar:69632;ToChar:69759), (Name:'Kaithi';FromChar:69760;ToChar:69839), (Name:'Sora Sompeng';FromChar:69840;ToChar:69887), (Name:'Chakma';FromChar:69888;ToChar:69967), (Name:'Mahajani';FromChar:69968;ToChar:70015), (Name:'Sharada';FromChar:70016;ToChar:70111), (Name:'Sinhala Archaic Numbers';FromChar:70112;ToChar:70143), (Name:'Khojki';FromChar:70144;ToChar:70223), (Name:'Multani';FromChar:70272;ToChar:70319), (Name:'Khudawadi';FromChar:70320;ToChar:70399), (Name:'Grantha';FromChar:70400;ToChar:70527), (Name:'Newa';FromChar:70656;ToChar:70783), (Name:'Tirhuta';FromChar:70784;ToChar:70879), (Name:'Siddham';FromChar:71040;ToChar:71167), (Name:'Modi';FromChar:71168;ToChar:71263), (Name:'Mongolian Supplement';FromChar:71264;ToChar:71295), (Name:'Takri';FromChar:71296;ToChar:71375), (Name:'Ahom';FromChar:71424;ToChar:71503), (Name:'Dogra';FromChar:71680;ToChar:71759), (Name:'Warang Citi';FromChar:71840;ToChar:71935), (Name:'Dives Akuru';FromChar:71936;ToChar:72031), (Name:'Nandinagari';FromChar:72096;ToChar:72191), (Name:'Zanabazar Square';FromChar:72192;ToChar:72271), (Name:'Soyombo';FromChar:72272;ToChar:72367), (Name:'Unified Canadian Aboriginal Syllabics Extended-A';FromChar:72368;ToChar:72383), (Name:'Pau Cin Hau';FromChar:72384;ToChar:72447), (Name:'Devanagari Extended-A';FromChar:72448;ToChar:72543), (Name:'Bhaiksuki';FromChar:72704;ToChar:72815), (Name:'Marchen';FromChar:72816;ToChar:72895), (Name:'Masaram Gondi';FromChar:72960;ToChar:73055), (Name:'Gunjala Gondi';FromChar:73056;ToChar:73135), (Name:'Makasar';FromChar:73440;ToChar:73471), (Name:'Kawi';FromChar:73472;ToChar:73567), (Name:'Lisu Supplement';FromChar:73648;ToChar:73663), (Name:'Tamil Supplement';FromChar:73664;ToChar:73727), (Name:'Cuneiform';FromChar:73728;ToChar:74751), (Name:'Cuneiform Numbers and Punctuation';FromChar:74752;ToChar:74879), (Name:'Early Dynastic Cuneiform';FromChar:74880;ToChar:75087), (Name:'Cypro-Minoan';FromChar:77712;ToChar:77823), (Name:'Egyptian Hieroglyphs';FromChar:77824;ToChar:78895), (Name:'Egyptian Hieroglyph Format Controls';FromChar:78896;ToChar:78943), (Name:'Anatolian Hieroglyphs';FromChar:82944;ToChar:83583), (Name:'Bamum Supplement';FromChar:92160;ToChar:92735), (Name:'Mro';FromChar:92736;ToChar:92783), (Name:'Tangsa';FromChar:92784;ToChar:92879), (Name:'Bassa Vah';FromChar:92880;ToChar:92927), (Name:'Pahawh Hmong';FromChar:92928;ToChar:93071), (Name:'Medefaidrin';FromChar:93760;ToChar:93855), (Name:'Miao';FromChar:93952;ToChar:94111), (Name:'Ideographic Symbols and Punctuation';FromChar:94176;ToChar:94207), (Name:'Tangut';FromChar:94208;ToChar:100351), (Name:'Tangut Components';FromChar:100352;ToChar:101119), (Name:'Khitan Small Script';FromChar:101120;ToChar:101631), (Name:'Tangut Supplement';FromChar:101632;ToChar:101759), (Name:'Kana Extended-B';FromChar:110576;ToChar:110591), (Name:'Kana Supplement';FromChar:110592;ToChar:110847), (Name:'Kana Extended-A';FromChar:110848;ToChar:110895), (Name:'Small Kana Extension';FromChar:110896;ToChar:110959), (Name:'Nushu';FromChar:110960;ToChar:111359), (Name:'Duployan';FromChar:113664;ToChar:113823), (Name:'Shorthand Format Controls';FromChar:113824;ToChar:113839), (Name:'Znamenny Musical Notation';FromChar:118528;ToChar:118735), (Name:'Byzantine Musical Symbols';FromChar:118784;ToChar:119039), (Name:'Musical Symbols';FromChar:119040;ToChar:119295), (Name:'Ancient Greek Musical Notation';FromChar:119296;ToChar:119375), (Name:'Kaktovik Numerals';FromChar:119488;ToChar:119519), (Name:'Mayan Numerals';FromChar:119520;ToChar:119551), (Name:'Tai Xuan Jing Symbols';FromChar:119552;ToChar:119647), (Name:'Counting Rod Numerals';FromChar:119648;ToChar:119679), (Name:'Mathematical Alphanumeric Symbols';FromChar:119808;ToChar:120831), (Name:'Sutton SignWriting';FromChar:120832;ToChar:121519), (Name:'Latin Extended-G';FromChar:122624;ToChar:122879), (Name:'Glagolitic Supplement';FromChar:122880;ToChar:122927), (Name:'Cyrillic Extended-D';FromChar:122928;ToChar:123023), (Name:'Nyiakeng Puachue Hmong';FromChar:123136;ToChar:123215), (Name:'Toto';FromChar:123536;ToChar:123583), (Name:'Wancho';FromChar:123584;ToChar:123647), (Name:'Nag Mundari';FromChar:124112;ToChar:124159), (Name:'Ethiopic Extended-B';FromChar:124896;ToChar:124927), (Name:'Mende Kikakui';FromChar:124928;ToChar:125151), (Name:'Adlam';FromChar:125184;ToChar:125279), (Name:'Indic Siyaq Numbers';FromChar:126064;ToChar:126143), (Name:'Ottoman Siyaq Numbers';FromChar:126208;ToChar:126287), (Name:'Arabic Mathematical Alphabetic Symbols';FromChar:126464;ToChar:126719), (Name:'Mahjong Tiles';FromChar:126976;ToChar:127023), (Name:'Domino Tiles';FromChar:127024;ToChar:127135), (Name:'Playing Cards';FromChar:127136;ToChar:127231), (Name:'Enclosed Alphanumeric Supplement';FromChar:127232;ToChar:127487), (Name:'Enclosed Ideographic Supplement';FromChar:127488;ToChar:127743), (Name:'Miscellaneous Symbols and Pictographs';FromChar:127744;ToChar:128511), (Name:'Emoticons';FromChar:128512;ToChar:128591), (Name:'Ornamental Dingbats';FromChar:128592;ToChar:128639), (Name:'Transport and Map Symbols';FromChar:128640;ToChar:128767), (Name:'Alchemical Symbols';FromChar:128768;ToChar:128895), (Name:'Geometric Shapes Extended';FromChar:128896;ToChar:129023), (Name:'Supplemental Arrows-C';FromChar:129024;ToChar:129279), (Name:'Supplemental Symbols and Pictographs';FromChar:129280;ToChar:129535), (Name:'Chess Symbols';FromChar:129536;ToChar:129647), (Name:'Symbols and Pictographs Extended-A';FromChar:129648;ToChar:129791), (Name:'Symbols for Legacy Computing';FromChar:129792;ToChar:130047), (Name:'CJK Unified Ideographs Extension B';FromChar:131072;ToChar:173791), (Name:'CJK Unified Ideographs Extension C';FromChar:173824;ToChar:177983), (Name:'CJK Unified Ideographs Extension D';FromChar:177984;ToChar:178207), (Name:'CJK Unified Ideographs Extension E';FromChar:178208;ToChar:183983), (Name:'CJK Unified Ideographs Extension F';FromChar:183984;ToChar:191471), (Name:'CJK Compatibility Ideographs Supplement';FromChar:194560;ToChar:195103), (Name:'CJK Unified Ideographs Extension G';FromChar:196608;ToChar:201551), (Name:'CJK Unified Ideographs Extension H';FromChar:201552;ToChar:205743), (Name:'Tags';FromChar:917504;ToChar:917631), (Name:'Variation Selectors Supplement';FromChar:917760;ToChar:917999), (Name:'Supplementary Private Use Area-A';FromChar:983040;ToChar:1048575), (Name:'Supplementary Private Use Area-B';FromChar:1048576;ToChar:1114111)); const PUCUUnicodeCategoryIDs:array[0..29] of TPUCURawByteString=( 'Cn', 'Lu', 'Ll', 'Lt', 'Lm', 'Lo', 'Mn', 'Me', 'Mc', 'Nd', 'Nl', 'No', 'Zs', 'Zl', 'Zp', 'Cc', 'Cf', 'Co', 'Cs', 'Pd', 'Ps', 'Pe', 'Pc', 'Po', 'Sm', 'Sc', 'Sk', 'So', 'Pi', 'Pf' ); PUCUUnicodeCategoryCn=0; PUCUUnicodeCategoryLu=1; PUCUUnicodeCategoryLl=2; PUCUUnicodeCategoryLt=3; PUCUUnicodeCategoryLm=4; PUCUUnicodeCategoryLo=5; PUCUUnicodeCategoryMn=6; PUCUUnicodeCategoryMe=7; PUCUUnicodeCategoryMc=8; PUCUUnicodeCategoryNd=9; PUCUUnicodeCategoryNl=10; PUCUUnicodeCategoryNo=11; PUCUUnicodeCategoryZs=12; PUCUUnicodeCategoryZl=13; PUCUUnicodeCategoryZp=14; PUCUUnicodeCategoryCc=15; PUCUUnicodeCategoryCf=16; PUCUUnicodeCategoryCo=17; PUCUUnicodeCategoryCs=18; PUCUUnicodeCategoryPd=19; PUCUUnicodeCategoryPs=20; PUCUUnicodeCategoryPe=21; PUCUUnicodeCategoryPc=22; PUCUUnicodeCategoryPo=23; PUCUUnicodeCategorySm=24; PUCUUnicodeCategorySc=25; PUCUUnicodeCategorySk=26; PUCUUnicodeCategorySo=27; PUCUUnicodeCategoryPi=28; PUCUUnicodeCategoryPf=29; PUCUUnicodeCategoryCount=30; PUCU_CT_UNASSIGNED=PUCUUnicodeCategoryCn; PUCU_CT_UPPERCASE_LETTER=PUCUUnicodeCategoryLu; PUCU_CT_LOWERCASE_LETTER=PUCUUnicodeCategoryLl; PUCU_CT_TITLECASE_LETTER=PUCUUnicodeCategoryLt; PUCU_CT_MODIFIER_LETTER=PUCUUnicodeCategoryLm; PUCU_CT_OTHER_LETTER=PUCUUnicodeCategoryLo; PUCU_CT_NON_SPACING_MARK=PUCUUnicodeCategoryMn; PUCU_CT_ENCLOSING_MARK=PUCUUnicodeCategoryMe; PUCU_CT_COMBINING_SPACING_MARK=PUCUUnicodeCategoryMc; PUCU_CT_DECIMAL_DIGIT_NUMBER=PUCUUnicodeCategoryNd; PUCU_CT_LETTER_NUMBER=PUCUUnicodeCategoryNl; PUCU_CT_OTHER_NUMBER=PUCUUnicodeCategoryNo; PUCU_CT_SPACE_SEPARATOR=PUCUUnicodeCategoryZs; PUCU_CT_LINE_SEPARATOR=PUCUUnicodeCategoryZl; PUCU_CT_PARAGRAPH_SEPARATOR=PUCUUnicodeCategoryZp; PUCU_CT_CONTROL=PUCUUnicodeCategoryCc; PUCU_CT_FORMAT=PUCUUnicodeCategoryCf; PUCU_CT_PRIVATE_USE=PUCUUnicodeCategoryCo; PUCU_CT_SURROGATE=PUCUUnicodeCategoryCs; PUCU_CT_DASH_PUNCTUATION=PUCUUnicodeCategoryPd; PUCU_CT_START_PUNCTUATION=PUCUUnicodeCategoryPs; PUCU_CT_END_PUNCTUATION=PUCUUnicodeCategoryPe; PUCU_CT_INITIAL_PUNCTUATION=PUCUUnicodeCategoryPi; PUCU_CT_FINAL_PUNCTUATION=PUCUUnicodeCategoryPf; PUCU_CT_CONNECTOR_PUNCTUATION=PUCUUnicodeCategoryPc; PUCU_CT_OTHER_PUNCTUATION=PUCUUnicodeCategoryPo; PUCU_CT_MATH_SYMBOL=PUCUUnicodeCategorySm; PUCU_CT_CURRENCY_SYMBOL=PUCUUnicodeCategorySc; PUCU_CT_MODIFIER_SYMBOL=PUCUUnicodeCategorySk; PUCU_CT_OTHER_SYMBOL=PUCUUnicodeCategorySo; const PUCUUnicodeScriptIDs:array[0..163] of TPUCURawByteString=( 'Unknown', 'Common', 'Latin', 'Greek', 'Cyrillic', 'Armenian', 'Hebrew', 'Arabic', 'Syriac', 'Thaana', 'Devanagari', 'Bengali', 'Gurmukhi', 'Gujarati', 'Oriya', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhala', 'Thai', 'Lao', 'Tibetan', 'Myanmar', 'Georgian', 'Hangul', 'Ethiopic', 'Cherokee', 'Canadian_Aboriginal', 'Ogham', 'Runic', 'Khmer', 'Mongolian', 'Hiragana', 'Katakana', 'Bopomofo', 'Han', 'Yi', 'Old_Italic', 'Gothic', 'Deseret', 'Inherited', 'Tagalog', 'Hanunoo', 'Buhid', 'Tagbanwa', 'Limbu', 'Tai_Le', 'Linear_B', 'Ugaritic', 'Shavian', 'Osmanya', 'Cypriot', 'Braille', 'Buginese', 'Coptic', 'New_Tai_Lue', 'Glagolitic', 'Tifinagh', 'Syloti_Nagri', 'Old_Persian', 'Kharoshthi', 'Balinese', 'Cuneiform', 'Phoenician', 'Phags_Pa', 'Nko', 'Sundanese', 'Lepcha', 'Ol_Chiki', 'Vai', 'Saurashtra', 'Kayah_Li', 'Rejang', 'Lycian', 'Carian', 'Lydian', 'Cham', 'Tai_Tham', 'Tai_Viet', 'Avestan', 'Egyptian_Hieroglyphs', 'Samaritan', 'Lisu', 'Bamum', 'Javanese', 'Meetei_Mayek', 'Imperial_Aramaic', 'Old_South_Arabian', 'Inscriptional_Parthian', 'Inscriptional_Pahlavi', 'Old_Turkic', 'Kaithi', 'Batak', 'Brahmi', 'Mandaic', 'Chakma', 'Meroitic_Cursive', 'Meroitic_Hieroglyphs', 'Miao', 'Sharada', 'Sora_Sompeng', 'Takri', 'Caucasian_Albanian', 'Bassa_Vah', 'Duployan', 'Elbasan', 'Grantha', 'Pahawh_Hmong', 'Khojki', 'Linear_A', 'Mahajani', 'Manichaean', 'Mende_Kikakui', 'Modi', 'Mro', 'Old_North_Arabian', 'Nabataean', 'Palmyrene', 'Pau_Cin_Hau', 'Old_Permic', 'Psalter_Pahlavi', 'Siddham', 'Khudawadi', 'Tirhuta', 'Warang_Citi', 'Ahom', 'Anatolian_Hieroglyphs', 'Hatran', 'Multani', 'Old_Hungarian', 'SignWriting', 'Adlam', 'Bhaiksuki', 'Marchen', 'Newa', 'Osage', 'Tangut', 'Masaram_Gondi', 'Nushu', 'Soyombo', 'Zanabazar_Square', 'Dogra', 'Gunjala_Gondi', 'Makasar', 'Medefaidrin', 'Hanifi_Rohingya', 'Sogdian', 'Old_Sogdian', 'Elymaic', 'Nandinagari', 'Nyiakeng_Puachue_Hmong', 'Wancho', 'Chorasmian', 'Dives_Akuru', 'Khitan_Small_Script', 'Yezidi', 'Cypro_Minoan', 'Old_Uyghur', 'Tangsa', 'Toto', 'Vithkuqi', 'Kawi', 'Nag_Mundari' ); PUCUUnicodeScriptUnknown=0; PUCUUnicodeScriptCommon=1; PUCUUnicodeScriptLatin=2; PUCUUnicodeScriptGreek=3; PUCUUnicodeScriptCyrillic=4; PUCUUnicodeScriptArmenian=5; PUCUUnicodeScriptHebrew=6; PUCUUnicodeScriptArabic=7; PUCUUnicodeScriptSyriac=8; PUCUUnicodeScriptThaana=9; PUCUUnicodeScriptDevanagari=10; PUCUUnicodeScriptBengali=11; PUCUUnicodeScriptGurmukhi=12; PUCUUnicodeScriptGujarati=13; PUCUUnicodeScriptOriya=14; PUCUUnicodeScriptTamil=15; PUCUUnicodeScriptTelugu=16; PUCUUnicodeScriptKannada=17; PUCUUnicodeScriptMalayalam=18; PUCUUnicodeScriptSinhala=19; PUCUUnicodeScriptThai=20; PUCUUnicodeScriptLao=21; PUCUUnicodeScriptTibetan=22; PUCUUnicodeScriptMyanmar=23; PUCUUnicodeScriptGeorgian=24; PUCUUnicodeScriptHangul=25; PUCUUnicodeScriptEthiopic=26; PUCUUnicodeScriptCherokee=27; PUCUUnicodeScriptCanadian_Aboriginal=28; PUCUUnicodeScriptOgham=29; PUCUUnicodeScriptRunic=30; PUCUUnicodeScriptKhmer=31; PUCUUnicodeScriptMongolian=32; PUCUUnicodeScriptHiragana=33; PUCUUnicodeScriptKatakana=34; PUCUUnicodeScriptBopomofo=35; PUCUUnicodeScriptHan=36; PUCUUnicodeScriptYi=37; PUCUUnicodeScriptOld_Italic=38; PUCUUnicodeScriptGothic=39; PUCUUnicodeScriptDeseret=40; PUCUUnicodeScriptInherited=41; PUCUUnicodeScriptTagalog=42; PUCUUnicodeScriptHanunoo=43; PUCUUnicodeScriptBuhid=44; PUCUUnicodeScriptTagbanwa=45; PUCUUnicodeScriptLimbu=46; PUCUUnicodeScriptTai_Le=47; PUCUUnicodeScriptLinear_B=48; PUCUUnicodeScriptUgaritic=49; PUCUUnicodeScriptShavian=50; PUCUUnicodeScriptOsmanya=51; PUCUUnicodeScriptCypriot=52; PUCUUnicodeScriptBraille=53; PUCUUnicodeScriptBuginese=54; PUCUUnicodeScriptCoptic=55; PUCUUnicodeScriptNew_Tai_Lue=56; PUCUUnicodeScriptGlagolitic=57; PUCUUnicodeScriptTifinagh=58; PUCUUnicodeScriptSyloti_Nagri=59; PUCUUnicodeScriptOld_Persian=60; PUCUUnicodeScriptKharoshthi=61; PUCUUnicodeScriptBalinese=62; PUCUUnicodeScriptCuneiform=63; PUCUUnicodeScriptPhoenician=64; PUCUUnicodeScriptPhags_Pa=65; PUCUUnicodeScriptNko=66; PUCUUnicodeScriptSundanese=67; PUCUUnicodeScriptLepcha=68; PUCUUnicodeScriptOl_Chiki=69; PUCUUnicodeScriptVai=70; PUCUUnicodeScriptSaurashtra=71; PUCUUnicodeScriptKayah_Li=72; PUCUUnicodeScriptRejang=73; PUCUUnicodeScriptLycian=74; PUCUUnicodeScriptCarian=75; PUCUUnicodeScriptLydian=76; PUCUUnicodeScriptCham=77; PUCUUnicodeScriptTai_Tham=78; PUCUUnicodeScriptTai_Viet=79; PUCUUnicodeScriptAvestan=80; PUCUUnicodeScriptEgyptian_Hieroglyphs=81; PUCUUnicodeScriptSamaritan=82; PUCUUnicodeScriptLisu=83; PUCUUnicodeScriptBamum=84; PUCUUnicodeScriptJavanese=85; PUCUUnicodeScriptMeetei_Mayek=86; PUCUUnicodeScriptImperial_Aramaic=87; PUCUUnicodeScriptOld_South_Arabian=88; PUCUUnicodeScriptInscriptional_Parthian=89; PUCUUnicodeScriptInscriptional_Pahlavi=90; PUCUUnicodeScriptOld_Turkic=91; PUCUUnicodeScriptKaithi=92; PUCUUnicodeScriptBatak=93; PUCUUnicodeScriptBrahmi=94; PUCUUnicodeScriptMandaic=95; PUCUUnicodeScriptChakma=96; PUCUUnicodeScriptMeroitic_Cursive=97; PUCUUnicodeScriptMeroitic_Hieroglyphs=98; PUCUUnicodeScriptMiao=99; PUCUUnicodeScriptSharada=100; PUCUUnicodeScriptSora_Sompeng=101; PUCUUnicodeScriptTakri=102; PUCUUnicodeScriptCaucasian_Albanian=103; PUCUUnicodeScriptBassa_Vah=104; PUCUUnicodeScriptDuployan=105; PUCUUnicodeScriptElbasan=106; PUCUUnicodeScriptGrantha=107; PUCUUnicodeScriptPahawh_Hmong=108; PUCUUnicodeScriptKhojki=109; PUCUUnicodeScriptLinear_A=110; PUCUUnicodeScriptMahajani=111; PUCUUnicodeScriptManichaean=112; PUCUUnicodeScriptMende_Kikakui=113; PUCUUnicodeScriptModi=114; PUCUUnicodeScriptMro=115; PUCUUnicodeScriptOld_North_Arabian=116; PUCUUnicodeScriptNabataean=117; PUCUUnicodeScriptPalmyrene=118; PUCUUnicodeScriptPau_Cin_Hau=119; PUCUUnicodeScriptOld_Permic=120; PUCUUnicodeScriptPsalter_Pahlavi=121; PUCUUnicodeScriptSiddham=122; PUCUUnicodeScriptKhudawadi=123; PUCUUnicodeScriptTirhuta=124; PUCUUnicodeScriptWarang_Citi=125; PUCUUnicodeScriptAhom=126; PUCUUnicodeScriptAnatolian_Hieroglyphs=127; PUCUUnicodeScriptHatran=128; PUCUUnicodeScriptMultani=129; PUCUUnicodeScriptOld_Hungarian=130; PUCUUnicodeScriptSignWriting=131; PUCUUnicodeScriptAdlam=132; PUCUUnicodeScriptBhaiksuki=133; PUCUUnicodeScriptMarchen=134; PUCUUnicodeScriptNewa=135; PUCUUnicodeScriptOsage=136; PUCUUnicodeScriptTangut=137; PUCUUnicodeScriptMasaram_Gondi=138; PUCUUnicodeScriptNushu=139; PUCUUnicodeScriptSoyombo=140; PUCUUnicodeScriptZanabazar_Square=141; PUCUUnicodeScriptDogra=142; PUCUUnicodeScriptGunjala_Gondi=143; PUCUUnicodeScriptMakasar=144; PUCUUnicodeScriptMedefaidrin=145; PUCUUnicodeScriptHanifi_Rohingya=146; PUCUUnicodeScriptSogdian=147; PUCUUnicodeScriptOld_Sogdian=148; PUCUUnicodeScriptElymaic=149; PUCUUnicodeScriptNandinagari=150; PUCUUnicodeScriptNyiakeng_Puachue_Hmong=151; PUCUUnicodeScriptWancho=152; PUCUUnicodeScriptChorasmian=153; PUCUUnicodeScriptDives_Akuru=154; PUCUUnicodeScriptKhitan_Small_Script=155; PUCUUnicodeScriptYezidi=156; PUCUUnicodeScriptCypro_Minoan=157; PUCUUnicodeScriptOld_Uyghur=158; PUCUUnicodeScriptTangsa=159; PUCUUnicodeScriptToto=160; PUCUUnicodeScriptVithkuqi=161; PUCUUnicodeScriptKawi=162; PUCUUnicodeScriptNag_Mundari=163; PUCUUnicodeScriptCount=164; const PUCUUnicodeCharacterCompositionHashTableBits=10; PUCUUnicodeCharacterCompositionHashTableSize=1024; PUCUUnicodeCharacterCompositionHashTableMask=1023; const PUCUUnicodeCharacterCompositionHashTableData:array[0..1023] of word=( 0,148,449,537,0,0,59,259,0,0,0,499,540,511,0,314,0,0,0,444,518,188,5,542,107,415, 382,249,269,576,364,0,688,0,692,0,553,0,0,265,669,616,0,0,256,0,0,67,300,167,685, 609,0,0,0,0,0,0,641,0,0,603,413,111,0,0,493,539,0,0,0,0,96,212,0,0,264,58,0,156,247, 122,360,0,0,274,0,478,517,92,530,0,0,0,581,0,541,531,615,0,0,0,626,0,0,689,0,0,0, 0,505,0,574,0,0,676,0,0,0,0,0,352,0,0,0,0,0,491,336,0,399,0,0,648,0,653,73,0,490, 349,526,0,0,0,593,0,427,0,226,573,170,552,0,0,0,0,565,622,0,625,262,0,0,98,0,0,0, 392,0,419,0,339,548,0,350,484,0,0,158,0,0,429,0,0,0,321,682,462,178,0,690,229,696, 0,661,146,663,0,670,0,642,0,0,0,0,0,0,0,0,483,0,705,0,0,621,39,0,311,0,359,605,296, 85,61,481,331,455,0,326,0,0,0,0,0,0,0,0,219,0,317,215,222,324,169,596,0,0,319,159, 656,0,0,500,571,0,0,0,677,0,497,0,630,242,691,0,154,0,612,87,614,0,253,223,354,0, 649,0,40,370,0,0,683,0,234,0,600,12,297,0,0,0,515,654,0,0,74,0,561,0,330,0,243,0, 343,0,0,582,398,132,0,699,0,293,171,0,488,0,423,235,568,608,0,0,0,611,701,613,0,0, 0,0,325,0,237,527,173,450,0,664,0,671,0,0,0,0,165,655,0,0,390,461,0,327,335,0,583, 636,0,643,0,0,0,142,0,417,0,389,0,232,308,538,0,0,0,322,428,495,697,508,0,0,332,263, 0,160,0,0,424,24,0,0,438,0,588,280,0,0,0,0,700,0,684,545,91,185,479,0,0,346,0,245, 0,230,0,0,250,0,650,446,532,0,520,0,0,0,0,0,0,504,0,434,0,454,0,477,0,0,514,357,694, 0,0,0,0,0,0,0,0,0,0,408,284,473,93,0,189,594,535,0,152,0,255,534,0,0,313,345,356, 248,0,0,0,89,0,187,414,522,0,0,0,665,0,672,0,0,0,0,0,0,0,0,162,0,0,0,0,0,186,637, 592,644,0,0,629,0,0,0,367,0,110,0,246,528,144,0,652,267,103,17,348,567,0,0,0,0,0, 0,0,47,0,0,0,578,0,136,529,0,0,306,179,586,0,0,310,628,0,0,0,0,693,0,337,503,0,0, 0,0,0,0,0,0,657,0,0,0,0,557,464,0,0,0,0,0,0,0,0,0,0,119,0,681,456,0,585,0,0,268,0, 0,207,101,141,168,299,221,323,318,0,0,0,0,524,0,634,0,0,50,411,575,0,0,620,0,100, 260,0,0,72,3,607,0,0,0,610,673,307,19,0,686,225,0,4,0,106,295,49,0,0,666,363,638, 509,645,0,0,445,577,56,0,695,0,590,0,0,0,0,0,375,523,0,633,0,0,123,0,0,0,0,619,199, 0,0,53,0,702,679,209,279,0,378,282,0,0,466,0,0,0,290,403,0,0,0,599,6,0,660,275,0, 471,108,0,365,0,698,0,0,97,0,0,0,394,0,421,0,340,0,0,632,486,0,10,0,0,0,547,618,0, 0,368,0,0,480,1,606,112,31,0,396,0,0,0,602,0,0,155,513,0,521,554,533,387,0,0,584, 0,425,374,116,303,0,201,0,0,15,45,563,0,0,678,0,0,0,0,286,631,0,525,385,0,386,667, 34,674,131,646,0,126,0,659,0,516,0,379,0,0,0,0,0,639,0,506,0,46,550,0,0,598,25,304, 0,0,0,0,0,512,0,0,0,0,291,18,546,0,184,0,278,120,587,566,0,271,459,0,0,26,510,0,498, 75,150,0,258,0,604,281,0,0,0,0,121,204,662,7,0,0,559,0,292,228,32,366,0,0,20,0,0, 305,474,0,409,0,431,0,27,94,0,0,22,254,0,704,113,0,0,570,377,0,369,0,502,579,0,0, 0,0,11,601,102,0,0,0,0,0,544,597,0,329,0,0,0,0,0,0,37,658,351,397,192,0,133,0,0,668, 294,487,145,0,208,651,0,283,0,0,0,0,0,0,206,153,139,640,489,647,0,0,0,501,0,0,371, 0,309,0,624,0,0,0,14,0,0,362,442,334,0,0,0,0,703,0,555,551,418,0,0,0,432,543,452, 391,475,0,302,117,687,16,135,0,200,0,0,0,44,0,99,402,519,0,675,440,680,589,0,437, 0,0,0,0,128,196,0,623,635,496,0,627,451,0,0,0,430,83,0,298,0); type PPUCUUnicodeCharacterCompositionSequence=^TPUCUUnicodeCharacterCompositionSequence; TPUCUUnicodeCharacterCompositionSequence=record Sequence:array[0..1] of longword; CodePoint:longword; Next:word; end; const PUCUUnicodeCharacterCompositionSequenceCount=706; PUCUUnicodeCharacterCompositionSequences:array[0..705] of TPUCUUnicodeCharacterCompositionSequence=( (Sequence:(0,0);CodePoint:0;Next:0), (Sequence:(60,824);CodePoint:8814;Next:0), (Sequence:(61,824);CodePoint:8800;Next:0), (Sequence:(62,824);CodePoint:8815;Next:0), (Sequence:(65,768);CodePoint:192;Next:0), (Sequence:(65,769);CodePoint:193;Next:0), (Sequence:(65,770);CodePoint:194;Next:0), (Sequence:(65,771);CodePoint:195;Next:0), (Sequence:(65,772);CodePoint:256;Next:0), (Sequence:(65,774);CodePoint:258;Next:0), (Sequence:(65,775);CodePoint:550;Next:0), (Sequence:(65,776);CodePoint:196;Next:0), (Sequence:(65,777);CodePoint:7842;Next:0), (Sequence:(65,778);CodePoint:197;Next:0), (Sequence:(65,778);CodePoint:8491;Next:13), (Sequence:(65,780);CodePoint:461;Next:0), (Sequence:(65,783);CodePoint:512;Next:0), (Sequence:(65,785);CodePoint:514;Next:0), (Sequence:(65,803);CodePoint:7840;Next:0), (Sequence:(65,805);CodePoint:7680;Next:0), (Sequence:(65,808);CodePoint:260;Next:0), (Sequence:(66,775);CodePoint:7682;Next:0), (Sequence:(66,803);CodePoint:7684;Next:0), (Sequence:(66,817);CodePoint:7686;Next:0), (Sequence:(67,769);CodePoint:262;Next:0), (Sequence:(67,770);CodePoint:264;Next:0), (Sequence:(67,775);CodePoint:266;Next:0), (Sequence:(67,780);CodePoint:268;Next:0), (Sequence:(67,807);CodePoint:199;Next:0), (Sequence:(68,775);CodePoint:7690;Next:0), (Sequence:(68,780);CodePoint:270;Next:0), (Sequence:(68,803);CodePoint:7692;Next:0), (Sequence:(68,807);CodePoint:7696;Next:0), (Sequence:(68,813);CodePoint:7698;Next:0), (Sequence:(68,817);CodePoint:7694;Next:0), (Sequence:(69,768);CodePoint:200;Next:0), (Sequence:(69,769);CodePoint:201;Next:0), (Sequence:(69,770);CodePoint:202;Next:0), (Sequence:(69,771);CodePoint:7868;Next:0), (Sequence:(69,772);CodePoint:274;Next:0), (Sequence:(69,774);CodePoint:276;Next:0), (Sequence:(69,775);CodePoint:278;Next:0), (Sequence:(69,776);CodePoint:203;Next:0), (Sequence:(69,777);CodePoint:7866;Next:0), (Sequence:(69,780);CodePoint:282;Next:0), (Sequence:(69,783);CodePoint:516;Next:0), (Sequence:(69,785);CodePoint:518;Next:28), (Sequence:(69,803);CodePoint:7864;Next:0), (Sequence:(69,807);CodePoint:552;Next:0), (Sequence:(69,808);CodePoint:280;Next:0), (Sequence:(69,813);CodePoint:7704;Next:0), (Sequence:(69,816);CodePoint:7706;Next:0), (Sequence:(70,775);CodePoint:7710;Next:0), (Sequence:(71,769);CodePoint:500;Next:0), (Sequence:(71,770);CodePoint:284;Next:0), (Sequence:(71,772);CodePoint:7712;Next:0), (Sequence:(71,774);CodePoint:286;Next:0), (Sequence:(71,775);CodePoint:288;Next:0), (Sequence:(71,780);CodePoint:486;Next:0), (Sequence:(71,807);CodePoint:290;Next:0), (Sequence:(72,770);CodePoint:292;Next:0), (Sequence:(72,775);CodePoint:7714;Next:0), (Sequence:(72,776);CodePoint:7718;Next:0), (Sequence:(72,780);CodePoint:542;Next:0), (Sequence:(72,803);CodePoint:7716;Next:0), (Sequence:(72,807);CodePoint:7720;Next:0), (Sequence:(72,814);CodePoint:7722;Next:0), (Sequence:(73,768);CodePoint:204;Next:0), (Sequence:(73,769);CodePoint:205;Next:0), (Sequence:(73,770);CodePoint:206;Next:0), (Sequence:(73,771);CodePoint:296;Next:0), (Sequence:(73,772);CodePoint:298;Next:0), (Sequence:(73,774);CodePoint:300;Next:0), (Sequence:(73,775);CodePoint:304;Next:0), (Sequence:(73,776);CodePoint:207;Next:0), (Sequence:(73,777);CodePoint:7880;Next:0), (Sequence:(73,780);CodePoint:463;Next:0), (Sequence:(73,783);CodePoint:520;Next:0), (Sequence:(73,785);CodePoint:522;Next:0), (Sequence:(73,803);CodePoint:7882;Next:0), (Sequence:(73,808);CodePoint:302;Next:0), (Sequence:(73,816);CodePoint:7724;Next:0), (Sequence:(74,770);CodePoint:308;Next:0), (Sequence:(75,769);CodePoint:7728;Next:0), (Sequence:(75,780);CodePoint:488;Next:0), (Sequence:(75,803);CodePoint:7730;Next:0), (Sequence:(75,807);CodePoint:310;Next:0), (Sequence:(75,817);CodePoint:7732;Next:70), (Sequence:(76,769);CodePoint:313;Next:0), (Sequence:(76,780);CodePoint:317;Next:0), (Sequence:(76,803);CodePoint:7734;Next:0), (Sequence:(76,807);CodePoint:315;Next:0), (Sequence:(76,813);CodePoint:7740;Next:0), (Sequence:(76,817);CodePoint:7738;Next:0), (Sequence:(77,769);CodePoint:7742;Next:0), (Sequence:(77,775);CodePoint:7744;Next:0), (Sequence:(77,803);CodePoint:7746;Next:0), (Sequence:(78,768);CodePoint:504;Next:0), (Sequence:(78,769);CodePoint:323;Next:76), (Sequence:(78,771);CodePoint:209;Next:0), (Sequence:(78,775);CodePoint:7748;Next:0), (Sequence:(78,780);CodePoint:327;Next:68), (Sequence:(78,803);CodePoint:7750;Next:0), (Sequence:(78,807);CodePoint:325;Next:0), (Sequence:(78,813);CodePoint:7754;Next:0), (Sequence:(78,817);CodePoint:7752;Next:0), (Sequence:(79,768);CodePoint:210;Next:0), (Sequence:(79,769);CodePoint:211;Next:0), (Sequence:(79,770);CodePoint:212;Next:0), (Sequence:(79,771);CodePoint:213;Next:0), (Sequence:(79,772);CodePoint:332;Next:0), (Sequence:(79,774);CodePoint:334;Next:0), (Sequence:(79,775);CodePoint:558;Next:0), (Sequence:(79,776);CodePoint:214;Next:0), (Sequence:(79,777);CodePoint:7886;Next:0), (Sequence:(79,779);CodePoint:336;Next:0), (Sequence:(79,780);CodePoint:465;Next:0), (Sequence:(79,783);CodePoint:524;Next:0), (Sequence:(79,785);CodePoint:526;Next:0), (Sequence:(79,795);CodePoint:416;Next:0), (Sequence:(79,803);CodePoint:7884;Next:0), (Sequence:(79,808);CodePoint:490;Next:0), (Sequence:(80,769);CodePoint:7764;Next:0), (Sequence:(80,775);CodePoint:7766;Next:0), (Sequence:(82,769);CodePoint:340;Next:0), (Sequence:(82,775);CodePoint:7768;Next:0), (Sequence:(82,780);CodePoint:344;Next:0), (Sequence:(82,783);CodePoint:528;Next:0), (Sequence:(82,785);CodePoint:530;Next:0), (Sequence:(82,803);CodePoint:7770;Next:0), (Sequence:(82,807);CodePoint:342;Next:0), (Sequence:(82,817);CodePoint:7774;Next:0), (Sequence:(83,769);CodePoint:346;Next:0), (Sequence:(83,770);CodePoint:348;Next:0), (Sequence:(83,775);CodePoint:7776;Next:0), (Sequence:(83,780);CodePoint:352;Next:0), (Sequence:(83,803);CodePoint:7778;Next:0), (Sequence:(83,806);CodePoint:536;Next:0), (Sequence:(83,807);CodePoint:350;Next:0), (Sequence:(84,775);CodePoint:7786;Next:71), (Sequence:(84,780);CodePoint:356;Next:0), (Sequence:(84,803);CodePoint:7788;Next:0), (Sequence:(84,806);CodePoint:538;Next:0), (Sequence:(84,807);CodePoint:354;Next:0), (Sequence:(84,813);CodePoint:7792;Next:0), (Sequence:(84,817);CodePoint:7790;Next:0), (Sequence:(85,768);CodePoint:217;Next:0), (Sequence:(85,769);CodePoint:218;Next:0), (Sequence:(85,770);CodePoint:219;Next:0), (Sequence:(85,771);CodePoint:360;Next:0), (Sequence:(85,772);CodePoint:362;Next:0), (Sequence:(85,774);CodePoint:364;Next:0), (Sequence:(85,776);CodePoint:220;Next:0), (Sequence:(85,777);CodePoint:7910;Next:0), (Sequence:(85,778);CodePoint:366;Next:0), (Sequence:(85,779);CodePoint:368;Next:0), (Sequence:(85,780);CodePoint:467;Next:0), (Sequence:(85,783);CodePoint:532;Next:79), (Sequence:(85,785);CodePoint:534;Next:0), (Sequence:(85,795);CodePoint:431;Next:0), (Sequence:(85,803);CodePoint:7908;Next:77), (Sequence:(85,804);CodePoint:7794;Next:0), (Sequence:(85,808);CodePoint:370;Next:0), (Sequence:(85,813);CodePoint:7798;Next:0), (Sequence:(85,816);CodePoint:7796;Next:0), (Sequence:(86,771);CodePoint:7804;Next:0), (Sequence:(86,803);CodePoint:7806;Next:0), (Sequence:(87,768);CodePoint:7808;Next:9), (Sequence:(87,769);CodePoint:7810;Next:0), (Sequence:(87,770);CodePoint:372;Next:0), (Sequence:(87,775);CodePoint:7814;Next:0), (Sequence:(87,776);CodePoint:7812;Next:166), (Sequence:(87,803);CodePoint:7816;Next:0), (Sequence:(88,775);CodePoint:7818;Next:0), (Sequence:(88,776);CodePoint:7820;Next:0), (Sequence:(89,768);CodePoint:7922;Next:0), (Sequence:(89,769);CodePoint:221;Next:0), (Sequence:(89,770);CodePoint:374;Next:0), (Sequence:(89,771);CodePoint:7928;Next:0), (Sequence:(89,772);CodePoint:562;Next:0), (Sequence:(89,775);CodePoint:7822;Next:0), (Sequence:(89,776);CodePoint:376;Next:0), (Sequence:(89,777);CodePoint:7926;Next:0), (Sequence:(89,803);CodePoint:7924;Next:0), (Sequence:(90,769);CodePoint:377;Next:0), (Sequence:(90,770);CodePoint:7824;Next:0), (Sequence:(90,775);CodePoint:379;Next:0), (Sequence:(90,780);CodePoint:381;Next:0), (Sequence:(90,803);CodePoint:7826;Next:0), (Sequence:(90,817);CodePoint:7828;Next:0), (Sequence:(97,768);CodePoint:224;Next:0), (Sequence:(97,769);CodePoint:225;Next:0), (Sequence:(97,770);CodePoint:226;Next:0), (Sequence:(97,771);CodePoint:227;Next:0), (Sequence:(97,772);CodePoint:257;Next:0), (Sequence:(97,774);CodePoint:259;Next:84), (Sequence:(97,775);CodePoint:551;Next:0), (Sequence:(97,776);CodePoint:228;Next:0), (Sequence:(97,777);CodePoint:7843;Next:0), (Sequence:(97,778);CodePoint:229;Next:0), (Sequence:(97,780);CodePoint:462;Next:0), (Sequence:(97,783);CodePoint:513;Next:0), (Sequence:(97,785);CodePoint:515;Next:0), (Sequence:(97,803);CodePoint:7841;Next:0), (Sequence:(97,805);CodePoint:7681;Next:0), (Sequence:(97,808);CodePoint:261;Next:0), (Sequence:(98,775);CodePoint:7683;Next:0), (Sequence:(98,803);CodePoint:7685;Next:0), (Sequence:(98,817);CodePoint:7687;Next:0), (Sequence:(99,769);CodePoint:263;Next:0), (Sequence:(99,770);CodePoint:265;Next:0), (Sequence:(99,775);CodePoint:267;Next:0), (Sequence:(99,780);CodePoint:269;Next:0), (Sequence:(99,807);CodePoint:231;Next:0), (Sequence:(100,775);CodePoint:7691;Next:0), (Sequence:(100,780);CodePoint:271;Next:0), (Sequence:(100,803);CodePoint:7693;Next:0), (Sequence:(100,807);CodePoint:7697;Next:0), (Sequence:(100,813);CodePoint:7699;Next:0), (Sequence:(100,817);CodePoint:7695;Next:69), (Sequence:(101,768);CodePoint:232;Next:0), (Sequence:(101,769);CodePoint:233;Next:0), (Sequence:(101,770);CodePoint:234;Next:0), (Sequence:(101,771);CodePoint:7869;Next:114), (Sequence:(101,772);CodePoint:275;Next:0), (Sequence:(101,774);CodePoint:277;Next:0), (Sequence:(101,775);CodePoint:279;Next:0), (Sequence:(101,776);CodePoint:235;Next:64), (Sequence:(101,777);CodePoint:7867;Next:109), (Sequence:(101,780);CodePoint:283;Next:65), (Sequence:(101,783);CodePoint:517;Next:0), (Sequence:(101,785);CodePoint:519;Next:0), (Sequence:(101,803);CodePoint:7865;Next:62), (Sequence:(101,807);CodePoint:553;Next:63), (Sequence:(101,808);CodePoint:281;Next:0), (Sequence:(101,813);CodePoint:7705;Next:0), (Sequence:(101,816);CodePoint:7707;Next:0), (Sequence:(102,775);CodePoint:7711;Next:0), (Sequence:(103,769);CodePoint:501;Next:0), (Sequence:(103,770);CodePoint:285;Next:51), (Sequence:(103,772);CodePoint:7713;Next:0), (Sequence:(103,774);CodePoint:287;Next:0), (Sequence:(103,775);CodePoint:289;Next:0), (Sequence:(103,780);CodePoint:487;Next:0), (Sequence:(103,807);CodePoint:291;Next:0), (Sequence:(104,770);CodePoint:293;Next:0), (Sequence:(104,775);CodePoint:7715;Next:124), (Sequence:(104,776);CodePoint:7719;Next:0), (Sequence:(104,780);CodePoint:543;Next:0), (Sequence:(104,803);CodePoint:7717;Next:0), (Sequence:(104,807);CodePoint:7721;Next:175), (Sequence:(104,814);CodePoint:7723;Next:0), (Sequence:(104,817);CodePoint:7830;Next:0), (Sequence:(105,768);CodePoint:236;Next:0), (Sequence:(105,769);CodePoint:237;Next:0), (Sequence:(105,770);CodePoint:238;Next:0), (Sequence:(105,771);CodePoint:297;Next:0), (Sequence:(105,772);CodePoint:299;Next:0), (Sequence:(105,774);CodePoint:301;Next:0), (Sequence:(105,776);CodePoint:239;Next:210), (Sequence:(105,777);CodePoint:7881;Next:0), (Sequence:(105,780);CodePoint:464;Next:0), (Sequence:(105,783);CodePoint:521;Next:0), (Sequence:(105,785);CodePoint:523;Next:0), (Sequence:(105,803);CodePoint:7883;Next:0), (Sequence:(105,808);CodePoint:303;Next:0), (Sequence:(105,816);CodePoint:7725;Next:0), (Sequence:(106,770);CodePoint:309;Next:0), (Sequence:(106,780);CodePoint:496;Next:0), (Sequence:(107,769);CodePoint:7729;Next:0), (Sequence:(107,780);CodePoint:489;Next:0), (Sequence:(107,803);CodePoint:7731;Next:0), (Sequence:(107,807);CodePoint:311;Next:0), (Sequence:(107,817);CodePoint:7733;Next:0), (Sequence:(108,769);CodePoint:314;Next:0), (Sequence:(108,780);CodePoint:318;Next:0), (Sequence:(108,803);CodePoint:7735;Next:0), (Sequence:(108,807);CodePoint:316;Next:164), (Sequence:(108,813);CodePoint:7741;Next:125), (Sequence:(108,817);CodePoint:7739;Next:0), (Sequence:(109,769);CodePoint:7743;Next:0), (Sequence:(109,775);CodePoint:7745;Next:0), (Sequence:(109,803);CodePoint:7747;Next:0), (Sequence:(110,768);CodePoint:505;Next:0), (Sequence:(110,769);CodePoint:324;Next:0), (Sequence:(110,771);CodePoint:241;Next:0), (Sequence:(110,775);CodePoint:7749;Next:0), (Sequence:(110,780);CodePoint:328;Next:0), (Sequence:(110,803);CodePoint:7751;Next:0), (Sequence:(110,807);CodePoint:326;Next:0), (Sequence:(110,813);CodePoint:7755;Next:0), (Sequence:(110,817);CodePoint:7753;Next:0), (Sequence:(111,768);CodePoint:242;Next:130), (Sequence:(111,769);CodePoint:243;Next:180), (Sequence:(111,770);CodePoint:244;Next:0), (Sequence:(111,771);CodePoint:245;Next:0), (Sequence:(111,772);CodePoint:333;Next:0), (Sequence:(111,774);CodePoint:335;Next:0), (Sequence:(111,775);CodePoint:559;Next:176), (Sequence:(111,776);CodePoint:246;Next:0), (Sequence:(111,777);CodePoint:7887;Next:0), (Sequence:(111,779);CodePoint:337;Next:172), (Sequence:(111,780);CodePoint:466;Next:0), (Sequence:(111,783);CodePoint:525;Next:182), (Sequence:(111,785);CodePoint:527;Next:0), (Sequence:(111,795);CodePoint:417;Next:0), (Sequence:(111,803);CodePoint:7885;Next:0), (Sequence:(111,808);CodePoint:491;Next:0), (Sequence:(112,769);CodePoint:7765;Next:218), (Sequence:(112,775);CodePoint:7767;Next:224), (Sequence:(114,769);CodePoint:341;Next:81), (Sequence:(114,775);CodePoint:7769;Next:0), (Sequence:(114,780);CodePoint:345;Next:0), (Sequence:(114,783);CodePoint:529;Next:0), (Sequence:(114,785);CodePoint:531;Next:0), (Sequence:(114,803);CodePoint:7771;Next:0), (Sequence:(114,807);CodePoint:343;Next:0), (Sequence:(114,817);CodePoint:7775;Next:0), (Sequence:(115,769);CodePoint:347;Next:0), (Sequence:(115,770);CodePoint:349;Next:0), (Sequence:(115,775);CodePoint:7777;Next:0), (Sequence:(115,780);CodePoint:353;Next:316), (Sequence:(115,803);CodePoint:7779;Next:0), (Sequence:(115,806);CodePoint:537;Next:105), (Sequence:(115,807);CodePoint:351;Next:312), (Sequence:(116,775);CodePoint:7787;Next:0), (Sequence:(116,776);CodePoint:7831;Next:0), (Sequence:(116,780);CodePoint:357;Next:0), (Sequence:(116,803);CodePoint:7789;Next:0), (Sequence:(116,806);CodePoint:539;Next:0), (Sequence:(116,807);CodePoint:355;Next:0), (Sequence:(116,813);CodePoint:7793;Next:0), (Sequence:(116,817);CodePoint:7791;Next:0), (Sequence:(117,768);CodePoint:249;Next:0), (Sequence:(117,769);CodePoint:250;Next:0), (Sequence:(117,770);CodePoint:251;Next:0), (Sequence:(117,771);CodePoint:361;Next:0), (Sequence:(117,772);CodePoint:363;Next:0), (Sequence:(117,774);CodePoint:365;Next:0), (Sequence:(117,776);CodePoint:252;Next:0), (Sequence:(117,777);CodePoint:7911;Next:0), (Sequence:(117,778);CodePoint:367;Next:0), (Sequence:(117,779);CodePoint:369;Next:0), (Sequence:(117,780);CodePoint:468;Next:0), (Sequence:(117,783);CodePoint:533;Next:0), (Sequence:(117,785);CodePoint:535;Next:0), (Sequence:(117,795);CodePoint:432;Next:0), (Sequence:(117,803);CodePoint:7909;Next:174), (Sequence:(117,804);CodePoint:7795;Next:0), (Sequence:(117,808);CodePoint:371;Next:0), (Sequence:(117,813);CodePoint:7799;Next:0), (Sequence:(117,816);CodePoint:7797;Next:0), (Sequence:(118,771);CodePoint:7805;Next:0), (Sequence:(118,803);CodePoint:7807;Next:0), (Sequence:(119,768);CodePoint:7809;Next:195), (Sequence:(119,769);CodePoint:7811;Next:0), (Sequence:(119,770);CodePoint:373;Next:0), (Sequence:(119,775);CodePoint:7815;Next:0), (Sequence:(119,776);CodePoint:7813;Next:353), (Sequence:(119,778);CodePoint:7832;Next:214), (Sequence:(119,803);CodePoint:7817;Next:115), (Sequence:(120,775);CodePoint:7819;Next:0), (Sequence:(120,776);CodePoint:7821;Next:238), (Sequence:(121,768);CodePoint:7923;Next:205), (Sequence:(121,769);CodePoint:253;Next:0), (Sequence:(121,770);CodePoint:375;Next:0), (Sequence:(121,771);CodePoint:7929;Next:0), (Sequence:(121,772);CodePoint:563;Next:0), (Sequence:(121,775);CodePoint:7823;Next:0), (Sequence:(121,776);CodePoint:255;Next:276), (Sequence:(121,777);CodePoint:7927;Next:0), (Sequence:(121,778);CodePoint:7833;Next:0), (Sequence:(121,803);CodePoint:7925;Next:0), (Sequence:(122,769);CodePoint:378;Next:0), (Sequence:(122,770);CodePoint:7825;Next:0), (Sequence:(122,775);CodePoint:380;Next:33), (Sequence:(122,780);CodePoint:382;Next:272), (Sequence:(122,803);CodePoint:7827;Next:0), (Sequence:(122,817);CodePoint:7829;Next:0), (Sequence:(168,768);CodePoint:8173;Next:0), (Sequence:(168,769);CodePoint:901;Next:0), (Sequence:(168,769);CodePoint:8174;Next:380), (Sequence:(168,834);CodePoint:8129;Next:0), (Sequence:(198,769);CodePoint:508;Next:0), (Sequence:(198,772);CodePoint:482;Next:0), (Sequence:(216,769);CodePoint:510;Next:0), (Sequence:(230,769);CodePoint:509;Next:0), (Sequence:(230,772);CodePoint:483;Next:0), (Sequence:(248,769);CodePoint:511;Next:0), (Sequence:(383,775);CodePoint:7835;Next:0), (Sequence:(439,780);CodePoint:494;Next:177), (Sequence:(658,780);CodePoint:495;Next:0), (Sequence:(913,768);CodePoint:8122;Next:0), (Sequence:(913,769);CodePoint:902;Next:0), (Sequence:(913,769);CodePoint:8123;Next:393), (Sequence:(913,772);CodePoint:8121;Next:0), (Sequence:(913,774);CodePoint:8120;Next:288), (Sequence:(913,787);CodePoint:7944;Next:48), (Sequence:(913,788);CodePoint:7945;Next:137), (Sequence:(913,837);CodePoint:8124;Next:0), (Sequence:(917,768);CodePoint:8136;Next:261), (Sequence:(917,769);CodePoint:904;Next:0), (Sequence:(917,769);CodePoint:8137;Next:401), (Sequence:(917,787);CodePoint:7960;Next:0), (Sequence:(917,788);CodePoint:7961;Next:90), (Sequence:(919,768);CodePoint:8138;Next:270), (Sequence:(919,769);CodePoint:905;Next:0), (Sequence:(919,769);CodePoint:8139;Next:406), (Sequence:(919,787);CodePoint:7976;Next:0), (Sequence:(919,788);CodePoint:7977;Next:289), (Sequence:(919,837);CodePoint:8140;Next:0), (Sequence:(921,768);CodePoint:8154;Next:197), (Sequence:(921,769);CodePoint:906;Next:198), (Sequence:(921,769);CodePoint:8155;Next:412), (Sequence:(921,772);CodePoint:8153;Next:0), (Sequence:(921,774);CodePoint:8152;Next:358), (Sequence:(921,776);CodePoint:938;Next:190), (Sequence:(921,787);CodePoint:7992;Next:157), (Sequence:(921,788);CodePoint:7993;Next:143), (Sequence:(927,768);CodePoint:8184;Next:0), (Sequence:(927,769);CodePoint:908;Next:0), (Sequence:(927,769);CodePoint:8185;Next:420), (Sequence:(927,787);CodePoint:8008;Next:0), (Sequence:(927,788);CodePoint:8009;Next:315), (Sequence:(929,788);CodePoint:8172;Next:400), (Sequence:(933,768);CodePoint:8170;Next:277), (Sequence:(933,769);CodePoint:910;Next:320), (Sequence:(933,769);CodePoint:8171;Next:426), (Sequence:(933,772);CodePoint:8169;Next:0), (Sequence:(933,774);CodePoint:8168;Next:0), (Sequence:(933,776);CodePoint:939;Next:0), (Sequence:(933,788);CodePoint:8025;Next:161), (Sequence:(937,768);CodePoint:8186;Next:104), (Sequence:(937,769);CodePoint:911;Next:0), (Sequence:(937,769);CodePoint:8187;Next:433), (Sequence:(937,787);CodePoint:8040;Next:0), (Sequence:(937,788);CodePoint:8041;Next:42), (Sequence:(937,837);CodePoint:8188;Next:0), (Sequence:(945,768);CodePoint:8048;Next:0), (Sequence:(945,769);CodePoint:940;Next:0), (Sequence:(945,769);CodePoint:8049;Next:439), (Sequence:(945,772);CodePoint:8113;Next:236), (Sequence:(945,774);CodePoint:8112;Next:0), (Sequence:(945,787);CodePoint:7936;Next:0), (Sequence:(945,788);CodePoint:7937;Next:0), (Sequence:(945,834);CodePoint:8118;Next:151), (Sequence:(945,837);CodePoint:8115;Next:0), (Sequence:(949,768);CodePoint:8050;Next:0), (Sequence:(949,769);CodePoint:941;Next:213), (Sequence:(949,769);CodePoint:8051;Next:448), (Sequence:(949,787);CodePoint:7952;Next:0), (Sequence:(949,788);CodePoint:7953;Next:0), (Sequence:(951,768);CodePoint:8052;Next:0), (Sequence:(951,769);CodePoint:942;Next:0), (Sequence:(951,769);CodePoint:8053;Next:453), (Sequence:(951,787);CodePoint:7968;Next:0), (Sequence:(951,788);CodePoint:7969;Next:0), (Sequence:(951,834);CodePoint:8134;Next:194), (Sequence:(951,837);CodePoint:8131;Next:41), (Sequence:(953,768);CodePoint:8054;Next:266), (Sequence:(953,769);CodePoint:943;Next:0), (Sequence:(953,769);CodePoint:8055;Next:460), (Sequence:(953,772);CodePoint:8145;Next:217), (Sequence:(953,774);CodePoint:8144;Next:381), (Sequence:(953,776);CodePoint:970;Next:0), (Sequence:(953,787);CodePoint:7984;Next:344), (Sequence:(953,788);CodePoint:7985;Next:0), (Sequence:(953,834);CodePoint:8150;Next:0), (Sequence:(959,768);CodePoint:8056;Next:0), (Sequence:(959,769);CodePoint:972;Next:0), (Sequence:(959,769);CodePoint:8057;Next:469), (Sequence:(959,787);CodePoint:8000;Next:376), (Sequence:(959,788);CodePoint:8001;Next:0), (Sequence:(961,787);CodePoint:8164;Next:0), (Sequence:(961,788);CodePoint:8165;Next:0), (Sequence:(965,768);CodePoint:8058;Next:0), (Sequence:(965,769);CodePoint:973;Next:0), (Sequence:(965,769);CodePoint:8059;Next:476), (Sequence:(965,772);CodePoint:8161;Next:373), (Sequence:(965,774);CodePoint:8160;Next:0), (Sequence:(965,776);CodePoint:971;Next:0), (Sequence:(965,787);CodePoint:8016;Next:347), (Sequence:(965,788);CodePoint:8017;Next:0), (Sequence:(965,834);CodePoint:8166;Next:0), (Sequence:(969,768);CodePoint:8060;Next:328), (Sequence:(969,769);CodePoint:974;Next:0), (Sequence:(969,769);CodePoint:8061;Next:485), (Sequence:(969,787);CodePoint:8032;Next:0), (Sequence:(969,788);CodePoint:8033;Next:227), (Sequence:(969,834);CodePoint:8182;Next:52), (Sequence:(969,837);CodePoint:8179;Next:0), (Sequence:(978,769);CodePoint:979;Next:0), (Sequence:(978,776);CodePoint:980;Next:66), (Sequence:(1030,776);CodePoint:1031;Next:231), (Sequence:(1040,774);CodePoint:1232;Next:251), (Sequence:(1040,776);CodePoint:1234;Next:0), (Sequence:(1043,769);CodePoint:1027;Next:458), (Sequence:(1045,768);CodePoint:1024;Next:0), (Sequence:(1045,774);CodePoint:1238;Next:55), (Sequence:(1045,776);CodePoint:1025;Next:0), (Sequence:(1046,774);CodePoint:1217;Next:435), (Sequence:(1046,776);CodePoint:1244;Next:0), (Sequence:(1047,776);CodePoint:1246;Next:0), (Sequence:(1048,768);CodePoint:1037;Next:0), (Sequence:(1048,772);CodePoint:1250;Next:95), (Sequence:(1048,774);CodePoint:1049;Next:0), (Sequence:(1048,776);CodePoint:1252;Next:0), (Sequence:(1050,769);CodePoint:1036;Next:0), (Sequence:(1054,776);CodePoint:1254;Next:0), (Sequence:(1059,772);CodePoint:1262;Next:285), (Sequence:(1059,774);CodePoint:1038;Next:0), (Sequence:(1059,776);CodePoint:1264;Next:0), (Sequence:(1059,779);CodePoint:1266;Next:287), (Sequence:(1063,776);CodePoint:1268;Next:0), (Sequence:(1067,776);CodePoint:1272;Next:0), (Sequence:(1069,776);CodePoint:1260;Next:0), (Sequence:(1072,774);CodePoint:1233;Next:492), (Sequence:(1072,776);CodePoint:1235;Next:0), (Sequence:(1075,769);CodePoint:1107;Next:0), (Sequence:(1077,768);CodePoint:1104;Next:0), (Sequence:(1077,774);CodePoint:1239;Next:0), (Sequence:(1077,776);CodePoint:1105;Next:383), (Sequence:(1078,774);CodePoint:1218;Next:0), (Sequence:(1078,776);CodePoint:1245;Next:0), (Sequence:(1079,776);CodePoint:1247;Next:0), (Sequence:(1080,768);CodePoint:1117;Next:0), (Sequence:(1080,772);CodePoint:1251;Next:0), (Sequence:(1080,774);CodePoint:1081;Next:0), (Sequence:(1080,776);CodePoint:1253;Next:0), (Sequence:(1082,769);CodePoint:1116;Next:0), (Sequence:(1086,776);CodePoint:1255;Next:0), (Sequence:(1091,772);CodePoint:1263;Next:0), (Sequence:(1091,774);CodePoint:1118;Next:333), (Sequence:(1091,776);CodePoint:1265;Next:0), (Sequence:(1091,779);CodePoint:1267;Next:163), (Sequence:(1095,776);CodePoint:1269;Next:252), (Sequence:(1099,776);CodePoint:1273;Next:0), (Sequence:(1101,776);CodePoint:1261;Next:54), (Sequence:(1110,776);CodePoint:1111;Next:301), (Sequence:(1140,783);CodePoint:1142;Next:0), (Sequence:(1141,783);CodePoint:1143;Next:465), (Sequence:(1240,776);CodePoint:1242;Next:0), (Sequence:(1241,776);CodePoint:1243;Next:404), (Sequence:(1256,776);CodePoint:1258;Next:0), (Sequence:(1257,776);CodePoint:1259;Next:0), (Sequence:(1575,1619);CodePoint:1570;Next:0), (Sequence:(1575,1620);CodePoint:1571;Next:88), (Sequence:(1575,1621);CodePoint:1573;Next:410), (Sequence:(1608,1620);CodePoint:1572;Next:0), (Sequence:(1610,1620);CodePoint:1574;Next:36), (Sequence:(1729,1620);CodePoint:1730;Next:395), (Sequence:(1746,1620);CodePoint:1747;Next:0), (Sequence:(1749,1620);CodePoint:1728;Next:181), (Sequence:(2344,2364);CodePoint:2345;Next:0), (Sequence:(2352,2364);CodePoint:2353;Next:273), (Sequence:(2355,2364);CodePoint:2356;Next:0), (Sequence:(2503,2494);CodePoint:2507;Next:23), (Sequence:(2503,2519);CodePoint:2508;Next:494), (Sequence:(2887,2878);CodePoint:2891;Next:556), (Sequence:(2887,2902);CodePoint:2888;Next:416), (Sequence:(2887,2903);CodePoint:2892;Next:191), (Sequence:(2962,3031);CodePoint:2964;Next:0), (Sequence:(3014,3006);CodePoint:3018;Next:193), (Sequence:(3014,3031);CodePoint:3020;Next:0), (Sequence:(3015,3006);CodePoint:3019;Next:558), (Sequence:(3142,3158);CodePoint:3144;Next:0), (Sequence:(3263,3285);CodePoint:3264;Next:372), (Sequence:(3270,3266);CodePoint:3274;Next:118), (Sequence:(3270,3285);CodePoint:3271;Next:216), (Sequence:(3270,3286);CodePoint:3272;Next:0), (Sequence:(3398,3390);CodePoint:3402;Next:0), (Sequence:(3398,3415);CodePoint:3404;Next:0), (Sequence:(3399,3390);CodePoint:3403;Next:564), (Sequence:(3545,3530);CodePoint:3546;Next:536), (Sequence:(3545,3535);CodePoint:3548;Next:0), (Sequence:(3545,3551);CodePoint:3550;Next:0), (Sequence:(4133,4142);CodePoint:4134;Next:472), (Sequence:(6917,6965);CodePoint:6918;Next:0), (Sequence:(6919,6965);CodePoint:6920;Next:203), (Sequence:(6921,6965);CodePoint:6922;Next:0), (Sequence:(6923,6965);CodePoint:6924;Next:0), (Sequence:(6925,6965);CodePoint:6926;Next:78), (Sequence:(6929,6965);CodePoint:6930;Next:549), (Sequence:(6970,6965);CodePoint:6971;Next:239), (Sequence:(6972,6965);CodePoint:6973;Next:405), (Sequence:(6974,6965);CodePoint:6976;Next:482), (Sequence:(6975,6965);CodePoint:6977;Next:0), (Sequence:(6978,6965);CodePoint:6979;Next:29), (Sequence:(8127,768);CodePoint:8141;Next:468), (Sequence:(8127,769);CodePoint:8142;Next:470), (Sequence:(8127,834);CodePoint:8143;Next:257), (Sequence:(8190,768);CodePoint:8157;Next:138), (Sequence:(8190,769);CodePoint:8158;Next:8), (Sequence:(8190,834);CodePoint:8159;Next:407), (Sequence:(8592,824);CodePoint:8602;Next:0), (Sequence:(8594,824);CodePoint:8603;Next:244), (Sequence:(8596,824);CodePoint:8622;Next:233), (Sequence:(8656,824);CodePoint:8653;Next:342), (Sequence:(8658,824);CodePoint:8655;Next:202), (Sequence:(8660,824);CodePoint:8654;Next:443), (Sequence:(8707,824);CodePoint:8708;Next:0), (Sequence:(8712,824);CodePoint:8713;Next:140), (Sequence:(8715,824);CodePoint:8716;Next:0), (Sequence:(8739,824);CodePoint:8740;Next:467), (Sequence:(8741,824);CodePoint:8742;Next:0), (Sequence:(8764,824);CodePoint:8769;Next:183), (Sequence:(8771,824);CodePoint:8772;Next:129), (Sequence:(8773,824);CodePoint:8775;Next:0), (Sequence:(8776,824);CodePoint:8777;Next:0), (Sequence:(8781,824);CodePoint:8813;Next:220), (Sequence:(8801,824);CodePoint:8802;Next:361), (Sequence:(8804,824);CodePoint:8816;Next:0), (Sequence:(8805,824);CodePoint:8817;Next:0), (Sequence:(8818,824);CodePoint:8820;Next:0), (Sequence:(8819,824);CodePoint:8821;Next:0), (Sequence:(8822,824);CodePoint:8824;Next:211), (Sequence:(8823,824);CodePoint:8825;Next:388), (Sequence:(8826,824);CodePoint:8832;Next:384), (Sequence:(8827,824);CodePoint:8833;Next:0), (Sequence:(8828,824);CodePoint:8928;Next:569), (Sequence:(8829,824);CodePoint:8929;Next:447), (Sequence:(8834,824);CodePoint:8836;Next:0), (Sequence:(8835,824);CodePoint:8837;Next:0), (Sequence:(8838,824);CodePoint:8840;Next:134), (Sequence:(8839,824);CodePoint:8841;Next:0), (Sequence:(8849,824);CodePoint:8930;Next:0), (Sequence:(8850,824);CodePoint:8931;Next:57), (Sequence:(8866,824);CodePoint:8876;Next:0), (Sequence:(8872,824);CodePoint:8877;Next:0), (Sequence:(8873,824);CodePoint:8878;Next:507), (Sequence:(8875,824);CodePoint:8879;Next:0), (Sequence:(8882,824);CodePoint:8938;Next:0), (Sequence:(8883,824);CodePoint:8939;Next:0), (Sequence:(8884,824);CodePoint:8940;Next:0), (Sequence:(8885,824);CodePoint:8941;Next:436), (Sequence:(12358,12441);CodePoint:12436;Next:0), (Sequence:(12363,12441);CodePoint:12364;Next:0), (Sequence:(12365,12441);CodePoint:12366;Next:0), (Sequence:(12367,12441);CodePoint:12368;Next:0), (Sequence:(12369,12441);CodePoint:12370;Next:0), (Sequence:(12371,12441);CodePoint:12372;Next:0), (Sequence:(12373,12441);CodePoint:12374;Next:43), (Sequence:(12375,12441);CodePoint:12376;Next:580), (Sequence:(12377,12441);CodePoint:12378;Next:595), (Sequence:(12379,12441);CodePoint:12380;Next:0), (Sequence:(12381,12441);CodePoint:12382;Next:0), (Sequence:(12383,12441);CodePoint:12384;Next:30), (Sequence:(12385,12441);CodePoint:12386;Next:0), (Sequence:(12388,12441);CodePoint:12389;Next:0), (Sequence:(12390,12441);CodePoint:12391;Next:0), (Sequence:(12392,12441);CodePoint:12393;Next:0), (Sequence:(12399,12441);CodePoint:12400;Next:0), (Sequence:(12399,12442);CodePoint:12401;Next:441), (Sequence:(12402,12441);CodePoint:12403;Next:0), (Sequence:(12402,12442);CodePoint:12404;Next:82), (Sequence:(12405,12441);CodePoint:12406;Next:86), (Sequence:(12405,12442);CodePoint:12407;Next:0), (Sequence:(12408,12441);CodePoint:12409;Next:127), (Sequence:(12408,12442);CodePoint:12410;Next:591), (Sequence:(12411,12441);CodePoint:12412;Next:0), (Sequence:(12411,12442);CodePoint:12413;Next:0), (Sequence:(12445,12441);CodePoint:12446;Next:0), (Sequence:(12454,12441);CodePoint:12532;Next:35), (Sequence:(12459,12441);CodePoint:12460;Next:0), (Sequence:(12461,12441);CodePoint:12462;Next:0), (Sequence:(12463,12441);CodePoint:12464;Next:149), (Sequence:(12465,12441);CodePoint:12466;Next:0), (Sequence:(12467,12441);CodePoint:12468;Next:0), (Sequence:(12469,12441);CodePoint:12470;Next:422), (Sequence:(12471,12441);CodePoint:12472;Next:0), (Sequence:(12473,12441);CodePoint:12474;Next:0), (Sequence:(12475,12441);CodePoint:12476;Next:0), (Sequence:(12477,12441);CodePoint:12478;Next:0), (Sequence:(12479,12441);CodePoint:12480;Next:38), (Sequence:(12481,12441);CodePoint:12482;Next:617), (Sequence:(12484,12441);CodePoint:12485;Next:338), (Sequence:(12486,12441);CodePoint:12487;Next:0), (Sequence:(12488,12441);CodePoint:12489;Next:0), (Sequence:(12495,12441);CodePoint:12496;Next:0), (Sequence:(12495,12442);CodePoint:12497;Next:2), (Sequence:(12498,12441);CodePoint:12499;Next:241), (Sequence:(12498,12442);CodePoint:12500;Next:0), (Sequence:(12501,12441);CodePoint:12502;Next:60), (Sequence:(12501,12442);CodePoint:12503;Next:0), (Sequence:(12504,12441);CodePoint:12505;Next:0), (Sequence:(12504,12442);CodePoint:12506;Next:0), (Sequence:(12507,12441);CodePoint:12508;Next:562), (Sequence:(12507,12442);CodePoint:12509;Next:0), (Sequence:(12527,12441);CodePoint:12535;Next:0), (Sequence:(12528,12441);CodePoint:12536;Next:341), (Sequence:(12529,12441);CodePoint:12537;Next:0), (Sequence:(12530,12441);CodePoint:12538;Next:80), (Sequence:(12541,12441);CodePoint:12542;Next:0), (Sequence:(69785,69818);CodePoint:69786;Next:240), (Sequence:(69787,69818);CodePoint:69788;Next:0), (Sequence:(69797,69818);CodePoint:69803;Next:21), (Sequence:(69937,69927);CodePoint:69934;Next:0), (Sequence:(69938,69927);CodePoint:69935;Next:463), (Sequence:(70471,70462);CodePoint:70475;Next:572), (Sequence:(70471,70487);CodePoint:70476;Next:560), (Sequence:(70841,70832);CodePoint:70844;Next:0), (Sequence:(70841,70842);CodePoint:70843;Next:0), (Sequence:(70841,70845);CodePoint:70846;Next:147), (Sequence:(71096,71087);CodePoint:71098;Next:0), (Sequence:(71097,71087);CodePoint:71099;Next:355), (Sequence:(71989,71984);CodePoint:71992;Next:457) ); // PUCUUnicodeCategoryArray: 41216 bytes, 254 blocks with 128 items per 1 bytes and 8704 indices per 1 bytes const PUCUUnicodeCategoryArrayBlockBits=7; PUCUUnicodeCategoryArrayBlockMask=127; PUCUUnicodeCategoryArrayBlockSize=128; PUCUUnicodeCategoryArrayBlockCount=254; PUCUUnicodeCategoryArrayBlockData:array[0..253,0..127] of byte=( (15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, 15,15,15,15,15,12,23,23,23,25,23,23,23,20,21,23,24,23,19,23,23,9,9,9,9,9,9,9,9,9, 9,23,23,24,24,24,23,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,23, 21,26,22,26,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,20,24,21,24,15), (15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, 15,15,15,15,15,12,23,25,25,25,25,27,23,26,27,5,28,24,16,27,26,27,24,11,11,26,2,23, 23,26,11,5,29,11,11,11,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,24,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,2,2,2,2,2,24,2,2,2,2,2,2,2,2), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1, 2,1,2,1,2,2), (2,1,1,2,1,2,1,1,2,1,1,1,2,2,1,1,1,1,2,1,1,2,1,1,1,2,2,2,1,1,2,1,1,2,1,2,1,2,1,1, 2,1,2,2,1,2,1,1,2,1,1,1,2,1,2,1,1,2,2,5,1,2,2,2,5,5,5,5,1,3,2,1,3,2,1,3,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2,1,2,1,1,1,2, 1,2,1,2,1,2), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2,1,2,1,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,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,5,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,26,26,26,26,4,4,4,4,4,4,4,4,4, 4,4,4,26,26,26,26,26,26,26,26,26,26,26,26,26,26,4,4,4,4,4,26,26,26,26,26,26,26,4, 26,4,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26), (6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,1,2,1,2,4,26,1,2,0, 0,4,2,2,2,23,1), (0,0,0,0,26,26,1,23,1,1,1,0,1,0,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1, 1,1,1,1,1,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,1, 2,2,1,1,1,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,2,2,2,1,2,24,1, 2,1,1,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,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,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,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2), (1,2,27,6,6,6,6,6,7,7,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,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,0,0,4,23,23,23,23,23,23,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,2,2,2,2,2,2,23,19,0,0,27,27,25,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,19,6,23,6,6,23,6,6,23,6,0,0,0,0,0, 0,0,0,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,0,0,0,0,5,5,5,5,23,23, 0,0,0,0,0,0,0,0,0,0,0), (16,16,16,16,16,16,24,24,24,23,23,25,23,23,27,27,6,6,6,6,6,6,6,6,6,6,6,23,16,23,23, 23,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,4,5,5,5,5,5,5, 5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,9,9,9,9,9,9,9,9,9,9,23,23,23,23, 5,5,6,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,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,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,23,5,6,6,6,6,6,6,6,16,27,6,6,6,6,6,6,4,4,6,6,27,6,6,6,6,5,5,9,9,9,9,9,9,9,9, 9,9,5,5,5,27,27,5), (23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,16,5,6,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,0,0,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,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,5,5,5,5,5,6,6, 6,6,6,6,6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,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,6,6,6,6,6,6,6,6,6,4,4,27,23,23, 23,4,0,0,6,25,25), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,4,6,6,6,6,6,6,6,6,6,4,6,6,6, 4,6,6,6,6,6,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,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,6,6,6,0,0,23,0,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5), (5,5,5,5,5,5,5,5,26,5,5,5,5,5,5,0,16,16,0,0,0,0,0,0,6,6,6,6,6,6,6,6,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,4,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,16,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6), (6,6,6,8,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,5,5,5,5,5,5,5,5,5,5,5,5,6,8,6,5,8,8,8,6,6,6,6,6,6,6,6,8,8,8,8,6,8,8,5, 6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,6,6,23,23,9,9,9,9,9,9,9,9,9,9,23,4,5,5,5,5,5,5, 5,5,5,5,5,5,5,5), (5,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,0,5,0,0,0,5,5,5,5,0,0,6,5,8,8,8,6,6,6,6,0,0,8,8,0,0,8,8,6,5,0,0, 0,0,0,0,0,0,8,0,0,0,0,5,5,0,5,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,5,5,25,25,11,11,11, 11,11,11,27,25,5,23,6,0), (0,6,6,8,0,5,5,5,5,5,5,0,0,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,0,5,5,0,0,6,0,8,8,8,6,6,0,0,0,0,6,6,0,0,6,6,6,0,0,0, 6,0,0,0,0,0,0,0,5,5,5,5,0,5,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,6,6,5,5,5,6,23,0,0, 0,0,0,0,0,0,0), (0,6,6,8,0,5,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0,6,5,8,8,8,6,6,6,6,6,0,6,6,8,0,8,8,6,0,0,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,23,25,0,0,0,0,0,0,0, 5,6,6,6,6,6,6), (0,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0,6,5,8,6,8,6,6,6,6,0,0,8,8,0,0,8,8,6,0,0,0, 0,0,0,0,6,6,8,0,0,0,0,5,5,0,5,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,27,5,11,11,11,11,11, 11,0,0,0,0,0,0,0,0), (0,0,6,5,0,5,5,5,5,5,5,0,0,0,5,5,5,0,5,5,5,5,0,0,0,5,5,0,5,0,5,5,0,0,0,5,5,0,0,0, 5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,8,8,6,8,8,0,0,0,8,8,8,0,8,8,8,6,0,0,5, 0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,11,11,11,27,27,27,27, 27,27,25,27,0,0,0,0,0), (6,8,8,8,6,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,6,5,6,6,6,8,8,8,8,0,6,6,6,0,6,6,6,6,0,0,0, 0,0,0,0,6,6,0,5,5,5,0,0,5,0,0,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,23,11, 11,11,11,11,11,11,27), (5,6,8,8,23,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,0,6,5,8,6,8,8,8,8,8,0,6,8,8,0,8,8,6,6,0,0,0, 0,0,0,0,8,8,0,0,0,0,0,0,5,5,0,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,0,5,5,8,0,0,0,0,0,0, 0,0,0,0,0,0), (6,6,8,8,5,5,5,5,5,5,5,5,5,0,5,5,5,0,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,6,6,5,8,8,8,6,6,6,6,0,8,8,8,0,8,8,8,6,5,27, 0,0,0,0,5,5,5,8,11,11,11,11,11,11,11,5,5,5,6,6,0,0,9,9,9,9,9,9,9,9,9,9,11,11,11,11, 11,11,11,11,11,27,5,5,5,5,5,5), (0,6,8,8,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,5,5,5,5,0,0,0,6,0,0,0,0,8,8, 8,6,6,6,0,6,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,8,8,23,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,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,6,5,5,6,6,6,6,6,6,6,0,0,0,0,25,5,5,5,5,5,5,4,6,6,6,6,6,6,6,6,23, 9,9,9,9,9,9,9,9,9,9,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0), (0,5,5,0,5,0,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,0,5, 5,5,5,5,5,5,5,5,5,6,5,5,6,6,6,6,6,6,6,6,6,5,0,0,5,5,5,5,5,0,4,0,6,6,6,6,6,6,6,0,9, 9,9,9,9,9,9,9,9,9,0,0,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (5,27,27,27,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,27,23,27,27,27,6,6,27,27, 27,27,27,27,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,11,11,27,6,27,6,27,6,20,21, 20,21,8,8,5,5,5,5,5,5,5,5,0,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,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8), (6,6,6,6,6,23,6,6,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,27,27,27,27,27,27,27,27,6,27,27,27,27, 27,27,0,27,27,23,23,23,23,23,27,27,27,27,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,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,8,8,6,6,6,6,8,6,6,6,6,6,6,8,6,6,8,8,6,6,5,9,9,9,9,9,9,9,9,9,9,23,23,23,23,23, 23,5,5,5,5,5,5,8,8,6,6,5,5,5,5,6,6,6,5,8,8,8,5,5,8,8,8,8,8,8,8,5,5,5,6,6,6,6,5,5, 5,5,5,5,5,5,5,5,5), (5,5,6,8,8,6,6,8,8,8,8,8,8,6,5,8,9,9,9,9,9,9,9,9,9,9,8,8,8,6,27,27,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,1,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,2,2,2,2,2,2,2,2,2,2,2, 2,2,23,4,2,2,2), (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,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,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,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, 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,0,5,5,5,5,0,0,5, 5,5,5,5,5,5,0,5,0,5,5,5,5,0,0,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,0,5,5,5,5,0,0,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,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,0,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0,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,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,0,0,6,6,6,23,23,23,23,23,23,23,23,23,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,0,0,0), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,27,27,27,27,27,27,27,27,27,27,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,0,0,2,2,2,2,2,2,0,0), (19,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,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,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,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,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,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,27,23,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5), (12,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,20,21,0,0,0,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,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,23,23,23,10,10,10,5,5,5,5,5, 5,5,5,0,0,0,0,0,0,0), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,8,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,6,6,8,23,23,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,6,6,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,5,5,5,0,6,6,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,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,6,6,8,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,6,8,8,6,6,6,6,6,6,6,6, 6,6,6,23,23,23,4,23,23,23,25,5,6,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,11,11,11,11, 11,11,11,11,11,11,0,0,0,0,0,0), (23,23,23,23,23,23,19,23,23,23,23,6,6,6,16,6,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,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,4,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,5,5,5,5,5,5, 5,5,5,5,5,0,0,0,0,0,0,0), (5,5,5,5,5,6,6,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,6,5,0,0,0,0,0,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,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,0,0,0,0, 0,0,0,0,0,0), (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,0,6,6,6,8,8,8,8,6, 6,8,8,8,0,0,0,0,8,8,6,8,8,8,8,8,8,6,6,6,0,0,0,0,27,0,0,0,23,23,9,9,9,9,9,9,9,9,9, 9,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,0,0,5,5,5,5,5,0,0,0, 0,0,0,0,0,0,0,0), (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,5,5,0,0,0,0,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,0,0,0,0,0,0,9, 9,9,9,9,9,9,9,9,9,11,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,8,8,6,0,0,23,23,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,5,5,5,5,5,5, 5,5,5,5,5,8,6,8,6,6,6,6,6,6,6,0,6,8,6,8,8,6,6,6,6,6,6,6,6,8,8,8,8,8,8,6,6,6,6,6,6, 6,6,6,6,0,0,6), (9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,23,23,23,23,23,23, 23,4,23,23,23,23,23,23,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,8,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,5,5,5,5,5,6,8,6,6,6,6,6,8,6,8,8,8,8,8,6,8,8,5,5,5,5,5,5,5,5,0,0,0,9, 9,9,9,9,9,9,9,9,9,23,23,23,23,23,23,23,27,27,27,27,27,27,27,27,27,27,6,6,6,6,6,6, 6,6,6,27,27,27,27,27,27,27,27,27,23,23,0), (6,6,8,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,8,6,6,6,6,8,8, 6,6,8,6,6,6,5,5,9,9,9,9,9,9,9,9,9,9,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,5,5,6,8,6,6,8,8,8,6,8,6,6,6,8,8,0,0,0,0,0,0, 0,0,23,23,23,23), (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,8,8,8,8, 8,8,8,8,6,6,6,6,6,6,6,6,8,8,6,6,0,0,0,23,23,23,23,23,9,9,9,9,9,9,9,9,9,9,0,0,0,5, 5,5,9,9,9,9,9,9,9,9,9,9,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,4,4,4,4,4,4,23,23), (2,2,2,2,2,2,2,2,2,0,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,0,0,1,1,1,23,23,23,23,23,23,23,23,0,0,0,0,0, 0,0,0,6,6,6,23,6,6,6,6,6,6,6,6,6,6,6,6,6,8,6,6,6,6,6,6,6,5,5,5,5,6,5,5,5,5,5,5,6, 5,5,8,6,6,5,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,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,4,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,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2), (2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,2,2,2,2,2,2,2,2, 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,2, 2,2,2,2,2,2,2,0,1,0,1,0,1,0,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,0,0), (2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,2,2,2,2,2,0,2,2,1,1,1,1,3,26,2,26,26,26,2,2,2,0,2,2,1,1,1,1,3,26, 26,26,2,2,2,2,0,0,2,2,1,1,1,1,0,26,26,26,2,2,2,2,2,2,2,2,1,1,1,1,1,26,26,26,0,0,2, 2,2,0,2,2,1,1,1,1,3,26,26,0), (12,12,12,12,12,12,12,12,12,12,12,16,16,16,16,16,19,19,19,19,19,19,23,23,28,29,20, 28,28,29,20,28,23,23,23,23,23,23,23,23,13,14,16,16,16,16,16,12,23,23,23,23,23,23, 23,23,23,28,29,23,23,23,23,22,22,23,23,23,24,20,21,23,23,23,23,23,23,23,23,23,23, 23,24,23,22,23,23,23,23,23,23,23,23,23,23,12,16,16,16,16,16,0,16,16,16,16,16,16,16, 16,16,16,11,4,0,0,11,11,11,11,11,11,24,24,24,20,21,4), (11,11,11,11,11,11,11,11,11,11,24,24,24,20,21,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,6, 7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,1,27,27,27,27,1,27,27,2,1,1,1,2,2,1,1,1,2,27,1,27,27,24,1,1,1,1,1,27,27,27, 27,27,27,1,27,1,27,1,27,1,1,1,1,27,2,1,1,1,1,2,5,5,5,5,2,27,27,2,2,1,1,24,24,24,24, 24,1,2,2,2,2,27,24,27,27,2,27,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10), (10,10,10,1,2,10,10,10,10,11,27,27,0,0,0,0,24,24,24,24,24,27,27,27,27,27,24,24,27, 27,27,27,24,27,27,24,27,27,24,27,27,27,27,27,27,27,24,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,24,24,27,27,24, 27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,24,24,24,24,24,24,24,24,24,24,24,24), (24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24), (27,27,27,27,27,27,27,27,20,21,20,21,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,24,24,27,27,27,27,27,27,27,20,21,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,24,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,24,24,24,24,24,24,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11), (11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,24,27,27,27,27,27,27,27,27,27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,24,24,24,24,24,24,24,24), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,24,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,20,21,20,21, 20,21,20,21,20,21,20,21,20,21,11,11,11,11,11,11,11,11,11,11), (11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,24,24,24,24,24,20,21,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,20,21,20,21,20,21, 20,21,20,21,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24), (24,24,24,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,20,21,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,20,21,20,21,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,20,21,24,24), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,27,27,24,24,24,24,24,24,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,0,0,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,1,2,1,1,1,2,2,1,2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2,2,2, 2,2,4,4,1,1), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,27,27,27,27,27,27,1,2,1,2,6,6,6,1,2,0,0,0, 0,0,23,23,23,23,11,23,23), (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,2,2,2,0,2, 0,0,0,0,0,2,0,0,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4,23,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,6), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,5, 5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6), (23,23,28,29,28,29,23,23,23,28,29,23,28,29,23,23,23,23,23,23,23,23,23,19,23,23,19, 23,28,29,23,23,28,29,20,21,20,21,20,21,20,21,23,23,23,23,23,4,23,23,23,23,23,23,23, 23,23,23,19,19,23,23,23,23,19,23,20,23,23,23,23,23,23,23,23,23,23,23,23,23,27,27, 23,23,23,20,21,20,21,20,21,20,21,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,27,27,27,27, 27,27,27,27,27,27,27,0,0,0,0), (12,23,23,23,27,4,5,10,20,21,20,21,20,21,20,21,20,21,27,27,20,21,20,21,20,21,20,21, 19,20,21,21,27,10,10,10,10,10,10,10,10,10,6,6,6,6,8,8,19,4,4,4,4,4,27,27,10,10,10, 4,5,23,27,27,0,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,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,5,5,0,0,6,6,26,26,4,4,5,19,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,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,5,5,5,5, 5,5,23,4,4,4,5), (0,0,0,0,0,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,5,0,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,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,5,5,5,5,5,5,5,5,5,5,0,27,27,11,11,11,11,27,27,27,27,27,27,27,27,27,27, 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,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,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,5,5,5), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,0,11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,11,11,11,11,11,11,11,11,27,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,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,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,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,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,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,4,4,4,4,4,4,23,23), (5,5,5,5,5,5,5,5,5,5,5,5,4,23,23,23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,9,9,9,9,9,9,9, 9,9,9,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,6,7,7,7,23,6,6,6,6, 6,6,6,6,6,6,23,4), (1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,4,6,6,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,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,10,10,10,10,10,10,10,10,10,10,6,6,23,23, 23,23,23,23,0,0,0,0,0,0,0,0), (26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,4,4,4,4,4,4, 4,4,4,26,26,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,4,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2), (1,2,1,2,1,2,1,2,4,26,26,1,2,1,2,5,1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,0,0,0,0,0, 1,2,0,2,0,2,1,2,1,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,4,4,4,1,2,5,4, 4,2,5,5,5,5,5), (5,5,6,5,5,5,6,5,5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,8, 27,27,27,27,6,0,0,0,11,11,11,11,11,11,27,27,25,27,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5, 5,23,23,23,23,0,0,0,0,0,0,0,0), (8,8,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,5,5,5,5,5,5,5,5,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,6,0,0,0,0,0,0,0,0,23,23, 9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,23, 23,23,5,23,5,5,6), (9,9,9,9,9,9,9,9,9,9,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,6,6, 6,6,6,6,6,6,23,23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, 6,6,8,8,0,0,0,0,0,0,0,0,0,0,0,23,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,0,0,0), (6,6,6,8,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,5,5,5,5,5,6,8,8,6,6,6,6,8,8,6,6,8,8,8,23,23,23,23,23,23,23,23,23,23,23, 23,23,0,4,9,9,9,9,9,9,9,9,9,9,0,0,0,0,23,23,5,5,5,5,5,6,4,5,5,5,5,5,5,5,5,5,9,9,9, 9,9,9,9,9,9,9,5,5,5,5,5,0), (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,6,6,6,6,6,6,8,8,6,6,8,8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,6,5,5,5,5,5,5,5,5,6,8,0,0,9, 9,9,9,9,9,9,9,9,9,0,0,23,23,23,23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,27, 27,27,5,8,6,8,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, 5,5,5,5,5,5,5,5,6,5,6,6,6,5,5,6,6,5,5,5,5,5,6,6,5,6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,5,5,4,23,23,5,5,5,5,5,5,5,5,5,5,5,8,6,6,8,8,23,23,5,4,4,8,6,0, 0,0,0,0,0,0,0,0), (0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,0, 5,5,5,5,5,5,5,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,26,4,4,4,4,2,2,2,2,2,2,2,2,2,4,26,26,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,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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,8,8,6,8,8,6,8,8,23,8,6,0,0,9,9,9,9,9,9,9,9,9, 9,0,0,0,0,0,0), (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,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,5,5,5,5,5,5,5,5,5,5,0,0,0,0,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,5,5,5,5,5, 5,5,0,0,0,0), (18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18), (17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17), (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,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,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,0,0,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,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,5,5,5,5,5,5,5,5,5,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,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,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,5,6,5,5,5,5,5,5,5,5,5, 5,24,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,5,0,5,5,0,5,5,0,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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,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,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,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,5,5,5,5,5,5,5,5,5,5,21,20,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,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,5,5,5,5,5,5), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,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,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,27, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,25,27,27,27), (6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,23,23,23,23,23,23,23,20,21,23,0,0,0,0,0,0,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,23,19,19,22,22,20,21,20,21,20,21,20,21,20,21,20,21,20,21, 20,21,23,23,20,21,23,23,23,23,22,22,22,23,23,23,0,23,23,23,23,19,20,21,20,21,20,21, 23,23,23,24,19,24,24,24,0,23,25,23,23,0,0,0,0,5,5,5,5,5,0,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,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,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,5,5,5,5,5,5, 5,5,5,0,0,16), (0,23,23,23,25,23,23,23,20,21,23,24,23,19,23,23,9,9,9,9,9,9,9,9,9,9,23,23,24,24,24, 23,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,20,23,21,26,22,26,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,20,24,21,24,20,21,23,20,21,23,23,5, 5,5,5,5,5,5,5,5,5,4,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,5,5,5,4,4,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,0,0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,0, 0,5,5,5,5,5,5,0,0,5,5,5,0,0,0,25,25,24,26,27,25,25,0,27,24,24,24,24,27,27,0,0,0,0, 0,0,0,0,0,0,16,16,16,27,27,0,0), (5,5,5,5,5,5,5,5,5,5,5,5,0,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,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,5, 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,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,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,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,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,0,0,0,0,0), (23,23,23,0,0,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,27, 27,27,27,27,27,27,27,27,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,11,11,11,11,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,11,11,27,27,27,0,27,27,27,27,27,27,27,27,27,27,27, 27,27,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 6,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,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,5,5,5,5,5,5,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,0,0,0,0), (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,11,11,11,11,0,0, 0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,10,5,5,5,5,5,5,5,5,10,0,0,0, 0,0,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,6, 6,6,6,6,0,0,0,0,0), (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,0,23,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,0,0,0,0,5,5,5,5,5,5,5,5,23, 10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,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, 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,0,0,9,9,9,9,9,9,9,9, 9,9,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,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,2,2,2,2, 2,2,0,0,0,0), (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, 0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,23,1,1,1,1,1,1,1,1,1, 1,1,0,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0), (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,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (5,5,5,5,5,5,0,0,5,0,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,5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,0,23,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,27,27,11,11,11,11,11,11,11), (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,0,0,0,0,0,0,0,0,11, 11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,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,5,5,5,5,5,5,0,5,5, 0,0,0,0,0,11,11,11,11,11), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,11,11,11,11,11,11,0,0,0,23,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,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,5,0,0,0,0,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11), (5,6,6,6,0,6,6,0,0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5,0,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,0,0,6,6,6,0,0,0,0,6,11,11,11,11,11,11,11,11,11,0,0,0, 0,0,0,0,23,23,23,23,23,23,23,23,23,0,0,0,0,0,0,0,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,11,11,23), (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,11,11,11,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,27,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,6,6,0,0,0,0,11,11,11,11,11,23,23,23,23, 23,23,23,0,0,0,0,0,0,0,0,0), (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,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,23,23,23,23,23,23,23,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,0,0,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,0,0,0,0,11,11,11,11,11,11,11,11), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,23,23,23,23,0,0,0,0,0,0,0,0,0, 0,0,0,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,5,5,5,5,5,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,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,0,0,0,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,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, 11,11,11,11,11,11), (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,6,6,6,6, 0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,0), (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,0,6,6,19,0,0,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6), (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,11,11,11,11,11,11,11,11, 11,11,5,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6, 6,6,6,6,11,11,11,11,23,23,23,23,23,0,0,0,0,0,0,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,5,5,5), (5,5,6,6,6,6,23,23,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,11,11,11,11,11,11,11, 0,0,0,0,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,5,5,5,5,5,5,5,5, 5,5,0,0,0,0,0,0,0,0,0), (8,6,8,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,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,23,23,23,23,23,23,23, 0,0,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9, 9,9,9,6,5,5,6,6,5,0,0,0,0,0,0,0,0,0,6), (6,6,8,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,5,5,5,8,8,8,6,6,6,6,8,8,6,6,23,23,16,23,23,23,23,6,0,0,0,0,0,0,0,0,0,0, 16,0,0,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,0,0,0,0,0,0,0,9,9,9,9,9, 9,9,9,9,9,0,0,0,0,0,0), (6,6,6,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,6, 6,6,6,6,8,6,6,6,6,6,6,6,6,0,9,9,9,9,9,9,9,9,9,9,23,23,23,23,5,8,8,5,0,0,0,0,0,0,0, 0,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,6,23,23,5, 0,0,0,0,0,0,0,0,0), (6,6,8,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,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,6,8,8,5,5,5,5,23,23,23,23,6,6,6,6,23, 8,6,9,9,9,9,9,9,9,9,9,9,5,23,5,23,23,23,0,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,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,8,8,8,6,6,6,8,8,6,8,6,6,23,23,23,23,23,23,6,5,5,6,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, 5,23,0,0,0,0,0,0,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,5,5,5,5,5,6,8,8,8,6,6,6,6,6,6,6,6,0,0,0,0,0,9,9,9,9,9,9,9,9,9, 9,0,0,0,0,0,0), (6,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,6,6,5,8,8,6,8,8,8,8,0,0,8,8,0,0,8,8,8,0,0,5, 0,0,0,0,0,0,8,0,0,0,0,0,5,5,5,5,5,8,8,0,0,6,6,6,6,6,6,6,0,0,0,6,6,6,6,6,0,0,0,0,0, 0,0,0,0,0,0), (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,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,8,8,6,6,6,8,6,5,5,5,5,23,23,23,23, 23,9,9,9,9,9,9,9,9,9,9,23,23,0,23,6,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,8,8,8,6,6,6,6,6,6,8,6,8,8,8,8,6,6,8,6,6,5,5,23,5,0,0,0,0,0,0,0,0, 9,9,9,9,9,9,9,9,9,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,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,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,8,8,8,6,6,6,6,0,0,8,8,8,8,6,6,8,6,6,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,5,5,5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,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,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,8,8,8,6,6,6,6,6,6,6,6,8,8,6,8,6,6,23,23,23,5,0,0,0,0,0,0,0,0,0,0, 0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,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,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,6,8,6,8,8,6,6,6,6,6,6,8,6,5,23,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,8,8,6,6,6,6,8,6, 6,6,6,6,0,0,0,0,9,9,9,9,9,9,9,9,9,9,11,11,23,23,23,27,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,8,8,8,6,6,6,6,6,6,6,6,6,8,6,6,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1, 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,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,11,0,0, 0,0,0,0,0,0,0,0,0,0,5), (5,5,5,5,5,5,5,0,0,5,0,0,5,5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,8,8,8,8,8,8,0,8,8,0,0,6,6,8,6,5,8,5,8,6,23,23,23,0,0,0,0,0,0,0,0, 0,9,9,9,9,9,9,9,9,9,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,0,0,0,0, 0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, 0,0,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, 8,8,8,6,6,6,6,0,0,6,6,8,8,8,8,6,5,23,5,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (5,6,6,6,6,6,6,6,6,6,6,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,6,6,6,6,6,6,8,5,6,6,6,6,23,23,23,23,23,23,23,23,6,0,0,0,0,0, 0,0,0,5,6,6,6,6,6,6,8,8,6,6,6,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,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,8,6,6,23,23,23,5,23,23,23,23,23,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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,0,0,0,0,0,0,0), (23,23,23,23,23,23,23,23,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,8,6,6,6,6,6,6,6,0,6,6,6,6,6,6,8,6,5,23,23,23,23,23,0,0,0,0,0,0,0,0, 0,0,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 0,0,0,23,23,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,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 0,8,6,6,6,6,6,6,6,8,6,6,8,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (5,5,5,5,5,5,5,0,5,5,0,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,6,6,6,6,6,6,0,0,0,6,0,6,6,0,6,6,6,6,6,6,6,5,6,0,0,0,0,0,0,0,0,9, 9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,5,5,5,5,5,5,0,5,5,0,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,8,8,8,8,8,0,6,6,0,8,8,6,8,6,5,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9, 9,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,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,6,6,8,8,23,23, 0,0,0,0,0,0,0), (6,6,5,8,5,5,5,5,5,5,5,5,5,5,5,5,5,0,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,8,8,6,6,6,6,6,0,0,0,8,8,6,8,6,23,23,23,23,23,23,23,23,23, 23,23,23,23,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,25,25,25,25,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,23), (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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,0,23,23,23,23,23,0,0,0,0,0,0,0,0,0,0,0), (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,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,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (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,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,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,23,23,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,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,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,6,5,5,5,5,5,5,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,5,5,5,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,5,5,0,0,0,0,0,0,0,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,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,23,23,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,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,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,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,0,0,6,6,6,6,6,23,0,0,0, 0,0,0,0,0,0,0), (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,5,5,5,5,5,5,6,6,6,6,6,6,6,23,23,23,23,23,27,27,27,27,4,4,4,4,23,27,0,0,0,0,0, 0,0,0,0,0,9,9,9,9,9,9,9,9,9,9,0,11,11,11,11,11,11,11,0,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5), (5,5,5,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,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 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,1,1,1,1,1,1,1,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,2,2,2,2,2,2,2, 2,2,2,2,2,2), (11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,23,23,23,23, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,6,5, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8), (8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,6,6,6,6,4,4,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,0,0,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,23,4,6,0,0,0,0,0,0,0,0,0,0,0,8,8,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,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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, 0,0,0,0,0,0), (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,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,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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, 4,4,0,4,4,0), (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,0,0,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,0,0,0,0,0,0,0,0,0,5, 5,5,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0,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,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,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,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,0,0,0,0), (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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5, 5,5,5,0,0,0), (5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,0,0,27,6,6,23,16,16,16,16,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,8,8,6,6,6,27,27,27,8,8,8, 8,8,8,16,16,16,16,16,16,16,16,6,6,6,6,6), (6,6,6,27,27,6,6,6,6,6,6,6,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,6,6,6,6,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,6,6,6,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,0,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,1,1,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,0,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,0,1,1,0,0,1,0,0,1,1,0, 0,1,1,1,1,0,1,1,1,1,1,1,1,1,2,2,2,2,0,2,0,2,2,2,2,2,2,2,0,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2), (2,2,2,2,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,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,1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1, 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,1,1,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,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,1,1,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,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,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,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,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,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, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,24,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,24,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,24,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,24,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,24,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,24, 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,24,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,24,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,24,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,24,2,2,2,2,2,2,1,2,0,0,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9), (6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,27,27,27,27,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,27,27,27,27,27,27,27, 27,6,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,6,27,27,23,23,23,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,0,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,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,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,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,6,6,6,6,6,0,6,6,0,6,6, 6,6,6,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,6,6,6,6,6,6,6,4,4,4,4,4,4,4,0,0,9,9,9,9,9,9,9,9,9,9,0,0,0,0,5,27, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (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,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,6,0,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,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,6,6,6,6,9,9,9,9,9,9,9,9,9,9, 0,0,0,0,0,25), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,6,6,6,6,9,9,9,9,9,9,9,9,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,0,5,5,5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,0), (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,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,0,0,11,11,11,11,11,11,11, 11,11,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,4,0,0,0,0,9, 9,9,9,9,9,9,9,9,9,0,0,0,0,23,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11), (11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,27,11,11,11,25,11,11,11,11,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,27,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (5,5,5,5,0,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,0,5,5,0,5,0,0,5, 0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,5,0,5,0,0,0,0,0,0,5,0,0,0,0,5,0,5,0,5,0,5,5,5,0, 5,5,0,5,0,0,5,0,5,0,5,0,5,0,5,0,5,5,0,5,0,0,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,0,5, 5,5,5,0,5,0), (5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,0,5,5,5, 5,5,0,5,5,5,5,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,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0, 0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,0,0,0,0,0,0,0,0,0,0), (11,11,11,11,11,11,11,11,11,11,11,11,11,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27), (27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,0,0,0,0,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,27,27,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26,26,26,26,26), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0, 0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0, 0,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,27,27,27,27,27, 27,27,27,27,27,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,27,27,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,0,0,0,0,0,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,27, 27,27,27,27,27,27,27,27,27,27,27,27,0,0,0), (27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,0,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,0,0,0,0,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,27,27,27,27,27, 27,27,27,27,0,0,0,0,0,0,0), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,9,9,9,9,9,9,9,9,9,0,0,0, 0,0,0), (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,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,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,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,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,5,5,5,0,0,0,0,0,0,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,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,5,5,5,5,5,5,5,5,5,5,0,0,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,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,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,5,5,5,5,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,5,5,5,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,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, 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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16), (6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6), (6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0) ); // PUCUUnicodeCategoryArrayIndex: 1296 bytes, 47 blocks with 16 items per 1 bytes and 544 indices per 1 bytes const PUCUUnicodeCategoryArrayIndexBlockBits=4; PUCUUnicodeCategoryArrayIndexBlockMask=15; PUCUUnicodeCategoryArrayIndexBlockSize=16; PUCUUnicodeCategoryArrayIndexBlockCount=47; PUCUUnicodeCategoryArrayIndexBlockData:array[0..46,0..15] of byte=( (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31), (32,33,34,34,35,36,37,38,39,34,34,34,40,41,42,43), (44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59), (60,61,62,63,64,64,65,66,67,68,69,70,71,69,72,73), (69,69,64,74,64,64,75,76,77,78,79,80,81,82,69,83), (84,85,86,87,88,89,69,69,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,34,34,34,34,90,34,34,34,34), (91,34,34,34,34,34,34,34,34,92,34,34,93,94,95,96), (97,98,99,100,101,102,103,104,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,105), (106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106), (107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107), (107,107,34,34,108,109,110,111,34,34,112,113,114,115,116,117), (118,119,120,121,122,123,124,125,126,127,128,129,34,34,130,131), (132,133,134,135,136,137,138,139,140,141,142,122,143,144,145,146), (147,148,149,150,151,152,153,122,154,155,122,156,157,158,159,122), (160,161,162,163,164,165,166,122,167,168,169,170,122,171,172,173), (34,34,34,34,34,34,34,174,175,34,176,122,122,122,122,122), (122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,177), (34,34,34,34,34,34,34,34,178,122,122,122,122,122,122,122), (122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122), (122,122,122,122,122,122,122,122,34,34,34,34,179,122,122,122), (34,34,34,34,180,181,182,183,122,122,122,122,184,185,186,187), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,188), (34,34,34,34,34,34,34,34,34,189,190,122,122,122,122,122), (122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,191), (34,34,192,34,34,193,122,122,122,122,122,122,122,122,122,122), (122,122,122,122,122,122,122,122,194,195,122,122,122,122,122,122), (122,122,122,122,122,122,122,122,122,122,122,122,122,122,196,197), (69,198,199,200,201,202,203,122,204,205,206,207,208,209,210,211), (69,69,69,69,212,213,122,122,122,122,122,122,122,122,214,122), (215,216,217,122,122,218,122,122,122,219,122,122,122,122,122,220), (34,221,222,122,122,122,122,122,223,224,225,122,226,227,122,122), (228,229,230,231,232,122,69,233,69,69,69,69,69,234,235,236), (237,238,69,69,239,240,69,241,122,122,122,122,122,122,122,122), (34,34,34,34,34,34,34,34,34,34,34,34,34,242,34,34), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,243,34), (244,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,34,34,34,34,34,34,245,34,34), (34,34,34,34,34,34,34,246,122,122,122,122,122,122,122,122), (34,34,34,34,247,122,122,122,122,122,122,122,122,122,122,122), (34,34,34,34,34,34,248,34,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,249,122,122,122,122,122,122,122,122), (250,122,251,252,122,122,122,122,122,122,122,122,122,122,122,122), (107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,253) ); PUCUUnicodeCategoryArrayIndexIndexCount=47; PUCUUnicodeCategoryArrayIndexIndexData:array[0..543] of byte=( 0,1,2,3,4,5,6,7,7,8,7,7,7,7,7,7,7,7,7,7,9,10,7,7,7,7,11,12,13,13,13,14,15,16,17,18, 19,20,21,22,23,22,22,22,22,24,7,7,25,26,22,22,22,27,28,29,22,30,31,32,33,34,35,36, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,37,7,38,39,7,40,7,7,7,41,22,42,7,7,43,7,44, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,45,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,46,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,46 ); // PUCUUnicodeScriptArray: 40448 bytes, 248 blocks with 128 items per 1 bytes and 8704 indices per 1 bytes const PUCUUnicodeScriptArrayBlockBits=7; PUCUUnicodeScriptArrayBlockMask=127; PUCUUnicodeScriptArrayBlockSize=128; PUCUUnicodeScriptArrayBlockCount=248; PUCUUnicodeScriptArrayBlockData:array[0..247,0..127] of byte=( (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,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,2,2,2,2,2,2,2,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,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,1, 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,1,2,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,1,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,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,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,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,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,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,2,2,2,2,2,1,1,1,1,1,35,35,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1), (41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,3,3,3,3,1,3,3,3,0,0,3,3,3,3,1,3), (0,0,0,0,3,1,3,1,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,55,55,55,55,55,55,55,55,55,55,55,55,55,55,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3), (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,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,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,4,4), (4,4,4,4,4,41,41,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,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,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,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,4,0,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,0,0,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,5,5,5,5,5,5,5,5,0,0,5,5,5,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,6,6,6,6,6,6,0,0,0,0,0, 0,0,0,0,0,0), (7,7,7,7,7,1,7,7,7,7,7,7,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7,7,7,1,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7,7,7,7,7,7,7,7,7,7,41,41,41,41, 41,41,41,41,41,41,41,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,41,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,0,8,8,8,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,66,66,66,66,66,66,66,66,66,66, 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,0,0,66,66,66), (82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82, 82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,0,0,82,82,82,82,82,82,82, 82,82,82,82,82,82,82,82,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95, 95,95,95,95,95,95,95,95,95,0,0,95,0,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 41,41,41,41,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,1,1,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10), (11,11,11,11,0,11,11,11,11,11,11,11,11,0,0,11,11,0,0,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,0,11,0,0,0,11,11,11,11, 0,0,11,11,11,11,11,11,11,11,11,0,0,11,11,0,0,11,11,11,11,0,0,0,0,0,0,0,0,11,0,0,0, 0,11,11,0,11,11,11,11,11,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,0), (0,12,12,12,0,12,12,12,12,12,12,0,0,0,0,12,12,0,0,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12,12,0,12,12,12,12,12,12,12,0,12,12,0,12,12,0,12,12,0, 0,12,0,12,12,12,12,12,0,0,0,0,12,12,0,0,12,12,12,0,0,0,12,0,0,0,0,0,0,0,12,12,12, 12,0,12,0,0,0,0,0,0,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0, 0,0,0,0,0), (0,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,0,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,0,13,13,0,13,13,13, 13,13,0,0,13,13,13,13,13,13,13,13,13,13,0,13,13,13,0,13,13,13,0,0,13,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,13,13,13,13,0,0,13,13,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0, 0,13,13,13,13,13,13,13), (0,14,14,14,0,14,14,14,14,14,14,14,14,0,0,14,14,0,0,14,14,14,14,14,14,14,14,14,14, 14,14,14,14,14,14,14,14,14,14,14,14,0,14,14,14,14,14,14,14,0,14,14,0,14,14,14,14, 14,0,0,14,14,14,14,14,14,14,14,14,0,0,14,14,0,0,14,14,14,0,0,0,0,0,0,0,14,14,14,0, 0,0,0,14,14,0,14,14,14,14,14,0,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, 14,14,0,0,0,0,0,0,0,0), (0,0,15,15,0,15,15,15,15,15,15,0,0,0,15,15,15,0,15,15,15,15,0,0,0,15,15,0,15,0,15, 15,0,0,0,15,15,0,0,0,15,15,15,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,15, 15,15,15,15,0,0,0,15,15,15,0,15,15,15,15,0,0,15,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0, 0), (16,16,16,16,16,16,16,16,16,16,16,16,16,0,16,16,16,0,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,0,0,16,16,16,16,16,16,16,16,16,0,16,16,16,0,16,16,16,16,0,0,0,0,0,0,0,16,16, 0,16,16,16,0,0,16,0,0,16,16,16,16,0,0,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0, 16,16,16,16,16,16,16,16,16), (17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,0,17,17,17,17,17,17,17,17,17,17, 17,17,17,17,17,17,17,17,17,17,17,17,17,0,17,17,17,17,17,17,17,17,17,17,0,17,17,17, 17,17,0,0,17,17,17,17,17,17,17,17,17,0,17,17,17,0,17,17,17,17,0,0,0,0,0,0,0,17,17, 0,0,0,0,0,0,17,17,0,17,17,17,17,0,0,17,17,17,17,17,17,17,17,17,17,0,17,17,17,0,0, 0,0,0,0,0,0,0,0,0,0), (18,18,18,18,18,18,18,18,18,18,18,18,18,0,18,18,18,0,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,18,18,18,0,18,18,18,18,18,18,0,0,0,0, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,0,18,18,18,18,18,18,18,18,18,18, 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18), (0,19,19,19,0,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,0,0,19,19,19, 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,0,19,19,19,19,19,19, 19,19,19,0,19,0,0,19,19,19,19,19,19,19,0,0,0,19,0,0,0,0,19,19,19,19,19,19,0,19,0, 19,19,19,19,19,19,19,19,0,0,0,0,0,0,19,19,19,19,19,19,19,19,19,19,0,0,19,19,19,0, 0,0,0,0,0,0,0,0,0,0), (0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, 20,20,20,20,20,0,0,0,0,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, 20,20,20,20,20,20,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (0,21,21,0,21,0,21,21,21,21,21,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 21,21,21,21,21,21,21,21,0,21,0,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 21,21,21,21,21,21,0,0,21,21,21,21,21,0,21,0,21,21,21,21,21,21,21,0,21,21,21,21,21, 21,21,21,21,21,0,0,21,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 0,0,0,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22), (22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,22,22, 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22, 22,22,22,22,22,22,22,0,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0,22,22,22,22, 22,22,22,1,1,1,1,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0), (23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23), (23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,24,0,0,0,0,0,24,0,0,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,1,24,24,24,24), (25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25), (26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,0,0,26,26, 26,26,26,26,26,0,26,0,26,26,26,26,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26), (26,26,26,26,26,26,26,26,26,0,26,26,26,26,0,0,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,0,0, 26,26,26,26,26,26,26,0,26,0,26,26,26,26,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26), (26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,0,0,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,0,0), (26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0, 0,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,0,0,27,27,27,27,27,27,0,0), (28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28), (29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29, 29,29,0,0,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,1,1,1, 30,30,30,30,30,30,30,30,30,30,30,0,0,0,0,0,0,0), (42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,0,0,0,0,0,0, 0,0,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,1,1,0,0,0,0, 0,0,0,0,0,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,0,0,0,0,0,0, 0,0,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,0,45,45,45,0,45,45,0,0,0,0,0,0, 0,0,0,0,0,0), (31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, 31,31,31,31,31,31,31,31,31,31,31,31,31,0,0,31,31,31,31,31,31,31,31,31,31,0,0,0,0, 0,0,31,31,31,31,31,31,31,31,31,31,0,0,0,0,0,0), (32,32,1,1,32,1,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0, 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0), (32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, 28,28,28,28,28,28,28,28,0,0,0,0,0,0,0,0,0,0), (46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46, 46,46,46,46,0,46,46,46,46,46,46,46,46,46,46,46,46,0,0,0,0,46,46,46,46,46,46,46,46, 46,46,46,46,0,0,0,0,46,0,0,0,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47, 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,0,0,47,47, 47,47,47,0,0,0,0,0,0,0,0,0,0,0), (56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,0,0,56,56,56,56,56,56,56,56, 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,0,0,0,0,56,56,56,56,56, 56,56,56,56,56,56,0,0,0,56,56,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31), (54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54, 54,0,0,54,54,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78, 78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78, 78,78,78,78,78,78,78,78,78,78,78,78,78,0,78,78,78,78,78,78,78,78,78,78,78,78,78,78, 78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,0,0,78), (78,78,78,78,78,78,78,78,78,78,0,0,0,0,0,0,78,78,78,78,78,78,78,78,78,78,0,0,0,0, 0,0,78,78,78,78,78,78,78,78,78,78,78,78,78,78,0,0,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0,0,0,62,62, 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,0), (67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, 67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67, 67,67,67,67,67,67,67,67,67,67,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93, 93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93, 93,93,93,93,93,93,93,93,0,0,0,0,0,0,0,0,93,93,93,93), (68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, 68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68, 68,68,0,0,0,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,0,0,0,68,68,68,69,69,69, 69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69, 69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69), (4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 0,0,24,24,24,67,67,67,67,67,67,67,67,0,0,0,0,0,0,0,0,41,41,41,1,41,41,41,41,41,41, 41,41,41,41,41,41,41,1,41,41,41,41,41,41,41,1,1,1,1,41,1,1,1,1,1,1,41,1,1,1,41,41, 1,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,2,2,2,2,2,2,2,2,3,3, 3,3,3,4,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,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,4,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,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,3,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41), (3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,0,3, 3,3,3,3,3,3,3,0,3,0,3,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,0,0), (3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,0,3,3,3,3, 3,3,3,3,3,0), (1,1,1,1,1,1,1,1,1,1,1,1,41,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,2,0,0,1,1,1,1,1, 1,1,1,1,1,1,2), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1, 1,1,2,2,1,1,1,1,1,1,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,2,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,2,2,2,2,2,2,2, 2,2,2,2,2,2), (2,2,2,2,2,2,2,2,2,1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, 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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53, 53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,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,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57, 57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,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), (55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55, 55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55, 55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55, 55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55, 55,55,55,55,55,55,55,55,0,0,0,0,0,55,55,55,55,55,55,55), (24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, 24,24,24,24,24,24,24,24,24,24,24,0,24,0,0,0,0,0,24,0,0,58,58,58,58,58,58,58,58,58, 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58, 58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,0,0,0,0,0,0,0,58,58,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,58), (26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,0,0,0,0,0, 0,0,0,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26, 26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,26,26, 26,0,26,26,26,26,26,26,26,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), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,0,0,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,1,1,1,1,1,1, 1,1,1,1,1,0,0,0,0), (1,1,1,1,1,36,1,36,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,36,36,36,36, 36,36,36,36,36,41,41,41,41,25,25,1,1,1,1,1,1,1,1,36,36,36,36,1,1,1,1,0,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33), (33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,0,41,41,1, 1,33,33,33,1,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,1,1,34,34,34), (0,0,0,0,0,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35, 35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,0,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25), (25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,35, 35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35, 35,35,35,35,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34), (25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,1), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), (37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37), (37,37,37,37,37,37,37,37,37,37,37,37,37,0,0,0,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37, 37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,0,0,0,0,0,0,0,0,0,83,83,83,83,83, 83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83, 83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83), (70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, 70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, 70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, 70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, 70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70), (70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70, 70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,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,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,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,4,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,0,0,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,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,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,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,1,1,1,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,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,2, 2,0,2,0,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,2,2,2,2,2,2,2,2, 2,2,2,2,2,2), (59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59, 59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,0,0,0,1,1,1,1,1,1,1,1,1,1,0, 0,0,0,0,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65, 65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65, 65,65,65,65,65,0,0,0,0,0,0,0,0), (71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71, 71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,0,0,0,0,0,0,0,0,71,71,71,71,71,71, 71,71,71,71,71,71,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10), (72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72, 72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,1,72,73,73,73,73,73,73,73, 73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73, 73,73,0,0,0,0,0,0,0,0,0,0,0,73,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,0,0,0), (85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85, 85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85, 85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,1,85,85, 85,85,85,85,85,85,85,85,0,0,0,0,85,85,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0), (77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77, 77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77, 77,0,0,0,0,0,0,0,0,0,77,77,77,77,77,77,77,77,77,77,77,77,77,77,0,0,77,77,77,77,77, 77,77,77,77,77,0,0,77,77,77,77,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23, 23,23,23,23,23,23,23,23,23,23,23,23,23,23,23), (79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79, 79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79, 79,79,79,79,79,79,79,79,79,79,79,79,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,79,79,79,79,79,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86, 86,86,86,0,0,0,0,0,0,0,0,0), (0,26,26,26,26,26,26,0,0,26,26,26,26,26,26,0,0,26,26,26,26,26,26,0,0,0,0,0,0,0,0, 0,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,3,2,2,2,2, 1,1,0,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27), (27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,27,27,27,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86, 86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86, 86,86,0,0,86,86,86,86,86,86,86,86,86,86,0,0,0,0,0,0), (25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,0,0,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,25,25,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,0,6,0,6,6,0,6,6,0,6,6,6,6,6,6,6,6,6,6,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7), (41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1, 1,0,0,0,0,7,7,7,7,7,0,7,7,7,7,7,7,7,7,7,7), (7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,0,0,1), (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,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,34,34,34,34,34,34,34,34,34,34,1,34,34,34, 34,34,34,34,34,34,34,34,34,34,34,34), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,1,1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25, 25,25,25,25,25,25,25,25,0,0,0,25,25,25,25,25,25,0,0,25,25,25,25,25,25,0,0,25,25,25, 25,25,25,0,0,25,25,25,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1, 1,1,1,0,0), (48,48,48,48,48,48,48,48,48,48,48,48,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,0,48,48,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,0,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0), (48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,0,0,0,0), (1,1,1,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,0,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3), (3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,3,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,41,0,0), (74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74, 74,74,0,0,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75, 75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0), (38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38, 38,38,38,38,38,38,38,38,38,0,0,0,0,0,0,0,0,0,38,38,38,39,39,39,39,39,39,39,39,39, 39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,0,0,0,0,0,120,120,120,120,120, 120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120, 120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,0,0,0,0,0), (49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49, 49,49,49,0,49,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, 60,60,60,60,60,60,60,60,60,60,60,60,60,0,0,0,0,60,60,60,60,60,60,60,60,60,60,60,60, 60,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0), (40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,50, 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50, 50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50), (51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51, 51,51,51,0,0,51,51,51,51,51,51,51,51,51,51,0,0,0,0,0,0,136,136,136,136,136,136,136, 136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136, 136,136,136,136,136,136,136,136,0,0,0,0,136,136,136,136,136,136,136,136,136,136,136, 136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136, 136,136,136,136,0,0,0,0), (106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106, 106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0, 0,0,0,0,0,0,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103, 103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103, 103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,0,0,0,0,0,0,0,0,0,103, 161,161,161,161,161,161,161,161,161,161,161,0,161,161,161,161), (161,161,161,161,161,161,161,161,161,161,161,0,161,161,161,161,161,161,161,0,161, 161,0,161,161,161,161,161,161,161,161,161,161,161,0,161,161,161,161,161,161,161,161, 161,161,161,161,161,161,161,0,161,161,161,161,161,161,161,0,161,161,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110), (110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,0,0,0,0,0,0,0,0,0,110,110, 110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,0, 0,0,0,0,0,0,0,0,0,110,110,110,110,110,110,110,110,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,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (52,52,52,52,52,52,0,0,52,0,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52, 52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,0,52, 52,0,0,0,52,0,0,52,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87, 87,0,87,87,87,87,87,87,87,87,87,118,118,118,118,118,118,118,118,118,118,118,118,118, 118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118), (117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117,117, 117,117,117,117,117,117,117,117,117,117,117,0,0,0,0,0,0,0,0,117,117,117,117,117,117, 117,117,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 128,128,128,128,128,0,128,128,0,0,0,0,0,128,128,128,128,128), (64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, 64,0,0,0,64,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76, 76,76,76,0,0,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98, 98,98,98,98,98,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97, 97,97,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,97, 97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97, 97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97), (61,61,61,61,0,61,61,0,0,0,0,0,61,61,61,61,61,61,61,61,0,61,61,61,0,61,61,61,61,61, 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,61,61, 61,0,0,0,0,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61, 0,0,0,0,0,0,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88, 88,88,88,88,88,88,88,88,88), (116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116, 116,116,116,116,116,116,116,116,116,116,116,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,112,112,112,112,112,112,112,112,112,112,112,112, 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, 112,112,112,112,112,0,0,0,0,112,112,112,112,112,112,112,112,112,112,112,112,0,0,0, 0,0,0,0,0,0), (80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, 0,0,0,80,80,80,80,80,80,80,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89, 89,89,89,89,0,0,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90,90,90,90,90,90,90,90, 90,90,90,90,90,0,0,0,0,0,90,90,90,90,90,90,90,90), (121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,0,0,0,0, 0,0,0,121,121,121,121,0,0,0,0,0,0,0,0,0,0,0,0,121,121,121,121,121,121,121,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91, 91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91, 91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0), (130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130, 130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130, 130,130,130,130,130,130,130,130,130,130,0,0,0,0,0,0,0,0,0,0,0,0,0,130,130,130,130, 130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130, 130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130, 130,130,130,130,130,0,0,0,0,0,0,0,130,130,130,130,130,130), (146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,0, 0,0,0,0,0,0,0,146,146,146,146,146,146,146,146,146,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,0), (156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, 156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156, 156,0,156,156,156,0,0,156,156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,7,7,7), (148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148, 148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,0, 0,0,0,0,0,0,0,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147, 147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147, 147,147,147,147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,158,158,158,158,158,158, 158,158,158,158,158,158,158,158,158,158), (158,158,158,158,158,158,158,158,158,158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,153,153,153,153,153,153,153,153,153,153,153,153, 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149, 149,149,149,149,149,149,149,149,0,0,0,0,0,0,0,0,0), (94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94, 94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94, 94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,0,0,0,0,94, 94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94, 94,94,94,94,94,94,94,94,0,0,0,0,0,0,0,0,0,94), (92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92, 92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92, 92,92,92,92,92,92,92,92,92,92,92,92,92,0,0,0,0,0,0,0,0,0,0,92,0,0,101,101,101,101, 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, 0,0,0,0,0,0,0,101,101,101,101,101,101,101,101,101,101,0,0,0,0,0,0), (96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96, 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,96, 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,0,0,0,0,0,0,0,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111, 111,111,111,111,111,111,111,111,111,111,111,111,111,111,0,0,0,0,0,0,0,0,0), (100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100, 100,100,100,100,100,100,100,100,100,100,100,100,100,0,19,19,19,19,19,19,19,19,19, 19,19,19,19,19,19,19,19,19,19,19,0,0,0,0,0,0,0,0,0,0,0), (109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,0,109,109, 109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109, 109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109, 109,109,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (129,129,129,129,129,129,129,0,129,0,129,129,129,129,0,129,129,129,129,129,129,129, 129,129,129,129,129,129,129,129,0,129,129,129,129,129,129,129,129,129,129,129,0,0, 0,0,0,0,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, 123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123, 123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,0,0,0, 0,0,123,123,123,123,123,123,123,123,123,123,0,0,0,0,0,0), (107,107,107,107,0,107,107,107,107,107,107,107,107,0,0,107,107,0,0,107,107,107,107, 107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,107,107, 107,107,107,107,107,0,107,107,0,107,107,107,107,107,0,41,107,107,107,107,107,107, 107,107,107,0,0,107,107,0,0,107,107,107,0,0,107,0,0,0,0,0,0,107,0,0,0,0,0,107,107, 107,107,107,107,107,0,0,107,107,107,107,107,107,107,0,0,0,107,107,107,107,107,0,0, 0,0,0,0,0,0,0,0,0), (135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, 135,135,135,135,135,135,135,135,135,0,135,135,135,135,135,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, 124,124,124,124,124,124,124,124,124,124,0,0,0,0,0,0,0,0,124,124,124,124,124,124,124, 124,124,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0), (122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122, 122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122, 122,122,122,122,122,122,122,122,122,122,122,122,122,0,0,122,122,122,122,122,122,122, 122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122, 122,122,122,122,122,122,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114, 114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114, 114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114, 114,114,114,114,114,114,114,0,0,0,0,0,0,0,0,0,0,0,114,114,114,114,114,114,114,114, 114,114,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0), (102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,0,0,0,0,0,102, 102,102,102,102,102,102,102,102,102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126, 126,126,126,126,126,126,126,0,0,126,126,126,126,126,126,126,126,126,126,126,126,126, 126,126,0,0,0,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126, 126,126,126,126,126,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142, 142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142, 142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,125,125,125, 125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125, 125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125, 125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125, 125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,0,0,0,0,0,0,0,0,0, 0,0,0,125), (154,154,154,154,154,154,154,0,0,154,0,0,154,154,154,154,154,154,154,154,0,154,154, 0,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154,154, 154,154,154,154,154,154,154,154,154,154,0,154,154,0,0,154,154,154,154,154,154,154, 154,154,154,154,154,0,0,0,0,0,0,0,0,0,154,154,154,154,154,154,154,154,154,154,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,150,150,150, 150,150,150,150,0,0,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150, 150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150, 150,150,150,150,150,150,150,150,150,0,0,150,150,150,150,150,150,150,150,150,150,150, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141, 141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141, 141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141, 141,141,141,141,141,141,141,141,141,141,0,0,0,0,0,0,0,0,140,140,140,140,140,140,140, 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140), (140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,140, 140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,0,0,0,0,0,0,0,0,0,0,0, 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,119,119,119,119,119,119,119,119, 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, 119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119, 119,119,119,119,119,119,119,0,0,0,0,0,0,0), (10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (133,133,133,133,133,133,133,133,133,0,133,133,133,133,133,133,133,133,133,133,133, 133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133, 133,133,133,133,133,133,133,133,133,133,133,133,133,0,133,133,133,133,133,133,133, 133,133,133,133,133,133,133,0,0,0,0,0,0,0,0,0,0,133,133,133,133,133,133,133,133,133, 133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,133,0, 0,0,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134), (134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,0,0,134,134,134, 134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,0,134, 134,134,134,134,134,134,134,134,134,134,134,134,134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (138,138,138,138,138,138,138,0,138,138,0,138,138,138,138,138,138,138,138,138,138, 138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138, 138,138,138,138,138,138,138,138,138,138,138,138,138,0,0,0,138,0,138,138,0,138,138, 138,138,138,138,138,138,138,0,0,0,0,0,0,0,0,138,138,138,138,138,138,138,138,138,138, 0,0,0,0,0,0,143,143,143,143,143,143,0,143,143,0,143,143,143,143,143,143,143,143,143, 143,143,143,143,143,143,143,143,143,143,143,143,143), (143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,0,143,143,0,143,143, 143,143,143,143,0,0,0,0,0,0,0,143,143,143,143,143,143,143,143,143,143,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,144,144,144,144,144,144,144,144,144,144,144,144, 144,144,144,144,144,144,144,144,144,144,144,144,0,0,0,0,0,0,0), (162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,0,162,162,162, 162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162, 162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,0,0,0,162,162, 162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162,162, 162,162,162,162,162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15, 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, 15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,15), (63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63), (63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,0,63,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0), (63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63, 63,63,63,63,63,63,63,63,63,63,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,157,157,157,157,157,157,157,157,157,157, 157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157, 157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157, 157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157, 157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157,157, 157,157,157,0,0,0,0,0,0,0,0,0,0,0,0,0), (81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81), (81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81, 81,81,81,81,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127), (127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127, 127,127,127,127,127,127,127,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84), (84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84, 84,84,84,0,0,0,0,0,0,0,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115, 115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,0,115,115,115,115, 115,115,115,115,115,115,0,0,0,0,115,115,159,159,159,159,159,159,159,159,159,159,159, 159,159,159,159,159), (159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, 159,0,159,159,159,159,159,159,159,159,159,159,0,0,0,0,0,0,104,104,104,104,104,104, 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, 104,104,104,0,0,104,104,104,104,104,104,0,0,0,0,0,0,0,0,0,0), (108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108, 108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108, 108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108, 108,108,108,108,108,108,108,108,0,0,0,0,0,0,0,0,0,0,108,108,108,108,108,108,108,108, 108,108,0,108,108,108,108,108,108,108,0,108,108,108,108,108,108,108,108,108,108,108, 108,108,108,108,108,108,108,108,108,108,0,0,0,0,0,108,108,108), (108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,145,145,145,145,145,145,145,145,145, 145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145, 145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145, 145,145,145,145,145,145,145,145,145,145,145,145,145), (145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145, 145,145,145,145,145,145,145,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,0,0,0,0,99,99,99,99, 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99), (99,99,99,99,99,99,99,99,0,0,0,0,0,0,0,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 99,99,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,139,36,36,155,0,0,0,0, 0,0,0,0,0,0,0,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137), (137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,0,0,0,0,0,0,0,0), (155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155), (155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155,155, 155,155,155,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (137,137,137,137,137,137,137,137,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,34,34,34,0,34,34, 34,34,34,34,34,0,34,34,0), (34,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33), (33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33), (33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,34,34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,33,33,0,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34, 34,34,34,0,0,0,0,0,0,0,0,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139), (139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139), (139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139, 139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,0, 0,0,0), (105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105, 105,105,105,0,0,0,0,0,105,105,105,105,105,105,105,105,105,105,105,105,105,0,0,0), (105,105,105,105,105,105,105,105,105,0,0,0,0,0,0,0,105,105,105,105,105,105,105,105, 105,105,0,0,105,105,105,105,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,0,0,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,41,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,41,41,41,41,41), (41,41,41,1,1,41,41,41,41,41,41,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,41,41,41,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 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,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,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), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,0,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,0, 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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0, 0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,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,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,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,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1, 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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,1,1), (131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131, 131,131,131), (131,131,131,131,131,131,131,131,131,131,131,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131, 131,131,131,131,0,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (57,57,57,57,57,57,57,0,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,0,0,57, 57,57,57,57,57,57,0,57,57,0,57,57,57,57,57,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,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,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151, 151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151, 151,151,151,151,0,0,0,151,151,151,151,151,151,151,151,151,151,151,151,151,151,0,0, 151,151,151,151,151,151,151,151,151,151,0,0,0,0,151,151,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,160,160,160,160,160,160,160,160,160,160,160, 160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152, 152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152, 152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152, 152,152,0,0,0,0,0,152), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,163, 163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163, 163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,163,0, 0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,26,26,26,26,26,26,0,26,26,26,26,0,26,26,0,26,26, 26,26,26,26,26,26,26,26,26,26,26,26,26,0), (113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113), (113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,113,113,113,113,0,0,113,113,113,113,113,113,113,113,113,113,113,113,113, 113,113,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, 132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132, 132,132,132,132,132,132,132,132,132,132,132,132,132,132,0,0,0,0,132,132,132,132,132, 132,132,132,132,132,0,0,0,0,132,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (7,7,7,7,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,7,7,0,7,0,0,7, 0,7,7,7,7,7,7,7,7,7,7,0,7,7,7,7,0,7,0,7,0,0,0,0,0,0,7,0,0,0,0,7,0,7,0,7,0,7,7,7,0, 7,7,0,7,0,0,7,0,7,0,7,0,7,0,7,0,7,7,0,7,0,0,7,7,7,7,0,7,7,7,7,7,7,7,0,7,7,7,7,0,7, 7,7,7,0,7,0), (7,7,7,7,7,7,7,7,7,7,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,7,0,7,7,7, 7,7,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (33,1,1,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,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,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,0,0,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,0,0,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,0,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,0,0,1,1,1,1,1,1,1,1,1,1, 1,1,1,0,0,0), (1,1,1,1,1,1,1,1,1,0,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,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0, 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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,0,0,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,0,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36), (36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36, 36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,0,0,0,0,0,0,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,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1), (41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41), (41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41, 41,41,41,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeScriptArrayIndex: 1280 bytes, 46 blocks with 16 items per 1 bytes and 544 indices per 1 bytes const PUCUUnicodeScriptArrayIndexBlockBits=4; PUCUUnicodeScriptArrayIndexBlockMask=15; PUCUUnicodeScriptArrayIndexBlockSize=16; PUCUUnicodeScriptArrayIndexBlockCount=46; PUCUUnicodeScriptArrayIndexBlockData:array[0..45,0..15] of byte=( (0,1,2,2,2,3,4,5,6,7,8,9,10,11,12,13), (14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29), (30,31,32,32,33,34,35,36,37,37,37,37,37,38,39,40), (41,42,43,44,45,46,47,48,49,50,51,52,2,2,53,54), (55,56,57,58,59,59,59,59,60,59,59,59,59,59,59,59), (61,61,59,59,59,59,62,63,64,65,66,67,68,69,70,71), (72,73,74,75,76,77,78,59,70,70,70,70,70,70,70,70), (70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70), (70,70,70,70,70,70,70,70,70,70,70,79,70,70,70,70), (80,80,80,80,80,80,80,80,80,81,82,82,83,84,85,86), (87,88,89,90,91,92,93,94,32,32,32,32,32,32,32,32), (32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32), (32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,95), (96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96), (96,96,70,70,97,98,99,100,101,101,102,103,104,105,106,107), (108,109,110,111,96,112,113,114,115,116,117,118,119,119,120,121), (122,123,124,125,126,127,128,129,130,131,132,96,133,134,135,136), (137,138,139,140,141,142,143,96,144,145,96,146,147,148,149,96), (150,151,152,153,154,155,156,96,157,158,159,160,96,161,162,163), (164,164,164,164,164,164,164,165,166,164,167,96,96,96,96,96), (96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,168), (169,169,169,169,169,169,169,169,170,96,96,96,96,96,96,96), (96,96,96,96,96,96,96,96,171,171,171,171,172,96,96,96), (173,173,173,173,174,175,176,177,96,96,96,96,178,179,180,181), (182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182), (182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,183), (182,182,182,182,182,182,184,184,184,185,186,96,96,96,96,96), (96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,187), (188,189,190,191,191,192,96,96,96,96,96,96,96,96,96,96), (96,96,96,96,96,96,96,96,193,194,96,96,96,96,96,96), (96,96,96,96,96,96,96,96,96,96,96,96,96,96,195,196), (59,197,198,199,200,201,202,96,203,204,205,59,59,206,59,207), (208,208,208,208,208,209,96,96,96,96,96,96,96,96,210,96), (211,212,213,96,96,214,96,96,96,215,96,96,96,96,96,216), (217,218,219,96,96,96,96,96,220,221,222,96,223,224,96,96), (225,226,59,227,228,96,59,59,59,59,59,59,59,229,230,231), (232,233,59,59,234,235,59,236,96,96,96,96,96,96,96,96), (70,70,70,70,70,70,70,70,70,70,70,70,70,237,70,70), (70,70,70,70,70,70,70,70,70,70,70,70,70,70,238,70), (239,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70), (70,70,70,70,70,70,70,70,70,70,70,70,70,240,70,70), (70,70,70,70,70,70,70,241,96,96,96,96,96,96,96,96), (70,70,70,70,242,96,96,96,96,96,96,96,96,96,96,96), (70,70,70,70,70,70,243,70,70,70,70,70,70,70,70,70), (70,70,70,70,70,70,70,244,96,96,96,96,96,96,96,96), (245,96,246,247,96,96,96,96,96,96,96,96,96,96,96,96) ); PUCUUnicodeScriptArrayIndexIndexCount=46; PUCUUnicodeScriptArrayIndexIndexData:array[0..543] of byte=( 0,1,2,3,4,5,6,7,7,8,7,7,7,7,7,7,7,7,7,7,9,10,11,11,11,11,12,13,13,13,13,14,15,16, 17,18,19,20,21,13,22,13,13,13,13,23,24,24,25,26,13,13,13,27,28,29,13,30,31,32,33, 34,35,36,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,37,7,38,39,7,40,7,7,7,41,13,42,7, 7,43,7,44,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,45, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, 13,13,13,13,13,13,13,13,13,13,13,13,13,13 ); // PUCUUnicodeCanonicalCombiningClassArray: 20608 bytes, 93 blocks with 128 items per 1 bytes and 8704 indices per 1 bytes const PUCUUnicodeCanonicalCombiningClassArrayBlockBits=7; PUCUUnicodeCanonicalCombiningClassArrayBlockMask=127; PUCUUnicodeCanonicalCombiningClassArrayBlockSize=128; PUCUUnicodeCanonicalCombiningClassArrayBlockCount=93; PUCUUnicodeCanonicalCombiningClassArrayBlockData:array[0..92,0..127] of byte=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,232,220,220,220,220,232,216,220,220,220,220,220,202,202,220,220,220,220,202,202, 220,220,220,220,220,220,220,220,220,220,220,1,1,1,1,1,220,220,220,220,230,230,230, 230,230,230,230,230,240,230,220,220,220,230,230,230,220,220,0,230,230,230,220,220, 220,220,230,232,220,220,230,233,234,234,233,234,234,233,230,230,230,230,230,230,230, 230,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,230,230,230,230,220,230,230,230,222,220,230, 230,230,230,230,230,220,220,220,220,220,220,230,230,220,230,230,222,228,230,10,11, 12,13,14,15,16,17,18,19,19,20,21,22,0,23,0,24,25,0,230,220,0,18,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,230,230,30,31,32,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,27,28,29,30,31,32,33,34,230,230,220,220,230,230,230,230,230,220,230,230,220, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,230,230,230,230,230,230,230,0,0,230,230,230,230,220,230,0,0,230,230,0,220, 230,230,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,230,220,230,230,220,230,230,220,220,220,230,220,220,230,220,230,230, 230,220,230,220,230,220,230,220,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,230,220, 230,0,0,0,0,0,0,0,0,0,220,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,230,230,230,230,230, 230,230,230,230,0,230,230,230,0,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,220,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,220,220,220,230,230,230,230, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,230,230,230,230,230,220,220,220,220,220,230,230,230,230,230,230,230,230,230,230, 230,230,230,230,0,220,230,230,220,230,230,220,230,230,230,220,220,220,27,28,29,230, 230,230,220,230,230,220,220,230,230,230,230,230), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, 230,220,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,230,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,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, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, 0,0,0,0,84,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,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,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,103,9,0,0,0,0,0,0,0,0,0,0,0,0,0,107,107,107,107, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,118,9,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,220,0,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,130, 0,132,0,0,0,0,0,130,130,130,130,0,0), (130,0,230,230,9,0,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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,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,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,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,222,230,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,220,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230, 230,230,230,230,230,230,0,0,220), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,230,230,230,230,230,220,220,220,220,220,220,230,230,220,0,220,220, 230,230,220,220,230,230,230,230,230,220,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,230,220,230,230,230,230,230,230, 230,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230, 230,230,0,1,220,220,220,220,220,230,230,220,220,220,220,230,0,1,1,1,1,1,1,1,0,0,0, 0,220,0,0,0,0,0,0,230,0,0,0,230,230,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,220,230,230,230,230,230,230, 230,220,230,230,234,214,220,202,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,230,230,232,228,228,220,218,230,233,220,230,220), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230, 230,1,1,230,230,230,230,1,1,1,230,230,0,0,0,0,230,0,0,0,1,1,230,220,230,1,1,220,220, 220,220,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,218,228,232,222,224,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,230,230,230, 230,230,230,230,230,230,230,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,0,0,0,0, 0,0,0,0,0,0,0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,220,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,230,0,230,230,220,0,0,230,230,0,0,0,0,0,230,230,0,230,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230, 230,230,230,220,220,220,220,220,220,220,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,220,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230, 230,230,230,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,1,220,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230, 230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,220,220,220), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,230,230,230,220, 230,220,220,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,230,220,230,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, 0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 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,0,0,0,0,0,0,7,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,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,230,230,230,230,230,230,230,0,0,0,230,230, 230,230,230,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,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,7,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,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,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,230,230,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,6,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,216,1,1,1,0,0,0,226,216,216,216,216,216, 0,0,0,0,0,0,0,0,220,220,220,220,220), (220,220,220,0,0,230,230,230,230,230,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0), (230,230,230,230,230,230,230,0,230,230,230,230,230,230,230,230,230,230,230,230,230, 230,230,230,230,0,0,230,230,230,230,230,230,230,0,230,230,0,230,230,230,230,230,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,232,220,230,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220, 220,220,220,220,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,7, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeCanonicalCombiningClassArrayIndex: 688 bytes, 13 blocks with 32 items per 1 bytes and 272 indices per 1 bytes const PUCUUnicodeCanonicalCombiningClassArrayIndexBlockBits=5; PUCUUnicodeCanonicalCombiningClassArrayIndexBlockMask=31; PUCUUnicodeCanonicalCombiningClassArrayIndexBlockSize=32; PUCUUnicodeCanonicalCombiningClassArrayIndexBlockCount=13; PUCUUnicodeCanonicalCombiningClassArrayIndexBlockData:array[0..12,0..31] of byte=( (0,0,0,0,0,0,1,0,0,2,0,3,4,5,6,7,8,9,10,11,12,12,12,13,14,12,15,16,17,18,19,20), (21,22,0,0,0,0,23,0,0,0,0,0,0,0,24,25,0,26,27,0,28,29,30,31,32,33,0,34,0,0,0,0), (0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,37,38,0,0,0,0), (39,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,41,42,0,0,43,44,45,46,0,47,0,48,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,0,0,0,50,0,0,0), (0,0,0,51,0,52,53,0,0,0,0,0,0,0,0,0,0,0,0,0,54,55,0,0,0,0,56,0,0,57,58,59), (60,61,62,63,64,65,66,0,67,68,0,69,70,71,72,0,61,0,73,74,75,76,0,0,70,0,77,78,0,0, 79,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,81,0,0,0,0,0,0,0,0,82), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,0,0,0), (0,0,84,85,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (87,88,81,0,0,89,0,0,0,90,0,0,0,0,0,0,0,91,92,0,0,0,0,0,0,0,0,0,0,0,0,0) ); PUCUUnicodeCanonicalCombiningClassArrayIndexIndexCount=13; PUCUUnicodeCanonicalCombiningClassArrayIndexIndexData:array[0..271] of byte=( 0,1,2,3,4,4,4,4,4,4,5,4,4,4,4,6,7,8,4,4,4,4,9,4,4,4,4,10,4,11,12,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,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,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,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,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,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 ); // PUCUUnicodeDecompositionStartArray: 22784 bytes, 36 blocks with 256 items per 2 bytes and 4352 indices per 2 bytes const PUCUUnicodeDecompositionStartArrayBlockBits=8; PUCUUnicodeDecompositionStartArrayBlockMask=255; PUCUUnicodeDecompositionStartArrayBlockSize=256; PUCUUnicodeDecompositionStartArrayBlockCount=36; PUCUUnicodeDecompositionStartArrayBlockData:array[0..35,0..255] of word=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16385,16387,16389,16391, 16393,16395,0,16397,16399,16401,16403,16405,16407,16409,16411,16413,0,16415,16417, 16419,16421,16423,16425,0,0,16427,16429,16431,16433,16435,0,0,16437,16439,16441,16443, 16445,16447,0,16449,16451,16453,16455,16457,16459,16461,16463,16465,0,16467,16469, 16471,16473,16475,16477,0,0,16479,16481,16483,16485,16487,0,16489), (16491,16493,16495,16497,16499,16501,16503,16505,16507,16509,16511,16513,16515,16517, 16519,16521,0,0,16523,16525,16527,16529,16531,16533,16535,16537,16539,16541,16543, 16545,16547,16549,16551,16553,16555,16557,16559,16561,0,0,16563,16565,16567,16569, 16571,16573,16575,16577,16579,0,0,0,16581,16583,16585,16587,0,16589,16591,16593,16595, 16597,16599,0,0,0,0,16601,16603,16605,16607,16609,16611,0,0,0,16613,16615,16617,16619, 16621,16623,0,0,16625,16627,16629,16631,16633,16635,16637,16639,16641,16643,16645, 16647,16649,16651,16653,16655,16657,16659,0,0,16661,16663,16665,16667,16669,16671, 16673,16675,16677,16679,16681,16683,16685,16687,16689,16691,16693,16695,16697,16699, 16701,16703,16705,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,16707,16709,0,0,0,0,0,0,0,0,0,0,0,0,0,16711,16713,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,16715,16717,16719,16721,16723,16725,16727,16729,33115,33118, 33121,33124,33127,33130,33133,33136,0,33139,33142,33145,33148,16767,16769,0,0,16771, 16773,16775,16777,16779,16781,33167,33170,16789,16791,16793,0,0,0,16795,16797,0,0, 16799,16801,33187,33190,16809,16811,16813,16815), (16817,16819,16821,16823,16825,16827,16829,16831,16833,16835,16837,16839,16841,16843, 16845,16847,16849,16851,16853,16855,16857,16859,16861,16863,16865,16867,16869,16871, 0,0,16873,16875,0,0,0,0,0,0,16761,16764,16877,16879,33265,33268,33271,33274,16893, 16895,33281,33284,16903,16905,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 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,4,0,1421,16738,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,523, 0,0,0,0,0,0,0,0,0,524,0,0,0,0,0,0,16909,16911,529,16914,16916,16918,0,16920,0,16922, 16924,33310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16929,16931,16933,16935, 16937,16939,33325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16926,16941,16944, 16946,16948,0,0,0,0,16950,16952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (16954,16956,0,16958,0,0,0,16960,0,0,0,0,16962,16964,16966,0,0,0,0,0,0,0,0,0,0,16968, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16970,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16972,16974,0,16976,0,0,0,16978,0,0,0,0,16980,16982, 16984,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16986,16988,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16990,16992,0,0,0,0,0,0,0,0,0,0,0,0, 0,16994,16996,16998,17000,0,0,17002,17004,0,0,17006,17008,17010,17012,17014,17016, 0,0,17018,17020,17022,17024,17026,17028,0,0,17030,17032,17034,17036,17038,17040,17042, 17044,17046,17048,17050,17052,0,0,17054,17056,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17058,17060, 17062,17064,17066,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17068, 0,17070,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17072,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,17074,0,0,0,0,0,0,0,17076,0,0,17078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,17080,17082,17084,17086,17088,17090,17092,17094,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17096,17098,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,17100,17102,0,17104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,17106,0,0,17108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,17110,17112,17114,0,0,17116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17118,0,0,17120,17122, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17124,17126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17128,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,17130,17132,17134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17136,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17138,0,0,0,0,0,0,17140, 17142,0,17144,33530,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17149,17151,17153, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17155,0,17157,33543,17162,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17164,0,0,0,0,0,0,0,0,0,17166, 0,0,0,0,17168,0,0,0,0,17170,0,0,0,0,17172,0,0,0,0,0,0,0,0,0,0,0,0,17174,0,0,0,0,0, 0,0,0,0,17176,0,17178,17180,0,17182,0,0,0,0,0,0,0,0,17184,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,17186,0,0,0,0,0,0,0,0,0,17188,0,0,0,0,17190,0,0,0,0,17192,0,0,0,0,17194, 0,0,0,0,0,0,0,0,0,0,0,0,17196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17198, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,17200,0,17202,0,17204,0,17206,0,17208,0,0,0,17210,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17212,0,17214,0,0,17216, 17218,0,17220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (17222,17224,17226,17228,17230,17232,17234,17236,33622,33625,17244,17246,17248,17250, 17252,17254,17256,17258,17260,17262,33648,33651,33654,33657,17276,17278,17280,17282, 33668,33671,17290,17292,17294,17296,17298,17300,17302,17304,17306,17308,17310,17312, 17314,17316,17318,17320,33706,33709,17328,17330,17332,17334,17336,17338,17340,17342, 33728,33731,17350,17352,17354,17356,17358,17360,17362,17364,17366,17368,17370,17372, 17374,17376,17378,17380,17382,17384,33770,33773,33776,33779,33782,33785,33788,33791, 17410,17412,17414,17416,17418,17420,17422,17424,33810,33813,17432,17434,17436,17438, 17440,17442,33828,33831,33834,33837,33840,33843,17462,17464,17466,17468,17470,17472, 17474,17476,17478,17480,17482,17484,17486,17488,33874,33877,33880,33883,17502,17504, 17506,17508,17510,17512,17514,17516,17518,17520,17522,17524,17526,17528,17530,17532, 17534,17536,17538,17540,17542,17544,17546,17548,17550,17552,17554,17556,17558,17560, 0,17562,0,0,0,0,17564,17566,17568,17570,33956,33959,33962,33965,33968,33971,33974, 33977,33980,33983,33986,33989,33992,33995,33998,34001,34004,34007,34010,34013,17632, 17634,17636,17638,17640,17642,34028,34031,34034,34037,34040,34043,34046,34049,34052, 34055,17674,17676,17678,17680,17682,17684,17686,17688,34074,34077,34080,34083,34086, 34089,34092,34095,34098,34101,34104,34107,34110,34113,34116,34119,34122,34125,34128, 34131,17750,17752,17754,17756,34142,34145,34148,34151,34154,34157,34160,34163,34166, 34169,17788,17790,17792,17794,17796,17798,17800,17802,0,0,0,0,0,0), (17804,17806,34192,34195,34198,34201,34204,34207,17826,17828,34214,34217,34220,34223, 34226,34229,17848,17850,34236,34239,34242,34245,0,0,17864,17866,34252,34255,34258, 34261,0,0,17880,17882,34268,34271,34274,34277,34280,34283,17902,17904,34290,34293, 34296,34299,34302,34305,17924,17926,34312,34315,34318,34321,34324,34327,17946,17948, 34334,34337,34340,34343,34346,34349,17968,17970,34356,34359,34362,34365,0,0,17984, 17986,34372,34375,34378,34381,0,0,18000,18002,34388,34391,34394,34397,34400,34403, 0,18022,0,34408,0,34411,0,34414,18033,18035,34421,34424,34427,34430,34433,34436,18055, 18057,34443,34446,34449,34452,34455,34458,18077,16933,18079,16935,18081,16937,18083, 16939,18085,16944,18087,16946,18089,16948,0,0,34475,34478,50865,50869,50873,50877, 50881,50885,34505,34508,50895,50899,50903,50907,50911,50915,34535,34538,50925,50929, 50933,50937,50941,50945,34565,34568,50955,50959,50963,50967,50971,50975,34595,34598, 50985,50989,50993,50997,51001,51005,34625,34628,51015,51019,51023,51027,51031,51035, 18271,18273,34659,18278,34664,0,18283,34669,18288,18290,18292,16911,18294,0,542,0, 0,18296,34682,18301,34687,0,18306,34692,18311,16914,18313,16916,18315,18317,18319, 18321,18323,18325,34711,33310,0,0,18330,34716,18335,18337,18339,16918,0,18341,18343, 18345,18347,18349,34735,33325,18354,18356,18358,34744,18363,18365,18367,16922,18369, 18371,16909,1989,0,0,34758,18377,34763,0,18382,34768,18387,16920,18389,16924,18391, 2009,0,0), (2010,2011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,540, 0,0,0,201,16395,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18396,18398, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,18402,18404,18406,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,18408,0,0,0,0,18410,0,0,18412,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,18414,0,18416,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18418,0,0,18420, 0,0,18422,0,18424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18426,0,18428,0,0,0, 0,0,0,0,0,0,0,18430,18432,18434,18436,18438,0,0,18440,18442,0,0,18444,18446,0,0,0, 0,0,0,18448,18450,0,0,18452,18454,0,0,18456,18458,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18460,18462,18464,18466,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18468,18470, 18472,18474,0,0,0,0,0,0,18476,18478,18480,18482,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,2100,2101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18488,0,18490, 0,18492,0,18494,0,18496,0,18498,0,18500,0,18502,0,18504,0,18506,0,18508,0,18510,0, 0,18512,0,18514,0,18516,0,0,0,0,0,0,18518,18520,0,18522,18524,0,18526,18528,0,18530, 18532,0,18534,18536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18538,0,0,0,0,0,0, 0,0,0,18540,0,0,0,0,0,0,0,0,0,0,0,0,0,18542,0,18544,0,18546,0,18548,0,18550,0,18552, 0,18554,0,18556,0,18558,0,18560,0,18562,0,18564,0,0,18566,0,18568,0,18570,0,0,0,0, 0,0,18572,18574,0,18576,18578,0,18580,18582,0,18584,18586,0,18588,18590,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18592,0,0,18594,18596,18598,18600,0,0,0,18602,0 ), (2220,2221,2222,2223,2224,2225,2226,2227,2227,2228,2229,2230,2231,2232,2233,2234, 2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251, 2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268, 2269,2270,2271,2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2282,2283,2284,2285, 2286,2287,2288,2289,2290,2291,2292,2293,2294,2295,2296,2297,2298,2299,2300,2301,2302, 2303,2304,2305,2306,2307,2308,2309,2310,2239,2311,2312,2313,2314,2315,2316,2317,2318, 2319,2320,2321,2322,2323,2324,2325,2326,2327,2328,2329,2330,2331,2332,2333,2334,2335, 2336,2337,2338,2339,2340,2341,2342,2343,2344,2345,2346,2347,2348,2349,2350,2351,2352, 2353,2354,2355,2356,2357,2358,2359,2360,2361,2362,2363,2364,2365,2366,2367,2368,2369, 2370,2371,2372,2373,2374,2375,2376,2377,2378,2329,2379,2380,2381,2382,2383,2384,2385, 2386,2313,2387,2388,2389,2390,2391,2392,2393,2394,2395,2396,2397,2398,2399,2400,2401, 2402,2403,2404,2405,2406,2239,2407,2408,2409,2410,2411,2412,2413,2414,2415,2416,2417, 2418,2419,2420,2421,2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2315, 2434,2435,2436,2437,2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450, 2451,2452,2453,2454,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,2466,2467, 2468,2469), (2470,2471,2472,2473,2474,2475,2476,2477,2478,2479,2480,2481,2482,2483,0,0,2484,0, 2485,0,0,2486,2487,2488,2489,2490,2491,2492,2493,2494,2495,0,2496,0,2497,0,0,2498, 2499,0,0,0,2500,2501,2502,2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513, 2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524,2525,2526,2527,2528,2529,2530, 2531,2532,2533,2534,2535,2536,2537,2538,2539,2540,2541,2542,2543,2544,2368,2545,2546, 2547,2548,2549,2550,2550,2551,2552,2553,2554,2555,2556,2557,2558,2498,2559,2560,2561, 2562,2563,2564,0,0,2565,2566,2567,2568,2569,2570,2571,2572,2512,2573,2574,2575,2484, 2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2521,2588,2522,2589,2590, 2591,2592,2593,2485,2260,2594,2595,2596,2330,2417,2597,2598,2529,2599,2530,2600,2601, 2602,2487,2603,2604,2605,2606,2607,2488,2608,2609,2610,2611,2612,2613,2544,2614,2615, 2368,2616,2548,2617,2618,2619,2620,2621,2553,2622,2497,2623,2554,2311,2624,2555,2625, 2557,2626,2627,2628,2629,2630,2559,2493,2631,2560,2632,2561,2633,2227,2634,2635,2636, 2637,2638,2639,2640,2641,2642,2643,2644,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19029,0,19031,0,0,0,0, 0,0,0,0,0,0,19033,19035,35421,35424,19043,19045,19047,19049,19051,19053,19055,19057, 19059,0,19061,19063,19065,19067,19069,0,19071,0,19073,19075,0,19077,19079,0,19081, 19083,19085,19037,19087,19089,19091,19093,19095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19097,0,19099,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,19101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,19103,19105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19107,19109, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19111,19113,0,19115,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19117,19119,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,19123,19125,35511,35514,35517,35520,35523,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19142, 19144,35530,35533,35536,35539,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (2774,2775,2776,2777,2778,2506,2779,2780,2781,2782,2507,2783,2784,2785,2508,2786, 2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2566,2798,2799,2800,2801,2802, 2803,2804,2805,2806,2571,2509,2510,2572,2807,2808,2317,2809,2511,2810,2811,2812,2813, 2813,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828, 2829,2830,2831,2831,2574,2832,2833,2834,2835,2513,2836,2837,2838,2470,2839,2840,2841, 2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858, 2859,2860,2861,2862,2863,2864,2864,2865,2866,2867,2313,2868,2869,2870,2871,2872,2873, 2874,2875,2518,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889, 2890,2891,2892,2893,2894,2895,2896,2259,2897,2898,2899,2899,2900,2901,2901,2902,2903, 2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914,2519,2915,2916,2917,2918,2586, 2918,2919,2521,2920,2921,2922,2923,2522,2232,2924,2925,2926,2927,2928,2929,2930,2931, 2932,2933,2934,2935,2936,2937,2938,2939,2940,2941,2942,2943,2944,2945,2523,2946,2947, 2948,2949,2950,2951,2525,2952,2953,2954,2955,2956,2957,2958,2959,2260,2594,2960,2961, 2962,2963,2964,2965,2966,2967,2526,2968,2969,2970,2971,2637,2972,2973,2974,2975,2976, 2977,2978,2979,2980,2981,2982,2983,2984,2330,2985,2986,2987,2988,2989,2990,2991,2992, 2993,2994), (2995,2527,2417,2996,2997,2998,2999,3000,3001,3002,3003,2598,3004,3005,3006,3007, 3008,3009,3010,3011,2599,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023, 2601,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3034,3035,3036,2603,3037, 3038,3039,3040,3041,3042,3043,2316,3044,3045,3046,3047,3048,3049,3050,2609,3051,3052, 3053,3054,3055,3056,3056,2610,2639,3057,3058,3059,3060,3061,2278,2612,3062,3063,2538, 3064,3065,2492,3066,3067,2542,3068,3069,3070,3071,3071,3072,3073,3074,3075,3076,3077, 3078,3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094, 3095,3096,3097,3098,2548,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110, 3111,3112,3113,3114,2900,3115,3116,3117,3118,3119,3120,3121,3122,3123,3124,3125,3126, 2334,3127,3128,3129,3130,3131,3132,2551,3133,3134,3135,3136,3137,3138,3139,3140,3141, 3142,3143,3144,3145,3146,3147,3148,3149,3150,3151,3152,2273,3153,3154,3155,3156,3157, 3158,2619,3159,3160,3161,3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173, 3174,3175,3176,3177,3178,2624,2625,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188, 3189,3190,3191,2626,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204, 3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219,3220,3221, 2632,2632), (3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,2633,3232,3233,3234,3235,3236, 3237,3238,3239,3240,3241,3242,3243,3244,3245,3246,3247,3248,3249,3250,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeDecompositionStartArrayIndex: 360 bytes, 7 blocks with 32 items per 1 bytes and 136 indices per 1 bytes const PUCUUnicodeDecompositionStartArrayIndexBlockBits=5; PUCUUnicodeDecompositionStartArrayIndexBlockMask=31; PUCUUnicodeDecompositionStartArrayIndexBlockSize=32; PUCUUnicodeDecompositionStartArrayIndexBlockCount=7; PUCUUnicodeDecompositionStartArrayIndexBlockData:array[0..6,0..31] of byte=( (0,1,2,3,4,5,6,5,5,7,8,9,10,11,5,12,13,5,5,5,5,5,5,5,5,5,5,14,5,5,15,16), (17,18,19,20,5,5,5,5,5,5,21,5,5,5,5,5,22,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,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,23,24,25,5,5,5,5), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,26,27,5,28,29,30,5,5,5,31,5,5,5,5,5,5), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,32,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,33,34,35,5,5,5,5,5) ); PUCUUnicodeDecompositionStartArrayIndexIndexCount=7; PUCUUnicodeDecompositionStartArrayIndexIndexData:array[0..135] of byte=( 0,1,2,2,2,2,2,3,4,2,2,2,2,2,5,2,2,2,2,2,2,2,2,6,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,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,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,2,2,2,2,2,2,2 ); const PUCUUnicodeDecompositionSequenceArrayData:array[0..3250] of longword=( 0,65,768,65,769,65,770,65,771,65,776,65,778,67,807,69,768,69,769,69,770,69,776,73, 768,73,769,73,770,73,776,78,771,79,768,79,769,79,770,79,771,79,776,85,768,85,769, 85,770,85,776,89,769,97,768,97,769,97,770,97,771,97,776,97,778,99,807,101,768,101, 769,101,770,101,776,105,768,105,769,105,770,105,776,110,771,111,768,111,769,111,770, 111,771,111,776,117,768,117,769,117,770,117,776,121,769,121,776,65,772,97,772,65, 774,97,774,65,808,97,808,67,769,99,769,67,770,99,770,67,775,99,775,67,780,99,780, 68,780,100,780,69,772,101,772,69,774,101,774,69,775,101,775,69,808,101,808,69,780, 101,780,71,770,103,770,71,774,103,774,71,775,103,775,71,807,103,807,72,770,104,770, 73,771,105,771,73,772,105,772,73,774,105,774,73,808,105,808,73,775,74,770,106,770, 75,807,107,807,76,769,108,769,76,807,108,807,76,780,108,780,78,769,110,769,78,807, 110,807,78,780,110,780,79,772,111,772,79,774,111,774,79,779,111,779,82,769,114,769, 82,807,114,807,82,780,114,780,83,769,115,769,83,770,115,770,83,807,115,807,83,780, 115,780,84,807,116,807,84,780,116,780,85,771,117,771,85,772,117,772,85,774,117,774, 85,778,117,778,85,779,117,779,85,808,117,808,87,770,119,770,89,770,121,770,89,776, 90,769,122,769,90,775,122,775,90,780,122,780,79,795,111,795,85,795,117,795,65,780, 97,780,73,780,105,780,79,780,111,780,85,780,117,780,85,776,772,117,776,772,85,776, 769,117,776,769,85,776,780,117,776,780,85,776,768,117,776,768,65,776,772,97,776,772, 65,775,772,97,775,772,198,772,230,772,71,780,103,780,75,780,107,780,79,808,111,808, 79,808,772,111,808,772,439,780,658,780,106,780,71,769,103,769,78,768,110,768,65,778, 769,97,778,769,198,769,230,769,216,769,248,769,65,783,97,783,65,785,97,785,69,783, 101,783,69,785,101,785,73,783,105,783,73,785,105,785,79,783,111,783,79,785,111,785, 82,783,114,783,82,785,114,785,85,783,117,783,85,785,117,785,83,806,115,806,84,806, 116,806,72,780,104,780,69,807,101,807,79,776,772,111,776,772,79,771,772,111,771,772, 79,775,111,775,79,775,772,111,775,772,89,772,121,772,697,59,168,769,913,769,183,917, 769,919,769,921,769,927,769,933,769,937,769,953,776,769,921,776,933,776,945,769,949, 769,951,769,953,769,965,776,769,959,769,965,769,969,769,978,769,978,776,1045,768, 1045,776,1043,769,1030,776,1050,769,1048,768,1059,774,1048,774,1080,774,1077,768, 1077,776,1075,769,1110,776,1082,769,1080,768,1091,774,1140,783,1141,783,1046,774, 1078,774,1040,774,1072,774,1040,776,1072,776,1045,774,1077,774,1240,776,1241,776, 1046,776,1078,776,1047,776,1079,776,1048,772,1080,772,1048,776,1080,776,1054,776, 1086,776,1256,776,1257,776,1069,776,1101,776,1059,772,1091,772,1059,776,1091,776, 1059,779,1091,779,1063,776,1095,776,1067,776,1099,776,1575,1619,1575,1620,1608,1620, 1575,1621,1610,1620,1749,1620,1729,1620,1746,1620,2344,2364,2352,2364,2355,2364,2325, 2364,2326,2364,2327,2364,2332,2364,2337,2364,2338,2364,2347,2364,2351,2364,2503,2494, 2503,2519,2465,2492,2466,2492,2479,2492,2610,2620,2616,2620,2582,2620,2583,2620,2588, 2620,2603,2620,2887,2902,2887,2878,2887,2903,2849,2876,2850,2876,2962,3031,3014,3006, 3015,3006,3014,3031,3142,3158,3263,3285,3270,3285,3270,3286,3270,3266,3270,3266,3285, 3398,3390,3399,3390,3398,3415,3545,3530,3545,3535,3545,3535,3530,3545,3551,3906,4023, 3916,4023,3921,4023,3926,4023,3931,4023,3904,4021,3953,3954,3953,3956,4018,3968,4019, 3968,3953,3968,3986,4023,3996,4023,4001,4023,4006,4023,4011,4023,3984,4021,4133,4142, 6917,6965,6919,6965,6921,6965,6923,6965,6925,6965,6929,6965,6970,6965,6972,6965,6974, 6965,6975,6965,6978,6965,65,805,97,805,66,775,98,775,66,803,98,803,66,817,98,817, 67,807,769,99,807,769,68,775,100,775,68,803,100,803,68,817,100,817,68,807,100,807, 68,813,100,813,69,772,768,101,772,768,69,772,769,101,772,769,69,813,101,813,69,816, 101,816,69,807,774,101,807,774,70,775,102,775,71,772,103,772,72,775,104,775,72,803, 104,803,72,776,104,776,72,807,104,807,72,814,104,814,73,816,105,816,73,776,769,105, 776,769,75,769,107,769,75,803,107,803,75,817,107,817,76,803,108,803,76,803,772,108, 803,772,76,817,108,817,76,813,108,813,77,769,109,769,77,775,109,775,77,803,109,803, 78,775,110,775,78,803,110,803,78,817,110,817,78,813,110,813,79,771,769,111,771,769, 79,771,776,111,771,776,79,772,768,111,772,768,79,772,769,111,772,769,80,769,112,769, 80,775,112,775,82,775,114,775,82,803,114,803,82,803,772,114,803,772,82,817,114,817, 83,775,115,775,83,803,115,803,83,769,775,115,769,775,83,780,775,115,780,775,83,803, 775,115,803,775,84,775,116,775,84,803,116,803,84,817,116,817,84,813,116,813,85,804, 117,804,85,816,117,816,85,813,117,813,85,771,769,117,771,769,85,772,776,117,772,776, 86,771,118,771,86,803,118,803,87,768,119,768,87,769,119,769,87,776,119,776,87,775, 119,775,87,803,119,803,88,775,120,775,88,776,120,776,89,775,121,775,90,770,122,770, 90,803,122,803,90,817,122,817,104,817,116,776,119,778,121,778,383,775,65,803,97,803, 65,777,97,777,65,770,769,97,770,769,65,770,768,97,770,768,65,770,777,97,770,777,65, 770,771,97,770,771,65,803,770,97,803,770,65,774,769,97,774,769,65,774,768,97,774, 768,65,774,777,97,774,777,65,774,771,97,774,771,65,803,774,97,803,774,69,803,101, 803,69,777,101,777,69,771,101,771,69,770,769,101,770,769,69,770,768,101,770,768,69, 770,777,101,770,777,69,770,771,101,770,771,69,803,770,101,803,770,73,777,105,777, 73,803,105,803,79,803,111,803,79,777,111,777,79,770,769,111,770,769,79,770,768,111, 770,768,79,770,777,111,770,777,79,770,771,111,770,771,79,803,770,111,803,770,79,795, 769,111,795,769,79,795,768,111,795,768,79,795,777,111,795,777,79,795,771,111,795, 771,79,795,803,111,795,803,85,803,117,803,85,777,117,777,85,795,769,117,795,769,85, 795,768,117,795,768,85,795,777,117,795,777,85,795,771,117,795,771,85,795,803,117, 795,803,89,768,121,768,89,803,121,803,89,777,121,777,89,771,121,771,945,787,945,788, 945,787,768,945,788,768,945,787,769,945,788,769,945,787,834,945,788,834,913,787,913, 788,913,787,768,913,788,768,913,787,769,913,788,769,913,787,834,913,788,834,949,787, 949,788,949,787,768,949,788,768,949,787,769,949,788,769,917,787,917,788,917,787,768, 917,788,768,917,787,769,917,788,769,951,787,951,788,951,787,768,951,788,768,951,787, 769,951,788,769,951,787,834,951,788,834,919,787,919,788,919,787,768,919,788,768,919, 787,769,919,788,769,919,787,834,919,788,834,953,787,953,788,953,787,768,953,788,768, 953,787,769,953,788,769,953,787,834,953,788,834,921,787,921,788,921,787,768,921,788, 768,921,787,769,921,788,769,921,787,834,921,788,834,959,787,959,788,959,787,768,959, 788,768,959,787,769,959,788,769,927,787,927,788,927,787,768,927,788,768,927,787,769, 927,788,769,965,787,965,788,965,787,768,965,788,768,965,787,769,965,788,769,965,787, 834,965,788,834,933,788,933,788,768,933,788,769,933,788,834,969,787,969,788,969,787, 768,969,788,768,969,787,769,969,788,769,969,787,834,969,788,834,937,787,937,788,937, 787,768,937,788,768,937,787,769,937,788,769,937,787,834,937,788,834,945,768,949,768, 951,768,953,768,959,768,965,768,969,768,945,787,837,945,788,837,945,787,768,837,945, 788,768,837,945,787,769,837,945,788,769,837,945,787,834,837,945,788,834,837,913,787, 837,913,788,837,913,787,768,837,913,788,768,837,913,787,769,837,913,788,769,837,913, 787,834,837,913,788,834,837,951,787,837,951,788,837,951,787,768,837,951,788,768,837, 951,787,769,837,951,788,769,837,951,787,834,837,951,788,834,837,919,787,837,919,788, 837,919,787,768,837,919,788,768,837,919,787,769,837,919,788,769,837,919,787,834,837, 919,788,834,837,969,787,837,969,788,837,969,787,768,837,969,788,768,837,969,787,769, 837,969,788,769,837,969,787,834,837,969,788,834,837,937,787,837,937,788,837,937,787, 768,837,937,788,768,837,937,787,769,837,937,788,769,837,937,787,834,837,937,788,834, 837,945,774,945,772,945,768,837,945,837,945,769,837,945,834,945,834,837,913,774,913, 772,913,768,913,837,168,834,951,768,837,951,837,951,769,837,951,834,951,834,837,917, 768,919,768,919,837,8127,768,8127,769,8127,834,953,774,953,772,953,776,768,953,834, 953,776,834,921,774,921,772,921,768,8190,768,8190,769,8190,834,965,774,965,772,965, 776,768,961,787,961,788,965,834,965,776,834,933,774,933,772,933,768,929,788,168,768, 96,969,768,837,969,837,969,769,837,969,834,969,834,837,927,768,937,768,937,837,180, 8194,8195,8592,824,8594,824,8596,824,8656,824,8660,824,8658,824,8707,824,8712,824, 8715,824,8739,824,8741,824,8764,824,8771,824,8773,824,8776,824,61,824,8801,824,8781, 824,60,824,62,824,8804,824,8805,824,8818,824,8819,824,8822,824,8823,824,8826,824, 8827,824,8834,824,8835,824,8838,824,8839,824,8866,824,8872,824,8873,824,8875,824, 8828,824,8829,824,8849,824,8850,824,8882,824,8883,824,8884,824,8885,824,12296,12297, 10973,824,12363,12441,12365,12441,12367,12441,12369,12441,12371,12441,12373,12441, 12375,12441,12377,12441,12379,12441,12381,12441,12383,12441,12385,12441,12388,12441, 12390,12441,12392,12441,12399,12441,12399,12442,12402,12441,12402,12442,12405,12441, 12405,12442,12408,12441,12408,12442,12411,12441,12411,12442,12358,12441,12445,12441, 12459,12441,12461,12441,12463,12441,12465,12441,12467,12441,12469,12441,12471,12441, 12473,12441,12475,12441,12477,12441,12479,12441,12481,12441,12484,12441,12486,12441, 12488,12441,12495,12441,12495,12442,12498,12441,12498,12442,12501,12441,12501,12442, 12504,12441,12504,12442,12507,12441,12507,12442,12454,12441,12527,12441,12528,12441, 12529,12441,12530,12441,12541,12441,35912,26356,36554,36040,28369,20018,21477,40860, 22865,37329,21895,22856,25078,30313,32645,34367,34746,35064,37007,27138,27931,28889, 29662,33853,37226,39409,20098,21365,27396,29211,34349,40478,23888,28651,34253,35172, 25289,33240,34847,24266,26391,28010,29436,37070,20358,20919,21214,25796,27347,29200, 30439,32769,34310,34396,36335,38706,39791,40442,30860,31103,32160,33737,37636,40575, 35542,22751,24324,31840,32894,29282,30922,36034,38647,22744,23650,27155,28122,28431, 32047,32311,38475,21202,32907,20956,20940,31260,32190,33777,38517,35712,25295,35582, 20025,23527,24594,29575,30064,21271,30971,20415,24489,19981,27852,25976,32034,21443, 22622,30465,33865,35498,27578,36784,27784,25342,33509,25504,30053,20142,20841,20937, 26753,31975,33391,35538,37327,21237,21570,22899,24300,26053,28670,31018,38317,39530, 40599,40654,21147,26310,27511,36706,24180,24976,25088,25754,28451,29001,29833,31178, 32244,32879,36646,34030,36899,37706,21015,21155,21693,28872,35010,24265,24565,25467, 27566,31806,29557,20196,22265,23994,24604,29618,29801,32666,32838,37428,38646,38728, 38936,20363,31150,37300,38584,24801,20102,20698,23534,23615,26009,29134,30274,34044, 36988,40845,26248,38446,21129,26491,26611,27969,28316,29705,30041,30827,32016,39006, 20845,25134,38520,20523,23833,28138,36650,24459,24900,26647,38534,21033,21519,23653, 26131,26446,26792,27877,29702,30178,32633,35023,35041,37324,38626,21311,28346,21533, 29136,29848,34298,38563,40023,40607,26519,28107,33256,31435,31520,31890,29376,28825, 35672,20160,33590,21050,20999,24230,25299,31958,23429,27934,26292,36667,34892,38477, 35211,24275,20800,21952,22618,26228,20958,29482,30410,31036,31070,31077,31119,38742, 31934,32701,34322,35576,36920,37117,39151,39164,39208,40372,37086,38583,20398,20711, 20813,21193,21220,21329,21917,22022,22120,22592,22696,23652,23662,24724,24936,24974, 25074,25935,26082,26257,26757,28023,28186,28450,29038,29227,29730,30865,31038,31049, 31048,31056,31062,31069,31117,31118,31296,31361,31680,32265,32321,32626,32773,33261, 33401,33879,35088,35222,35585,35641,36051,36104,36790,38627,38911,38971,24693,148206, 33304,20006,20917,20840,20352,20805,20864,21191,21242,21845,21913,21986,22707,22852, 22868,23138,23336,24274,24281,24425,24493,24792,24910,24840,24928,25140,25540,25628, 25682,25942,26395,26454,27513,28379,28363,28702,30631,29237,29359,29809,29958,30011, 30237,30239,30427,30452,30538,30528,30924,31409,31867,32091,32574,33618,33775,34681, 35137,35206,35519,35531,35565,35722,36664,36978,37273,37494,38524,38875,38923,39698, 141386,141380,144341,15261,16408,16441,152137,154832,163539,40771,40846,1497,1460, 1522,1463,1513,1473,1513,1474,1513,1468,1473,1513,1468,1474,1488,1463,1488,1464,1488, 1468,1489,1468,1490,1468,1491,1468,1492,1468,1493,1468,1494,1468,1496,1468,1497,1468, 1498,1468,1499,1468,1500,1468,1502,1468,1504,1468,1505,1468,1507,1468,1508,1468,1510, 1468,1511,1468,1512,1468,1514,1468,1493,1465,1489,1471,1499,1471,1508,1471,69785, 69818,69787,69818,69797,69818,69937,69927,69938,69927,70471,70462,70471,70487,70841, 70842,70841,70832,70841,70845,71096,71087,71097,71087,71989,71984,119127,119141,119128, 119141,119128,119141,119150,119128,119141,119151,119128,119141,119152,119128,119141, 119153,119128,119141,119154,119225,119141,119226,119141,119225,119141,119150,119226, 119141,119150,119225,119141,119151,119226,119141,119151,20029,20024,20033,131362, 20320,20411,20482,20602,20633,20687,13470,132666,20820,20836,20855,132380,13497,20839, 20877,132427,20887,20900,20172,20908,168415,20981,20995,13535,21051,21062,21106,21111, 13589,21253,21254,21321,21338,21363,21373,21375,133676,28784,21450,21471,133987,21483, 21489,21510,21662,21560,21576,21608,21666,21750,21776,21843,21859,21892,21931,21939, 21954,22294,22295,22097,22132,22766,22478,22516,22541,22411,22578,22577,22700,136420, 22770,22775,22790,22810,22818,22882,136872,136938,23020,23067,23079,23000,23142,14062, 14076,23304,23358,137672,23491,23512,23539,138008,23551,23558,24403,23586,14209,23648, 23744,23693,138724,23875,138726,23918,23915,23932,24033,24034,14383,24061,24104,24125, 24169,14434,139651,14460,24240,24243,24246,172946,24318,140081,33281,24354,14535, 144056,156122,24418,24427,14563,24474,24525,24535,24569,24705,14650,14620,141012, 24775,24904,24908,24954,25010,24996,25007,25054,25104,25115,25181,25265,25300,25424, 142092,25405,25340,25448,25475,25572,142321,25634,25541,25513,14894,25705,25726,25757, 25719,14956,25964,143370,26083,26360,26185,15129,15112,15076,20882,20885,26368,26268, 32941,17369,26401,26462,26451,144323,15177,26618,26501,26706,144493,26766,26655,26900, 26946,27043,27114,27304,145059,27355,15384,27425,145575,27476,15438,27506,27551,27579, 146061,138507,146170,27726,146620,27839,27853,27751,27926,27966,28009,28024,28037, 146718,27956,28207,28270,15667,28359,147153,28153,28526,147294,147342,28614,28729, 28699,15766,28746,28797,28791,28845,132389,28997,148067,29084,148395,29224,29264, 149000,29312,29333,149301,149524,29562,29579,16044,29605,16056,29767,29788,29829, 29898,16155,29988,150582,30014,150674,139679,30224,151457,151480,151620,16380,16392, 151795,151794,151833,151859,30494,30495,30603,16454,16534,152605,30798,16611,153126, 153242,153285,31211,16687,31306,31311,153980,154279,31470,16898,154539,31686,31689, 16935,154752,31954,17056,31976,31971,32000,155526,32099,17153,32199,32258,32325,17204, 156200,156231,17241,156377,32634,156478,32661,32762,156890,156963,32864,157096,32880, 144223,17365,32946,33027,17419,33086,23221,157607,157621,144275,144284,33284,36766, 17515,33425,33419,33437,21171,33457,33459,33469,33510,158524,33565,33635,33709,33571, 33725,33767,33619,33738,33740,33756,158774,159083,158933,17707,34033,34035,34070, 160714,34148,159532,17757,17761,159665,159954,17771,34384,34407,34409,34473,34440, 34574,34530,34600,34667,34694,17879,34785,34817,17913,34912,34915,161383,35031,35038, 17973,35066,13499,161966,162150,18110,18119,35488,35925,162984,36011,36033,36123, 36215,163631,133124,36299,36284,36336,133342,36564,165330,165357,37012,37105,37137, 165678,37147,37432,37591,37592,37500,37881,37909,166906,38283,18837,38327,167287, 18918,38595,23986,38691,168261,168474,19054,19062,38880,168970,19122,169110,38953, 169398,39138,19251,39209,39335,39362,39422,19406,170800,40000,40189,19662,19693,40295, 172238,19704,172293,172558,172689,40635,19798,40697,40702,40709,40719,40726,40763, 173568); // PUCUUnicodeUpperCaseDeltaArray: 30208 bytes, 42 blocks with 128 items per 4 bytes and 8704 indices per 4 bytes const PUCUUnicodeUpperCaseDeltaArrayBlockBits=7; PUCUUnicodeUpperCaseDeltaArrayBlockMask=127; PUCUUnicodeUpperCaseDeltaArrayBlockSize=128; PUCUUnicodeUpperCaseDeltaArrayBlockCount=42; PUCUUnicodeUpperCaseDeltaArrayBlockData:array[0..41,0..127] of longint=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,-32,-32,-32,-32,-32,-32,-32,121), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-232,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,-300), (195,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,0,97,0,0,0,-1,163,0,0,0,130,0,0,-1, 0,-1,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,56,0,0,0,0,0,-1, -2,0,-1,-2,0,-1,-2,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-79,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1,-2,0,-1,0,0,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,-1,0,0,10815,10815, 0,-1,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,10783,10780,10782,-210,-206,0,-205,-205,0,-202, 0,-203,42319,0,0,0,-205,42315,0,-207,0,42280,42308,0,-209,-211,42308,10743,42305, 0,0,-211,0,10749,-213,0,0,-214,0,0,0,0,0,0,0,10727,0,0), (-218,0,42307,-218,0,0,0,42282,-218,-69,-217,-217,-71,0,0,0,0,0,-219,0,0,0,0,0,0, 0,0,0,0,42261,42258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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,0,-1,0,0,0,-1, 0,0,0,130,130,130,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-38,-37,-37,-37,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-31,-32,-32,-32,-32,-32,-32,-32,-32,-32,-64,-63,-63,0,-62,-57,0,0,0,-47, -54,-8,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-86,-80,7,-116, 0,-96,0,0,-1,0,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-80,-80,-80,-80,-80,-80, -80,-80,-80,-80,-80,-80,-80,-80,-80,-80,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-15,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48), (-48,-48,-48,-48,-48,-48,-48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3008, 3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008, 3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008,3008, 3008,3008,3008,3008,3008,3008,3008,3008,0,0,3008,3008,3008), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-8, -8,-8,-8,-8,-8,0,0), (-6254,-6253,-6244,-6242,-6242,-6243,-6236,-6181,35266,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35332, 0,0,0,3814,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,35384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,-59,0,0,0,0,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8, 0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0, 8,0,8,0,8,0,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,74,74,86,86,86,86,100, 100,128,128,112,112,126,126,0,0), (8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8, 0,0,0,0,0,0,0,0,8,8,0,9,0,0,0,0,0,0,0,0,0,0,-7205,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0, 0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,0,7,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-28,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16,-16,-16,-16,-16, -16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16), (0,0,0,0,-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,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-26, -26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26, -26,-26,-26,-26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,0,-1,0,0,0,-10795,-10792,0,-1,0,-1,0,-1,0, 0,0,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0), (-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264, -7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264, -7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,0,-7264,0,0,0,0,0,-7264, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,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,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,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,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,-1), (0,-1,0,-1,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,-1,48,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, 0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-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,0,0,0,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,-928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864), (-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,0,0,0, 0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-39,-39,-39,-39,-39,-39,-39,-39,-39, -39,-39,0,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,0,-39,-39,-39, -39,-39,-39,-39,0,-39,-39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-64,-64,-64,-64,-64,-64,-64,-64,-64, -64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64, -64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-34,-34,-34, -34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34, -34,-34,-34,-34,-34,-34,-34,-34,-34,-34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeUpperCaseDeltaArrayIndex: 592 bytes, 10 blocks with 32 items per 1 bytes and 272 indices per 1 bytes const PUCUUnicodeUpperCaseDeltaArrayIndexBlockBits=5; PUCUUnicodeUpperCaseDeltaArrayIndexBlockMask=31; PUCUUnicodeUpperCaseDeltaArrayIndexBlockSize=32; PUCUUnicodeUpperCaseDeltaArrayIndexBlockCount=10; PUCUUnicodeUpperCaseDeltaArrayIndexBlockData:array[0..9,0..31] of byte=( (0,1,2,3,4,5,6,7,8,9,10,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12), (12,13,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,15,16, 17,18,19,20,21), (12,12,22,23,12,12,12,12,12,24,12,12,12,12,12,12,12,12,12,12,12,12,12,12,25,26,27, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,28,29,30,31,12,12,12,12,12,12,32,33,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,34,12), (12,12,12,12,12,12,12,12,35,36,12,37,12,12,12,12,12,12,12,12,12,12,12,12,12,38,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,12,12,12,12,12,12,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,40,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,41,12,12,12,12,12,12,12,12, 12,12,12,12,12) ); PUCUUnicodeUpperCaseDeltaArrayIndexIndexCount=10; PUCUUnicodeUpperCaseDeltaArrayIndexIndexData:array[0..271] of byte=( 0,1,2,3,3,3,3,3,3,3,4,3,3,3,3,5,6,7,3,3,3,3,8,3,3,3,3,3,3,3,9,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 ); // PUCUUnicodeLowerCaseDeltaArray: 27136 bytes, 36 blocks with 128 items per 4 bytes and 8704 indices per 4 bytes const PUCUUnicodeLowerCaseDeltaArrayBlockBits=7; PUCUUnicodeLowerCaseDeltaArrayBlockMask=127; PUCUUnicodeLowerCaseDeltaArrayBlockSize=128; PUCUUnicodeLowerCaseDeltaArrayBlockCount=36; PUCUUnicodeLowerCaseDeltaArrayBlockData:array[0..35,0..127] of longint=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,0,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,-199,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, -121,1,0,1,0,1,0,0), (0,210,1,0,1,0,206,1,0,205,205,1,0,0,79,202,203,1,0,205,207,0,211,209,1,0,0,0,211, 213,0,214,1,0,1,0,1,0,218,1,0,218,0,0,1,0,218,1,0,217,217,1,0,1,0,219,1,0,0,0,1,0, 0,0,0,0,0,0,2,1,0,2,1,0,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,0,2,1,0,1,0,-97,-56,1,0,1,0,1,0,1,0), (1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,-130,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,10795,1,0,-163,10792,0,0,1,0,-195,69,71,1,0, 1,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,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,0,1,0,0,0,1,0,0,0, 0,0,0,0,0,116), (0,0,0,0,0,0,38,0,37,37,37,0,64,0,63,63,0,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,0,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,0,0,0,0,-60,0,0,1,0,-7,1,0,0,-130,-130,-130), (80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0), (1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,15,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0), (1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7264,7264,7264,7264, 7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264, 7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264,7264, 0,7264,0,0,0,0,0,7264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864,38864, 38864,38864,38864,38864,38864,38864,38864,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008, -3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008, -3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008,-3008, -3008,-3008,-3008,-3008,-3008,-3008,-3008,0,0,-3008,-3008,-3008,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0), (1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,-7615,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0), (0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,0,0,0, 0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0, 0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,0,0,0,-8,0,-8,0,-8,0,-8,0,0,0,0,0,0, 0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8, 0,0,0,0,0,0,0,0,-8,-8,-8,-8,-8,-8,-8,-8,0,0,0,0,0,0,0,0,-8,-8,-74,-74,-9,0,0,0,0, 0,0,0,0,0,0,0,-86,-86,-86,-86,-9,0,0,0,0,0,0,0,0,0,0,0,-8,-8,-100,-100,0,0,0,0,0, 0,0,0,0,0,0,0,-8,-8,-112,-112,-7,0,0,0,0,0,0,0,0,0,0,0,-128,-128,-126,-126,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7517, 0,0,0,-8383,-8262,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26, 26,26,26,26,26,26,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0, -10743,-3814,-10727,0,0,1,0,1,0,1,0,-10780,-10749,-10783,-10782,0,1,0,0,1,0,0,0,0, 0,0,0,0,-10815,-10815), (1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 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,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,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,0,1,0,1,0, 1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1, 0,1,0,-35332,1,0), (1,0,1,0,1,0,1,0,0,0,0,1,0,-42280,0,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0, 1,0,1,0,-42308,-42319,-42315,-42305,-42308,0,-42258,-42282,-42261,928,1,0,1,0,1,0, 1,0,1,0,1,0,1,0,1,0,-48,-42307,-35384,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40, 40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,39,39,39,39,39,39, 39,39,39,39,0,39,39,39,39), (39,39,39,39,39,39,39,39,39,39,39,0,39,39,39,39,39,39,39,0,39,39,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeLowerCaseDeltaArrayIndex: 592 bytes, 10 blocks with 32 items per 1 bytes and 272 indices per 1 bytes const PUCUUnicodeLowerCaseDeltaArrayIndexBlockBits=5; PUCUUnicodeLowerCaseDeltaArrayIndexBlockMask=31; PUCUUnicodeLowerCaseDeltaArrayIndexBlockSize=32; PUCUUnicodeLowerCaseDeltaArrayIndexBlockCount=10; PUCUUnicodeLowerCaseDeltaArrayIndexBlockData:array[0..9,0..31] of byte=( (0,1,2,3,4,5,6,7,8,9,10,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5), (5,11,5,5,5,5,5,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,13,5,5,14,15,16,17), (5,5,18,19,5,5,5,5,5,20,5,5,5,5,5,5,5,5,5,5,5,5,5,5,21,22,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,5,5,5,5,5,5,5,5,23,24,25,26,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,5,5,5,5,27,5), (5,5,5,5,5,5,5,5,28,29,30,31,5,5,5,5,5,5,5,5,5,5,5,5,5,32,5,5,5,5,5,5), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,33,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,34,5,5,5), (5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,35,5,5,5,5,5,5,5,5,5,5,5,5,5) ); PUCUUnicodeLowerCaseDeltaArrayIndexIndexCount=10; PUCUUnicodeLowerCaseDeltaArrayIndexIndexData:array[0..271] of byte=( 0,1,2,3,3,3,3,3,3,3,4,3,3,3,3,5,6,7,3,3,3,3,8,3,3,3,3,3,3,3,9,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 ); // PUCUUnicodeTitleCaseDeltaArray: 29696 bytes, 41 blocks with 128 items per 4 bytes and 8704 indices per 4 bytes const PUCUUnicodeTitleCaseDeltaArrayBlockBits=7; PUCUUnicodeTitleCaseDeltaArrayBlockMask=127; PUCUUnicodeTitleCaseDeltaArrayBlockSize=128; PUCUUnicodeTitleCaseDeltaArrayBlockCount=41; PUCUUnicodeTitleCaseDeltaArrayBlockData:array[0..40,0..127] of longint=( (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,743,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,-32,-32,-32,-32,-32,-32,-32,121), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-232,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,-1,-300), (195,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,0,97,0,0,0,-1,163,0,0,0,130,0,0,-1, 0,-1,0,-1,0,0,-1,0,0,0,0,-1,0,0,-1,0,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,56,0,0,0,0,1,0, -1,1,0,-1,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-79,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,-1,0,0,10815,10815, 0,-1,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,10783,10780,10782,-210,-206,0,-205,-205,0,-202, 0,-203,42319,0,0,0,-205,42315,0,-207,0,42280,42308,0,-209,-211,42308,10743,42305, 0,0,-211,0,10749,-213,0,0,-214,0,0,0,0,0,0,0,10727,0,0), (-218,0,42307,-218,0,0,0,42282,-218,-69,-217,-217,-71,0,0,0,0,0,-219,0,0,0,0,0,0, 0,0,0,0,42261,42258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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,0,-1,0,0,0,-1, 0,0,0,130,130,130,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,-38,-37,-37,-37,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-31,-32,-32,-32,-32,-32,-32,-32,-32,-32,-64,-63,-63,0,-62,-57,0,0,0,-47, -54,-8,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-86,-80,7,-116, 0,-96,0,0,-1,0,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-80,-80,-80,-80,-80,-80, -80,-80,-80,-80,-80,-80,-80,-80,-80,-80,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,-15,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48), (-48,-48,-48,-48,-48,-48,-48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-8, -8,-8,-8,-8,-8,0,0), (-6254,-6253,-6244,-6242,-6242,-6243,-6236,-6181,35266,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35332, 0,0,0,3814,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,35384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,-59,0,0,0,0,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1), (8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8, 0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0, 8,0,8,0,8,0,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,74,74,86,86,86,86,100, 100,128,128,112,112,126,126,0,0), (8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8, 0,0,0,0,0,0,0,0,8,8,0,9,0,0,0,0,0,0,0,0,0,0,-7205,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0, 0,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,0,7,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-28,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-16,-16,-16,-16,-16, -16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16), (0,0,0,0,-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,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-26, -26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26, -26,-26,-26,-26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48, -48,-48,-48,-48,-48,-48,-48,-48,-48,-48,0,-1,0,0,0,-10795,-10792,0,-1,0,-1,0,-1,0, 0,0,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0), (-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264, -7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264, -7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,-7264,0,-7264,0,0,0,0,0,-7264, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,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,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,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,0,-1,0, -1,0,-1,0,-1,0,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, -1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,-1), (0,-1,0,-1,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,-1,48,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1, 0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0, 0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-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,0,0,0,0,-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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,-928,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864), (-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864,-38864, -38864,-38864,-38864,-38864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40, -40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,0,0,0, 0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-39,-39,-39,-39,-39,-39,-39,-39,-39, -39,-39,0,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,0,-39,-39,-39, -39,-39,-39,-39,0,-39,-39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-64,-64,-64,-64,-64,-64,-64,-64,-64, -64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64, -64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64, 0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32, -32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32), (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-34,-34,-34, -34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34, -34,-34,-34,-34,-34,-34,-34,-34,-34,-34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) ); // PUCUUnicodeTitleCaseDeltaArrayIndex: 592 bytes, 10 blocks with 32 items per 1 bytes and 272 indices per 1 bytes const PUCUUnicodeTitleCaseDeltaArrayIndexBlockBits=5; PUCUUnicodeTitleCaseDeltaArrayIndexBlockMask=31; PUCUUnicodeTitleCaseDeltaArrayIndexBlockSize=32; PUCUUnicodeTitleCaseDeltaArrayIndexBlockCount=10; PUCUUnicodeTitleCaseDeltaArrayIndexBlockData:array[0..9,0..31] of byte=( (0,1,2,3,4,5,6,7,8,9,10,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12), (12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,15, 16,17,18,19,20), (12,12,21,22,12,12,12,12,12,23,12,12,12,12,12,12,12,12,12,12,12,12,12,12,24,25,26, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,27,28,29,30,12,12,12,12,12,12,31,32,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,33,12), (12,12,12,12,12,12,12,12,34,35,12,36,12,12,12,12,12,12,12,12,12,12,12,12,12,37,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,38,12,12,12,12,12,12,12,12,12, 12,12,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,39,12,12,12), (12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,40,12,12,12,12,12,12,12,12, 12,12,12,12,12) ); PUCUUnicodeTitleCaseDeltaArrayIndexIndexCount=10; PUCUUnicodeTitleCaseDeltaArrayIndexIndexData:array[0..271] of byte=( 0,1,2,3,3,3,3,3,3,3,4,3,3,3,3,5,6,7,3,3,3,3,8,3,3,3,3,3,3,3,9,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 ); const PUCUucrWORDS=0; PUCUucrDIGITS=1; PUCUucrWHITESPACES=2; PUCUucrLAST=PUCUucrWHITESPACES; type PPUCUUnicodeCharRange=^TPUCUUnicodeCharRange; TPUCUUnicodeCharRange=array[0..1] of longword; PPUCUUnicodeCharRanges=^TPUCUUnicodeCharRanges; TPUCUUnicodeCharRanges=array[0..0] of TPUCUUnicodeCharRange; const PUCUUnicodeCharRangeClasses0:array[0..752] of TPUCUUnicodeCharRange=( (48,57), (65,90), (95,95), (97,122), (170,170), (178,179), (181,181), (185,186), (188,190), (192,214), (216,246), (248,705), (710,721), (736,740), (748,748), (750,750), (880,884), (886,887), (890,893), (895,895), (902,902), (904,906), (908,908), (910,929), (931,1013), (1015,1153), (1162,1327), (1329,1366), (1369,1369), (1376,1416), (1488,1514), (1519,1522), (1568,1610), (1632,1641), (1646,1647), (1649,1747), (1749,1749), (1765,1766), (1774,1788), (1791,1791), (1808,1808), (1810,1839), (1869,1957), (1969,1969), (1984,2026), (2036,2037), (2042,2042), (2048,2069), (2074,2074), (2084,2084), (2088,2088), (2112,2136), (2144,2154), (2160,2183), (2185,2190), (2208,2249), (2308,2361), (2365,2365), (2384,2384), (2392,2401), (2406,2415), (2417,2432), (2437,2444), (2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489), (2493,2493), (2510,2510), (2524,2525), (2527,2529), (2534,2545), (2548,2553), (2556,2556), (2565,2570), (2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614), (2616,2617), (2649,2652), (2654,2654), (2662,2671), (2674,2676), (2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739), (2741,2745), (2749,2749), (2768,2768), (2784,2785), (2790,2799), (2809,2809), (2821,2828), (2831,2832), (2835,2856), (2858,2864), (2866,2867), (2869,2873), (2877,2877), (2908,2909), (2911,2913), (2918,2927), (2929,2935), (2947,2947), (2949,2954), (2958,2960), (2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986), (2990,3001), (3024,3024), (3046,3058), (3077,3084), (3086,3088), (3090,3112), (3114,3129), (3133,3133), (3160,3162), (3165,3165), (3168,3169), (3174,3183), (3192,3198), (3200,3200), (3205,3212), (3214,3216), (3218,3240), (3242,3251), (3253,3257), (3261,3261), (3293,3294), (3296,3297), (3302,3311), (3313,3314), (3332,3340), (3342,3344), (3346,3386), (3389,3389), (3406,3406), (3412,3414), (3416,3425), (3430,3448), (3450,3455), (3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526), (3558,3567), (3585,3632), (3634,3635), (3648,3654), (3664,3673), (3713,3714), (3716,3716), (3718,3722), (3724,3747), (3749,3749), (3751,3760), (3762,3763), (3773,3773), (3776,3780), (3782,3782), (3792,3801), (3804,3807), (3840,3840), (3872,3891), (3904,3911), (3913,3948), (3976,3980), (4096,4138), (4159,4169), (4176,4181), (4186,4189), (4193,4193), (4197,4198), (4206,4208), (4213,4225), (4238,4238), (4240,4249), (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4348,4680), (4682,4685), (4688,4694), (4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784), (4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822), (4824,4880), (4882,4885), (4888,4954), (4969,4988), (4992,5007), (5024,5109), (5112,5117), (5121,5740), (5743,5759), (5761,5786), (5792,5866), (5870,5880), (5888,5905), (5919,5937), (5952,5969), (5984,5996), (5998,6000), (6016,6067), (6103,6103), (6108,6108), (6112,6121), (6128,6137), (6160,6169), (6176,6264), (6272,6276), (6279,6312), (6314,6314), (6320,6389), (6400,6430), (6470,6509), (6512,6516), (6528,6571), (6576,6601), (6608,6618), (6656,6678), (6688,6740), (6784,6793), (6800,6809), (6823,6823), (6917,6963), (6981,6988), (6992,7001), (7043,7072), (7086,7141), (7168,7203), (7232,7241), (7245,7293), (7296,7304), (7312,7354), (7357,7359), (7401,7404), (7406,7411), (7413,7414), (7418,7418), (7424,7615), (7680,7957), (7960,7965), (7968,8005), (8008,8013), (8016,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8116), (8118,8124), (8126,8126), (8130,8132), (8134,8140), (8144,8147), (8150,8155), (8160,8172), (8178,8180), (8182,8188), (8255,8256), (8276,8276), (8304,8305), (8308,8313), (8319,8329), (8336,8348), (8450,8450), (8455,8455), (8458,8467), (8469,8469), (8473,8477), (8484,8484), (8486,8486), (8488,8488), (8490,8493), (8495,8505), (8508,8511), (8517,8521), (8526,8526), (8528,8585), (9312,9371), (9450,9471), (10102,10131), (11264,11492), (11499,11502), (11506,11507), (11517,11517), (11520,11557), (11559,11559), (11565,11565), (11568,11623), (11631,11631), (11648,11670), (11680,11686), (11688,11694), (11696,11702), (11704,11710), (11712,11718), (11720,11726), (11728,11734), (11736,11742), (11823,11823), (12293,12295), (12321,12329), (12337,12341), (12344,12348), (12353,12438), (12445,12447), (12449,12538), (12540,12543), (12549,12591), (12593,12686), (12690,12693), (12704,12735), (12784,12799), (12832,12841), (12872,12879), (12881,12895), (12928,12937), (12977,12991), (13312,19903), (19968,42124), (42192,42237), (42240,42508), (42512,42539), (42560,42606), (42623,42653), (42656,42735), (42775,42783), (42786,42888), (42891,42954), (42960,42961), (42963,42963), (42965,42969), (42994,43009), (43011,43013), (43015,43018), (43020,43042), (43056,43061), (43072,43123), (43138,43187), (43216,43225), (43250,43255), (43259,43259), (43261,43262), (43264,43301), (43312,43334), (43360,43388), (43396,43442), (43471,43481), (43488,43492), (43494,43518), (43520,43560), (43584,43586), (43588,43595), (43600,43609), (43616,43638), (43642,43642), (43646,43695), (43697,43697), (43701,43702), (43705,43709), (43712,43712), (43714,43714), (43739,43741), (43744,43754), (43762,43764), (43777,43782), (43785,43790), (43793,43798), (43808,43814), (43816,43822), (43824,43866), (43868,43881), (43888,44002), (44016,44025), (44032,55203), (55216,55238), (55243,55291), (63744,64109), (64112,64217), (64256,64262), (64275,64279), (64285,64285), (64287,64296), (64298,64310), (64312,64316), (64318,64318), (64320,64321), (64323,64324), (64326,64433), (64467,64829), (64848,64911), (64914,64967), (65008,65019), (65075,65076), (65101,65103), (65136,65140), (65142,65276), (65296,65305), (65313,65338), (65343,65343), (65345,65370), (65382,65470), (65474,65479), (65482,65487), (65490,65495), (65498,65500), (65536,65547), (65549,65574), (65576,65594), (65596,65597), (65599,65613), (65616,65629), (65664,65786), (65799,65843), (65856,65912), (65930,65931), (66176,66204), (66208,66256), (66273,66299), (66304,66339), (66349,66378), (66384,66421), (66432,66461), (66464,66499), (66504,66511), (66513,66517), (66560,66717), (66720,66729), (66736,66771), (66776,66811), (66816,66855), (66864,66915), (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004), (67072,67382), (67392,67413), (67424,67431), (67456,67461), (67463,67504), (67506,67514), (67584,67589), (67592,67592), (67594,67637), (67639,67640), (67644,67644), (67647,67669), (67672,67702), (67705,67742), (67751,67759), (67808,67826), (67828,67829), (67835,67867), (67872,67897), (67968,68023), (68028,68047), (68050,68096), (68112,68115), (68117,68119), (68121,68149), (68160,68168), (68192,68222), (68224,68255), (68288,68295), (68297,68324), (68331,68335), (68352,68405), (68416,68437), (68440,68466), (68472,68497), (68521,68527), (68608,68680), (68736,68786), (68800,68850), (68858,68899), (68912,68921), (69216,69246), (69248,69289), (69296,69297), (69376,69415), (69424,69445), (69457,69460), (69488,69505), (69552,69579), (69600,69622), (69635,69687), (69714,69743), (69745,69746), (69749,69749), (69763,69807), (69840,69864), (69872,69881), (69891,69926), (69942,69951), (69956,69956), (69959,69959), (69968,70002), (70006,70006), (70019,70066), (70081,70084), (70096,70106), (70108,70108), (70113,70132), (70144,70161), (70163,70187), (70207,70208), (70272,70278), (70280,70280), (70282,70285), (70287,70301), (70303,70312), (70320,70366), (70384,70393), (70405,70412), (70415,70416), (70419,70440), (70442,70448), (70450,70451), (70453,70457), (70461,70461), (70480,70480), (70493,70497), (70656,70708), (70727,70730), (70736,70745), (70751,70753), (70784,70831), (70852,70853), (70855,70855), (70864,70873), (71040,71086), (71128,71131), (71168,71215), (71236,71236), (71248,71257), (71296,71338), (71352,71352), (71360,71369), (71424,71450), (71472,71483), (71488,71494), (71680,71723), (71840,71922), (71935,71942), (71945,71945), (71948,71955), (71957,71958), (71960,71983), (71999,71999), (72001,72001), (72016,72025), (72096,72103), (72106,72144), (72161,72161), (72163,72163), (72192,72192), (72203,72242), (72250,72250), (72272,72272), (72284,72329), (72349,72349), (72368,72440), (72704,72712), (72714,72750), (72768,72768), (72784,72812), (72818,72847), (72960,72966), (72968,72969), (72971,73008), (73030,73030), (73040,73049), (73056,73061), (73063,73064), (73066,73097), (73112,73112), (73120,73129), (73440,73458), (73474,73474), (73476,73488), (73490,73523), (73552,73561), (73648,73648), (73664,73684), (73728,74649), (74752,74862), (74880,75075), (77712,77808), (77824,78895), (78913,78918), (82944,83526), (92160,92728), (92736,92766), (92768,92777), (92784,92862), (92864,92873), (92880,92909), (92928,92975), (92992,92995), (93008,93017), (93019,93025), (93027,93047), (93053,93071), (93760,93846), (93952,94026), (94032,94032), (94099,94111), (94176,94177), (94179,94179), (94208,100343), (100352,101589), (101632,101640), (110576,110579), (110581,110587), (110589,110590), (110592,110882), (110898,110898), (110928,110930), (110933,110933), (110948,110951), (110960,111355), (113664,113770), (113776,113788), (113792,113800), (113808,113817), (119488,119507), (119520,119539), (119648,119672), (119808,119892), (119894,119964), (119966,119967), (119970,119970), (119973,119974), (119977,119980), (119982,119993), (119995,119995), (119997,120003), (120005,120069), (120071,120074), (120077,120084), (120086,120092), (120094,120121), (120123,120126), (120128,120132), (120134,120134), (120138,120144), (120146,120485), (120488,120512), (120514,120538), (120540,120570), (120572,120596), (120598,120628), (120630,120654), (120656,120686), (120688,120712), (120714,120744), (120746,120770), (120772,120779), (120782,120831), (122624,122654), (122661,122666), (122928,122989), (123136,123180), (123191,123197), (123200,123209), (123214,123214), (123536,123565), (123584,123627), (123632,123641), (124112,124139), (124144,124153), (124896,124902), (124904,124907), (124909,124910), (124912,124926), (124928,125124), (125127,125135), (125184,125251), (125259,125259), (125264,125273), (126065,126123), (126125,126127), (126129,126132), (126209,126253), (126255,126269), (126464,126467), (126469,126495), (126497,126498), (126500,126500), (126503,126503), (126505,126514), (126516,126519), (126521,126521), (126523,126523), (126530,126530), (126535,126535), (126537,126537), (126539,126539), (126541,126543), (126545,126546), (126548,126548), (126551,126551), (126553,126553), (126555,126555), (126557,126557), (126559,126559), (126561,126562), (126564,126564), (126567,126570), (126572,126578), (126580,126583), (126585,126588), (126590,126590), (126592,126601), (126603,126619), (126625,126627), (126629,126633), (126635,126651), (127232,127244), (130032,130041), (131072,173791), (173824,177977), (177984,178205), (178208,183969), (183984,191456), (194560,195101), (196608,201546), (201552,205743) ); const PUCUUnicodeCharRangeClasses1:array[0..63] of TPUCUUnicodeCharRange=( (48,57), (1632,1641), (1776,1785), (1984,1993), (2406,2415), (2534,2543), (2662,2671), (2790,2799), (2918,2927), (3046,3055), (3174,3183), (3302,3311), (3430,3439), (3558,3567), (3664,3673), (3792,3801), (3872,3881), (4160,4169), (4240,4249), (6112,6121), (6160,6169), (6470,6479), (6608,6617), (6784,6793), (6800,6809), (6992,7001), (7088,7097), (7232,7241), (7248,7257), (42528,42537), (43216,43225), (43264,43273), (43472,43481), (43504,43513), (43600,43609), (44016,44025), (65296,65305), (66720,66729), (68912,68921), (69734,69743), (69872,69881), (69942,69951), (70096,70105), (70384,70393), (70736,70745), (70864,70873), (71248,71257), (71360,71369), (71472,71481), (71904,71913), (72016,72025), (72784,72793), (73040,73049), (73120,73129), (73552,73561), (92768,92777), (92864,92873), (93008,93017), (120782,120831), (123200,123209), (123632,123641), (124144,124153), (125264,125273), (130032,130041) ); const PUCUUnicodeCharRangeClasses2:array[0..11] of TPUCUUnicodeCharRange=( (9,13), (32,32), (160,160), (5760,5760), (6158,6158), (8192,8203), (8232,8233), (8239,8239), (8287,8287), (12288,12288), (65279,65279), (65534,65534) ); const PUCUUnicodeCharRangeClassesData:array[0..2] of pointer=( @PUCUUnicodeCharRangeClasses0, @PUCUUnicodeCharRangeClasses1, @PUCUUnicodeCharRangeClasses2 ); const PUCUUnicodeCharRangeClassesCounts:array[0..2] of longint=( 753, 64, 12 ); const PUCUCountUnicodeCategoryBlocks=29; const PUCUUnicodeCategoryBlocks0:array[0..706] of TPUCUUnicodeCharRange=( (888,889), (896,899), (907,907), (909,909), (930,930), (1328,1328), (1367,1368), (1419,1420), (1424,1424), (1480,1487), (1515,1518), (1525,1535), (1806,1806), (1867,1868), (1970,1983), (2043,2044), (2094,2095), (2111,2111), (2140,2141), (2143,2143), (2155,2159), (2191,2191), (2194,2199), (2436,2436), (2445,2446), (2449,2450), (2473,2473), (2481,2481), (2483,2485), (2490,2491), (2501,2502), (2505,2506), (2511,2518), (2520,2523), (2526,2526), (2532,2533), (2559,2560), (2564,2564), (2571,2574), (2577,2578), (2601,2601), (2609,2609), (2612,2612), (2615,2615), (2618,2619), (2621,2621), (2627,2630), (2633,2634), (2638,2640), (2642,2648), (2653,2653), (2655,2661), (2679,2688), (2692,2692), (2702,2702), (2706,2706), (2729,2729), (2737,2737), (2740,2740), (2746,2747), (2758,2758), (2762,2762), (2766,2767), (2769,2783), (2788,2789), (2802,2808), (2816,2816), (2820,2820), (2829,2830), (2833,2834), (2857,2857), (2865,2865), (2868,2868), (2874,2875), (2885,2886), (2889,2890), (2894,2900), (2904,2907), (2910,2910), (2916,2917), (2936,2945), (2948,2948), (2955,2957), (2961,2961), (2966,2968), (2971,2971), (2973,2973), (2976,2978), (2981,2983), (2987,2989), (3002,3005), (3011,3013), (3017,3017), (3022,3023), (3025,3030), (3032,3045), (3067,3071), (3085,3085), (3089,3089), (3113,3113), (3130,3131), (3141,3141), (3145,3145), (3150,3156), (3159,3159), (3163,3164), (3166,3167), (3172,3173), (3184,3190), (3213,3213), (3217,3217), (3241,3241), (3252,3252), (3258,3259), (3269,3269), (3273,3273), (3278,3284), (3287,3292), (3295,3295), (3300,3301), (3312,3312), (3316,3327), (3341,3341), (3345,3345), (3397,3397), (3401,3401), (3408,3411), (3428,3429), (3456,3456), (3460,3460), (3479,3481), (3506,3506), (3516,3516), (3518,3519), (3527,3529), (3531,3534), (3541,3541), (3543,3543), (3552,3557), (3568,3569), (3573,3584), (3643,3646), (3676,3712), (3715,3715), (3717,3717), (3723,3723), (3748,3748), (3750,3750), (3774,3775), (3781,3781), (3783,3783), (3791,3791), (3802,3803), (3808,3839), (3912,3912), (3949,3952), (3992,3992), (4029,4029), (4045,4045), (4059,4095), (4294,4294), (4296,4300), (4302,4303), (4681,4681), (4686,4687), (4695,4695), (4697,4697), (4702,4703), (4745,4745), (4750,4751), (4785,4785), (4790,4791), (4799,4799), (4801,4801), (4806,4807), (4823,4823), (4881,4881), (4886,4887), (4955,4956), (4989,4991), (5018,5023), (5110,5111), (5118,5119), (5789,5791), (5881,5887), (5910,5918), (5943,5951), (5972,5983), (5997,5997), (6001,6001), (6004,6015), (6110,6111), (6122,6127), (6138,6143), (6170,6175), (6265,6271), (6315,6319), (6390,6399), (6431,6431), (6444,6447), (6460,6463), (6465,6467), (6510,6511), (6517,6527), (6572,6575), (6602,6607), (6619,6621), (6684,6685), (6751,6751), (6781,6782), (6794,6799), (6810,6815), (6830,6831), (6863,6911), (6989,6991), (7039,7039), (7156,7163), (7224,7226), (7242,7244), (7305,7311), (7355,7356), (7368,7375), (7419,7423), (7958,7959), (7966,7967), (8006,8007), (8014,8015), (8024,8024), (8026,8026), (8028,8028), (8030,8030), (8062,8063), (8117,8117), (8133,8133), (8148,8149), (8156,8156), (8176,8177), (8181,8181), (8191,8191), (8293,8293), (8306,8307), (8335,8335), (8349,8351), (8385,8399), (8433,8447), (8588,8591), (9255,9279), (9291,9311), (11124,11125), (11158,11158), (11508,11512), (11558,11558), (11560,11564), (11566,11567), (11624,11630), (11633,11646), (11671,11679), (11687,11687), (11695,11695), (11703,11703), (11711,11711), (11719,11719), (11727,11727), (11735,11735), (11743,11743), (11870,11903), (11930,11930), (12020,12031), (12246,12271), (12284,12287), (12352,12352), (12439,12440), (12544,12548), (12592,12592), (12687,12687), (12772,12783), (12831,12831), (42125,42127), (42183,42191), (42540,42559), (42744,42751), (42955,42959), (42962,42962), (42964,42964), (42970,42993), (43053,43055), (43066,43071), (43128,43135), (43206,43213), (43226,43231), (43348,43358), (43389,43391), (43470,43470), (43482,43485), (43519,43519), (43575,43583), (43598,43599), (43610,43611), (43715,43738), (43767,43776), (43783,43784), (43791,43792), (43799,43807), (43815,43815), (43823,43823), (43884,43887), (44014,44015), (44026,44031), (55204,55215), (55239,55242), (55292,55295), (64110,64111), (64218,64255), (64263,64274), (64280,64284), (64311,64311), (64317,64317), (64319,64319), (64322,64322), (64325,64325), (64451,64466), (64912,64913), (64968,64974), (64976,65007), (65050,65055), (65107,65107), (65127,65127), (65132,65135), (65141,65141), (65277,65278), (65280,65280), (65471,65473), (65480,65481), (65488,65489), (65496,65497), (65501,65503), (65511,65511), (65519,65528), (65534,65535), (65548,65548), (65575,65575), (65595,65595), (65598,65598), (65614,65615), (65630,65663), (65787,65791), (65795,65798), (65844,65846), (65935,65935), (65949,65951), (65953,65999), (66046,66175), (66205,66207), (66257,66271), (66300,66303), (66340,66348), (66379,66383), (66427,66431), (66462,66462), (66500,66503), (66518,66559), (66718,66719), (66730,66735), (66772,66775), (66812,66815), (66856,66863), (66916,66926), (66939,66939), (66955,66955), (66963,66963), (66966,66966), (66978,66978), (66994,66994), (67002,67002), (67005,67071), (67383,67391), (67414,67423), (67432,67455), (67462,67462), (67505,67505), (67515,67583), (67590,67591), (67593,67593), (67638,67638), (67641,67643), (67645,67646), (67670,67670), (67743,67750), (67760,67807), (67827,67827), (67830,67834), (67868,67870), (67898,67902), (67904,67967), (68024,68027), (68048,68049), (68100,68100), (68103,68107), (68116,68116), (68120,68120), (68150,68151), (68155,68158), (68169,68175), (68185,68191), (68256,68287), (68327,68330), (68343,68351), (68406,68408), (68438,68439), (68467,68471), (68498,68504), (68509,68520), (68528,68607), (68681,68735), (68787,68799), (68851,68857), (68904,68911), (68922,69215), (69247,69247), (69290,69290), (69294,69295), (69298,69372), (69416,69423), (69466,69487), (69514,69551), (69580,69599), (69623,69631), (69710,69713), (69750,69758), (69827,69836), (69838,69839), (69865,69871), (69882,69887), (69941,69941), (69960,69967), (70007,70015), (70112,70112), (70133,70143), (70162,70162), (70210,70271), (70279,70279), (70281,70281), (70286,70286), (70302,70302), (70314,70319), (70379,70383), (70394,70399), (70404,70404), (70413,70414), (70417,70418), (70441,70441), (70449,70449), (70452,70452), (70458,70458), (70469,70470), (70473,70474), (70478,70479), (70481,70486), (70488,70492), (70500,70501), (70509,70511), (70517,70655), (70748,70748), (70754,70783), (70856,70863), (70874,71039), (71094,71095), (71134,71167), (71237,71247), (71258,71263), (71277,71295), (71354,71359), (71370,71423), (71451,71452), (71468,71471), (71495,71679), (71740,71839), (71923,71934), (71943,71944), (71946,71947), (71956,71956), (71959,71959), (71990,71990), (71993,71994), (72007,72015), (72026,72095), (72104,72105), (72152,72153), (72165,72191), (72264,72271), (72355,72367), (72441,72447), (72458,72703), (72713,72713), (72759,72759), (72774,72783), (72813,72815), (72848,72849), (72872,72872), (72887,72959), (72967,72967), (72970,72970), (73015,73017), (73019,73019), (73022,73022), (73032,73039), (73050,73055), (73062,73062), (73065,73065), (73103,73103), (73106,73106), (73113,73119), (73130,73439), (73465,73471), (73489,73489), (73531,73533), (73562,73647), (73649,73663), (73714,73726), (74650,74751), (74863,74863), (74869,74879), (75076,77711), (77811,77823), (78934,82943), (83527,92159), (92729,92735), (92767,92767), (92778,92781), (92863,92863), (92874,92879), (92910,92911), (92918,92927), (92998,93007), (93018,93018), (93026,93026), (93048,93052), (93072,93759), (93851,93951), (94027,94030), (94088,94094), (94112,94175), (94181,94191), (94194,94207), (100344,100351), (101590,101631), (101641,110575), (110580,110580), (110588,110588), (110591,110591), (110883,110897), (110899,110927), (110931,110932), (110934,110947), (110952,110959), (111356,113663), (113771,113775), (113789,113791), (113801,113807), (113818,113819), (113828,118527), (118574,118575), (118599,118607), (118724,118783), (119030,119039), (119079,119080), (119275,119295), (119366,119487), (119508,119519), (119540,119551), (119639,119647), (119673,119807), (119893,119893), (119965,119965), (119968,119969), (119971,119972), (119975,119976), (119981,119981), (119994,119994), (119996,119996), (120004,120004), (120070,120070), (120075,120076), (120085,120085), (120093,120093), (120122,120122), (120127,120127), (120133,120133), (120135,120137), (120145,120145), (120486,120487), (120780,120781), (121484,121498), (121504,121504), (121520,122623), (122655,122660), (122667,122879), (122887,122887), (122905,122906), (122914,122914), (122917,122917), (122923,122927), (122990,123022), (123024,123135), (123181,123183), (123198,123199), (123210,123213), (123216,123535), (123567,123583), (123642,123646), (123648,124111), (124154,124895), (124903,124903), (124908,124908), (124911,124911), (124927,124927), (125125,125126), (125143,125183), (125260,125263), (125274,125277), (125280,126064), (126133,126208), (126270,126463), (126468,126468), (126496,126496), (126499,126499), (126501,126502), (126504,126504), (126515,126515), (126520,126520), (126522,126522), (126524,126529), (126531,126534), (126536,126536), (126538,126538), (126540,126540), (126544,126544), (126547,126547), (126549,126550), (126552,126552), (126554,126554), (126556,126556), (126558,126558), (126560,126560), (126563,126563), (126565,126566), (126571,126571), (126579,126579), (126584,126584), (126589,126589), (126591,126591), (126602,126602), (126620,126624), (126628,126628), (126634,126634), (126652,126703), (126706,126975), (127020,127023), (127124,127135), (127151,127152), (127168,127168), (127184,127184), (127222,127231), (127406,127461), (127491,127503), (127548,127551), (127561,127567), (127570,127583), (127590,127743), (128728,128731), (128749,128751), (128765,128767), (128887,128890), (128986,128991), (129004,129007), (129009,129023), (129036,129039), (129096,129103), (129114,129119), (129160,129167), (129198,129199), (129202,129279), (129620,129631), (129646,129647), (129661,129663), (129673,129679), (129726,129726), (129734,129741), (129756,129759), (129769,129775), (129785,129791), (129939,129939), (129995,130031), (130042,131071), (173792,173823), (177978,177983), (178206,178207), (183970,183983), (191457,194559), (195102,196607), (201547,201551), (205744,917504), (917506,917535), (917632,917759), (918000,983039), (1048574,1048575), (1114110,1114111) ); const PUCUUnicodeCategoryBlocks1:array[0..645] of TPUCUUnicodeCharRange=( (65,90), (192,214), (216,222), (256,256), (258,258), (260,260), (262,262), (264,264), (266,266), (268,268), (270,270), (272,272), (274,274), (276,276), (278,278), (280,280), (282,282), (284,284), (286,286), (288,288), (290,290), (292,292), (294,294), (296,296), (298,298), (300,300), (302,302), (304,304), (306,306), (308,308), (310,310), (313,313), (315,315), (317,317), (319,319), (321,321), (323,323), (325,325), (327,327), (330,330), (332,332), (334,334), (336,336), (338,338), (340,340), (342,342), (344,344), (346,346), (348,348), (350,350), (352,352), (354,354), (356,356), (358,358), (360,360), (362,362), (364,364), (366,366), (368,368), (370,370), (372,372), (374,374), (376,377), (379,379), (381,381), (385,386), (388,388), (390,391), (393,395), (398,401), (403,404), (406,408), (412,413), (415,416), (418,418), (420,420), (422,423), (425,425), (428,428), (430,431), (433,435), (437,437), (439,440), (444,444), (452,452), (455,455), (458,458), (461,461), (463,463), (465,465), (467,467), (469,469), (471,471), (473,473), (475,475), (478,478), (480,480), (482,482), (484,484), (486,486), (488,488), (490,490), (492,492), (494,494), (497,497), (500,500), (502,504), (506,506), (508,508), (510,510), (512,512), (514,514), (516,516), (518,518), (520,520), (522,522), (524,524), (526,526), (528,528), (530,530), (532,532), (534,534), (536,536), (538,538), (540,540), (542,542), (544,544), (546,546), (548,548), (550,550), (552,552), (554,554), (556,556), (558,558), (560,560), (562,562), (570,571), (573,574), (577,577), (579,582), (584,584), (586,586), (588,588), (590,590), (880,880), (882,882), (886,886), (895,895), (902,902), (904,906), (908,908), (910,911), (913,929), (931,939), (975,975), (978,980), (984,984), (986,986), (988,988), (990,990), (992,992), (994,994), (996,996), (998,998), (1000,1000), (1002,1002), (1004,1004), (1006,1006), (1012,1012), (1015,1015), (1017,1018), (1021,1071), (1120,1120), (1122,1122), (1124,1124), (1126,1126), (1128,1128), (1130,1130), (1132,1132), (1134,1134), (1136,1136), (1138,1138), (1140,1140), (1142,1142), (1144,1144), (1146,1146), (1148,1148), (1150,1150), (1152,1152), (1162,1162), (1164,1164), (1166,1166), (1168,1168), (1170,1170), (1172,1172), (1174,1174), (1176,1176), (1178,1178), (1180,1180), (1182,1182), (1184,1184), (1186,1186), (1188,1188), (1190,1190), (1192,1192), (1194,1194), (1196,1196), (1198,1198), (1200,1200), (1202,1202), (1204,1204), (1206,1206), (1208,1208), (1210,1210), (1212,1212), (1214,1214), (1216,1217), (1219,1219), (1221,1221), (1223,1223), (1225,1225), (1227,1227), (1229,1229), (1232,1232), (1234,1234), (1236,1236), (1238,1238), (1240,1240), (1242,1242), (1244,1244), (1246,1246), (1248,1248), (1250,1250), (1252,1252), (1254,1254), (1256,1256), (1258,1258), (1260,1260), (1262,1262), (1264,1264), (1266,1266), (1268,1268), (1270,1270), (1272,1272), (1274,1274), (1276,1276), (1278,1278), (1280,1280), (1282,1282), (1284,1284), (1286,1286), (1288,1288), (1290,1290), (1292,1292), (1294,1294), (1296,1296), (1298,1298), (1300,1300), (1302,1302), (1304,1304), (1306,1306), (1308,1308), (1310,1310), (1312,1312), (1314,1314), (1316,1316), (1318,1318), (1320,1320), (1322,1322), (1324,1324), (1326,1326), (1329,1366), (4256,4293), (4295,4295), (4301,4301), (5024,5109), (7312,7354), (7357,7359), (7680,7680), (7682,7682), (7684,7684), (7686,7686), (7688,7688), (7690,7690), (7692,7692), (7694,7694), (7696,7696), (7698,7698), (7700,7700), (7702,7702), (7704,7704), (7706,7706), (7708,7708), (7710,7710), (7712,7712), (7714,7714), (7716,7716), (7718,7718), (7720,7720), (7722,7722), (7724,7724), (7726,7726), (7728,7728), (7730,7730), (7732,7732), (7734,7734), (7736,7736), (7738,7738), (7740,7740), (7742,7742), (7744,7744), (7746,7746), (7748,7748), (7750,7750), (7752,7752), (7754,7754), (7756,7756), (7758,7758), (7760,7760), (7762,7762), (7764,7764), (7766,7766), (7768,7768), (7770,7770), (7772,7772), (7774,7774), (7776,7776), (7778,7778), (7780,7780), (7782,7782), (7784,7784), (7786,7786), (7788,7788), (7790,7790), (7792,7792), (7794,7794), (7796,7796), (7798,7798), (7800,7800), (7802,7802), (7804,7804), (7806,7806), (7808,7808), (7810,7810), (7812,7812), (7814,7814), (7816,7816), (7818,7818), (7820,7820), (7822,7822), (7824,7824), (7826,7826), (7828,7828), (7838,7838), (7840,7840), (7842,7842), (7844,7844), (7846,7846), (7848,7848), (7850,7850), (7852,7852), (7854,7854), (7856,7856), (7858,7858), (7860,7860), (7862,7862), (7864,7864), (7866,7866), (7868,7868), (7870,7870), (7872,7872), (7874,7874), (7876,7876), (7878,7878), (7880,7880), (7882,7882), (7884,7884), (7886,7886), (7888,7888), (7890,7890), (7892,7892), (7894,7894), (7896,7896), (7898,7898), (7900,7900), (7902,7902), (7904,7904), (7906,7906), (7908,7908), (7910,7910), (7912,7912), (7914,7914), (7916,7916), (7918,7918), (7920,7920), (7922,7922), (7924,7924), (7926,7926), (7928,7928), (7930,7930), (7932,7932), (7934,7934), (7944,7951), (7960,7965), (7976,7983), (7992,7999), (8008,8013), (8025,8025), (8027,8027), (8029,8029), (8031,8031), (8040,8047), (8120,8123), (8136,8139), (8152,8155), (8168,8172), (8184,8187), (8450,8450), (8455,8455), (8459,8461), (8464,8466), (8469,8469), (8473,8477), (8484,8484), (8486,8486), (8488,8488), (8490,8493), (8496,8499), (8510,8511), (8517,8517), (8579,8579), (11264,11311), (11360,11360), (11362,11364), (11367,11367), (11369,11369), (11371,11371), (11373,11376), (11378,11378), (11381,11381), (11390,11392), (11394,11394), (11396,11396), (11398,11398), (11400,11400), (11402,11402), (11404,11404), (11406,11406), (11408,11408), (11410,11410), (11412,11412), (11414,11414), (11416,11416), (11418,11418), (11420,11420), (11422,11422), (11424,11424), (11426,11426), (11428,11428), (11430,11430), (11432,11432), (11434,11434), (11436,11436), (11438,11438), (11440,11440), (11442,11442), (11444,11444), (11446,11446), (11448,11448), (11450,11450), (11452,11452), (11454,11454), (11456,11456), (11458,11458), (11460,11460), (11462,11462), (11464,11464), (11466,11466), (11468,11468), (11470,11470), (11472,11472), (11474,11474), (11476,11476), (11478,11478), (11480,11480), (11482,11482), (11484,11484), (11486,11486), (11488,11488), (11490,11490), (11499,11499), (11501,11501), (11506,11506), (42560,42560), (42562,42562), (42564,42564), (42566,42566), (42568,42568), (42570,42570), (42572,42572), (42574,42574), (42576,42576), (42578,42578), (42580,42580), (42582,42582), (42584,42584), (42586,42586), (42588,42588), (42590,42590), (42592,42592), (42594,42594), (42596,42596), (42598,42598), (42600,42600), (42602,42602), (42604,42604), (42624,42624), (42626,42626), (42628,42628), (42630,42630), (42632,42632), (42634,42634), (42636,42636), (42638,42638), (42640,42640), (42642,42642), (42644,42644), (42646,42646), (42648,42648), (42650,42650), (42786,42786), (42788,42788), (42790,42790), (42792,42792), (42794,42794), (42796,42796), (42798,42798), (42802,42802), (42804,42804), (42806,42806), (42808,42808), (42810,42810), (42812,42812), (42814,42814), (42816,42816), (42818,42818), (42820,42820), (42822,42822), (42824,42824), (42826,42826), (42828,42828), (42830,42830), (42832,42832), (42834,42834), (42836,42836), (42838,42838), (42840,42840), (42842,42842), (42844,42844), (42846,42846), (42848,42848), (42850,42850), (42852,42852), (42854,42854), (42856,42856), (42858,42858), (42860,42860), (42862,42862), (42873,42873), (42875,42875), (42877,42878), (42880,42880), (42882,42882), (42884,42884), (42886,42886), (42891,42891), (42893,42893), (42896,42896), (42898,42898), (42902,42902), (42904,42904), (42906,42906), (42908,42908), (42910,42910), (42912,42912), (42914,42914), (42916,42916), (42918,42918), (42920,42920), (42922,42926), (42928,42932), (42934,42934), (42936,42936), (42938,42938), (42940,42940), (42942,42942), (42944,42944), (42946,42946), (42948,42951), (42953,42953), (42960,42960), (42966,42966), (42968,42968), (42997,42997), (65313,65338), (66560,66599), (66736,66771), (66928,66938), (66940,66954), (66956,66962), (66964,66965), (68736,68786), (71840,71871), (93760,93791), (119808,119833), (119860,119885), (119912,119937), (119964,119964), (119966,119967), (119970,119970), (119973,119974), (119977,119980), (119982,119989), (120016,120041), (120068,120069), (120071,120074), (120077,120084), (120086,120092), (120120,120121), (120123,120126), (120128,120132), (120134,120134), (120138,120144), (120172,120197), (120224,120249), (120276,120301), (120328,120353), (120380,120405), (120432,120457), (120488,120512), (120546,120570), (120604,120628), (120662,120686), (120720,120744), (120778,120778), (125184,125217) ); const PUCUUnicodeCategoryBlocks2:array[0..657] of TPUCUUnicodeCharRange=( (97,122), (181,181), (223,246), (248,255), (257,257), (259,259), (261,261), (263,263), (265,265), (267,267), (269,269), (271,271), (273,273), (275,275), (277,277), (279,279), (281,281), (283,283), (285,285), (287,287), (289,289), (291,291), (293,293), (295,295), (297,297), (299,299), (301,301), (303,303), (305,305), (307,307), (309,309), (311,312), (314,314), (316,316), (318,318), (320,320), (322,322), (324,324), (326,326), (328,329), (331,331), (333,333), (335,335), (337,337), (339,339), (341,341), (343,343), (345,345), (347,347), (349,349), (351,351), (353,353), (355,355), (357,357), (359,359), (361,361), (363,363), (365,365), (367,367), (369,369), (371,371), (373,373), (375,375), (378,378), (380,380), (382,384), (387,387), (389,389), (392,392), (396,397), (402,402), (405,405), (409,411), (414,414), (417,417), (419,419), (421,421), (424,424), (426,427), (429,429), (432,432), (436,436), (438,438), (441,442), (445,447), (454,454), (457,457), (460,460), (462,462), (464,464), (466,466), (468,468), (470,470), (472,472), (474,474), (476,477), (479,479), (481,481), (483,483), (485,485), (487,487), (489,489), (491,491), (493,493), (495,496), (499,499), (501,501), (505,505), (507,507), (509,509), (511,511), (513,513), (515,515), (517,517), (519,519), (521,521), (523,523), (525,525), (527,527), (529,529), (531,531), (533,533), (535,535), (537,537), (539,539), (541,541), (543,543), (545,545), (547,547), (549,549), (551,551), (553,553), (555,555), (557,557), (559,559), (561,561), (563,569), (572,572), (575,576), (578,578), (583,583), (585,585), (587,587), (589,589), (591,659), (661,687), (881,881), (883,883), (887,887), (891,893), (912,912), (940,974), (976,977), (981,983), (985,985), (987,987), (989,989), (991,991), (993,993), (995,995), (997,997), (999,999), (1001,1001), (1003,1003), (1005,1005), (1007,1011), (1013,1013), (1016,1016), (1019,1020), (1072,1119), (1121,1121), (1123,1123), (1125,1125), (1127,1127), (1129,1129), (1131,1131), (1133,1133), (1135,1135), (1137,1137), (1139,1139), (1141,1141), (1143,1143), (1145,1145), (1147,1147), (1149,1149), (1151,1151), (1153,1153), (1163,1163), (1165,1165), (1167,1167), (1169,1169), (1171,1171), (1173,1173), (1175,1175), (1177,1177), (1179,1179), (1181,1181), (1183,1183), (1185,1185), (1187,1187), (1189,1189), (1191,1191), (1193,1193), (1195,1195), (1197,1197), (1199,1199), (1201,1201), (1203,1203), (1205,1205), (1207,1207), (1209,1209), (1211,1211), (1213,1213), (1215,1215), (1218,1218), (1220,1220), (1222,1222), (1224,1224), (1226,1226), (1228,1228), (1230,1231), (1233,1233), (1235,1235), (1237,1237), (1239,1239), (1241,1241), (1243,1243), (1245,1245), (1247,1247), (1249,1249), (1251,1251), (1253,1253), (1255,1255), (1257,1257), (1259,1259), (1261,1261), (1263,1263), (1265,1265), (1267,1267), (1269,1269), (1271,1271), (1273,1273), (1275,1275), (1277,1277), (1279,1279), (1281,1281), (1283,1283), (1285,1285), (1287,1287), (1289,1289), (1291,1291), (1293,1293), (1295,1295), (1297,1297), (1299,1299), (1301,1301), (1303,1303), (1305,1305), (1307,1307), (1309,1309), (1311,1311), (1313,1313), (1315,1315), (1317,1317), (1319,1319), (1321,1321), (1323,1323), (1325,1325), (1327,1327), (1376,1416), (4304,4346), (4349,4351), (5112,5117), (7296,7304), (7424,7467), (7531,7543), (7545,7578), (7681,7681), (7683,7683), (7685,7685), (7687,7687), (7689,7689), (7691,7691), (7693,7693), (7695,7695), (7697,7697), (7699,7699), (7701,7701), (7703,7703), (7705,7705), (7707,7707), (7709,7709), (7711,7711), (7713,7713), (7715,7715), (7717,7717), (7719,7719), (7721,7721), (7723,7723), (7725,7725), (7727,7727), (7729,7729), (7731,7731), (7733,7733), (7735,7735), (7737,7737), (7739,7739), (7741,7741), (7743,7743), (7745,7745), (7747,7747), (7749,7749), (7751,7751), (7753,7753), (7755,7755), (7757,7757), (7759,7759), (7761,7761), (7763,7763), (7765,7765), (7767,7767), (7769,7769), (7771,7771), (7773,7773), (7775,7775), (7777,7777), (7779,7779), (7781,7781), (7783,7783), (7785,7785), (7787,7787), (7789,7789), (7791,7791), (7793,7793), (7795,7795), (7797,7797), (7799,7799), (7801,7801), (7803,7803), (7805,7805), (7807,7807), (7809,7809), (7811,7811), (7813,7813), (7815,7815), (7817,7817), (7819,7819), (7821,7821), (7823,7823), (7825,7825), (7827,7827), (7829,7837), (7839,7839), (7841,7841), (7843,7843), (7845,7845), (7847,7847), (7849,7849), (7851,7851), (7853,7853), (7855,7855), (7857,7857), (7859,7859), (7861,7861), (7863,7863), (7865,7865), (7867,7867), (7869,7869), (7871,7871), (7873,7873), (7875,7875), (7877,7877), (7879,7879), (7881,7881), (7883,7883), (7885,7885), (7887,7887), (7889,7889), (7891,7891), (7893,7893), (7895,7895), (7897,7897), (7899,7899), (7901,7901), (7903,7903), (7905,7905), (7907,7907), (7909,7909), (7911,7911), (7913,7913), (7915,7915), (7917,7917), (7919,7919), (7921,7921), (7923,7923), (7925,7925), (7927,7927), (7929,7929), (7931,7931), (7933,7933), (7935,7943), (7952,7957), (7968,7975), (7984,7991), (8000,8005), (8016,8023), (8032,8039), (8048,8061), (8064,8071), (8080,8087), (8096,8103), (8112,8116), (8118,8119), (8126,8126), (8130,8132), (8134,8135), (8144,8147), (8150,8151), (8160,8167), (8178,8180), (8182,8183), (8458,8458), (8462,8463), (8467,8467), (8495,8495), (8500,8500), (8505,8505), (8508,8509), (8518,8521), (8526,8526), (8580,8580), (11312,11359), (11361,11361), (11365,11366), (11368,11368), (11370,11370), (11372,11372), (11377,11377), (11379,11380), (11382,11387), (11393,11393), (11395,11395), (11397,11397), (11399,11399), (11401,11401), (11403,11403), (11405,11405), (11407,11407), (11409,11409), (11411,11411), (11413,11413), (11415,11415), (11417,11417), (11419,11419), (11421,11421), (11423,11423), (11425,11425), (11427,11427), (11429,11429), (11431,11431), (11433,11433), (11435,11435), (11437,11437), (11439,11439), (11441,11441), (11443,11443), (11445,11445), (11447,11447), (11449,11449), (11451,11451), (11453,11453), (11455,11455), (11457,11457), (11459,11459), (11461,11461), (11463,11463), (11465,11465), (11467,11467), (11469,11469), (11471,11471), (11473,11473), (11475,11475), (11477,11477), (11479,11479), (11481,11481), (11483,11483), (11485,11485), (11487,11487), (11489,11489), (11491,11492), (11500,11500), (11502,11502), (11507,11507), (11520,11557), (11559,11559), (11565,11565), (42561,42561), (42563,42563), (42565,42565), (42567,42567), (42569,42569), (42571,42571), (42573,42573), (42575,42575), (42577,42577), (42579,42579), (42581,42581), (42583,42583), (42585,42585), (42587,42587), (42589,42589), (42591,42591), (42593,42593), (42595,42595), (42597,42597), (42599,42599), (42601,42601), (42603,42603), (42605,42605), (42625,42625), (42627,42627), (42629,42629), (42631,42631), (42633,42633), (42635,42635), (42637,42637), (42639,42639), (42641,42641), (42643,42643), (42645,42645), (42647,42647), (42649,42649), (42651,42651), (42787,42787), (42789,42789), (42791,42791), (42793,42793), (42795,42795), (42797,42797), (42799,42801), (42803,42803), (42805,42805), (42807,42807), (42809,42809), (42811,42811), (42813,42813), (42815,42815), (42817,42817), (42819,42819), (42821,42821), (42823,42823), (42825,42825), (42827,42827), (42829,42829), (42831,42831), (42833,42833), (42835,42835), (42837,42837), (42839,42839), (42841,42841), (42843,42843), (42845,42845), (42847,42847), (42849,42849), (42851,42851), (42853,42853), (42855,42855), (42857,42857), (42859,42859), (42861,42861), (42863,42863), (42865,42872), (42874,42874), (42876,42876), (42879,42879), (42881,42881), (42883,42883), (42885,42885), (42887,42887), (42892,42892), (42894,42894), (42897,42897), (42899,42901), (42903,42903), (42905,42905), (42907,42907), (42909,42909), (42911,42911), (42913,42913), (42915,42915), (42917,42917), (42919,42919), (42921,42921), (42927,42927), (42933,42933), (42935,42935), (42937,42937), (42939,42939), (42941,42941), (42943,42943), (42945,42945), (42947,42947), (42952,42952), (42954,42954), (42961,42961), (42963,42963), (42965,42965), (42967,42967), (42969,42969), (42998,42998), (43002,43002), (43824,43866), (43872,43880), (43888,43967), (64256,64262), (64275,64279), (65345,65370), (66600,66639), (66776,66811), (66967,66977), (66979,66993), (66995,67001), (67003,67004), (68800,68850), (71872,71903), (93792,93823), (119834,119859), (119886,119892), (119894,119911), (119938,119963), (119990,119993), (119995,119995), (119997,120003), (120005,120015), (120042,120067), (120094,120119), (120146,120171), (120198,120223), (120250,120275), (120302,120327), (120354,120379), (120406,120431), (120458,120485), (120514,120538), (120540,120545), (120572,120596), (120598,120603), (120630,120654), (120656,120661), (120688,120712), (120714,120719), (120746,120770), (120772,120777), (120779,120779), (122624,122633), (122635,122654), (122661,122666), (125218,125251) ); const PUCUUnicodeCategoryBlocks3:array[0..9] of TPUCUUnicodeCharRange=( (453,453), (456,456), (459,459), (498,498), (8072,8079), (8088,8095), (8104,8111), (8124,8124), (8140,8140), (8188,8188) ); const PUCUUnicodeCategoryBlocks4:array[0..70] of TPUCUUnicodeCharRange=( (688,705), (710,721), (736,740), (748,748), (750,750), (884,884), (890,890), (1369,1369), (1600,1600), (1765,1766), (2036,2037), (2042,2042), (2074,2074), (2084,2084), (2088,2088), (2249,2249), (2417,2417), (3654,3654), (3782,3782), (4348,4348), (6103,6103), (6211,6211), (6823,6823), (7288,7293), (7468,7530), (7544,7544), (7579,7615), (8305,8305), (8319,8319), (8336,8348), (11388,11389), (11631,11631), (11823,11823), (12293,12293), (12337,12341), (12347,12347), (12445,12446), (12540,12542), (40981,40981), (42232,42237), (42508,42508), (42623,42623), (42652,42653), (42775,42783), (42864,42864), (42888,42888), (42994,42996), (43000,43001), (43471,43471), (43494,43494), (43632,43632), (43741,43741), (43763,43764), (43868,43871), (43881,43881), (65392,65392), (65438,65439), (67456,67461), (67463,67504), (67506,67514), (92992,92995), (94099,94111), (94176,94177), (94179,94179), (110576,110579), (110581,110587), (110589,110590), (122928,122989), (123191,123197), (124139,124139), (125259,125259) ); const PUCUUnicodeCategoryBlocks5:array[0..509] of TPUCUUnicodeCharRange=( (170,170), (186,186), (443,443), (448,451), (660,660), (1488,1514), (1519,1522), (1568,1599), (1601,1610), (1646,1647), (1649,1747), (1749,1749), (1774,1775), (1786,1788), (1791,1791), (1808,1808), (1810,1839), (1869,1957), (1969,1969), (1994,2026), (2048,2069), (2112,2136), (2144,2154), (2160,2183), (2185,2190), (2208,2248), (2308,2361), (2365,2365), (2384,2384), (2392,2401), (2418,2432), (2437,2444), (2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489), (2493,2493), (2510,2510), (2524,2525), (2527,2529), (2544,2545), (2556,2556), (2565,2570), (2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614), (2616,2617), (2649,2652), (2654,2654), (2674,2676), (2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739), (2741,2745), (2749,2749), (2768,2768), (2784,2785), (2809,2809), (2821,2828), (2831,2832), (2835,2856), (2858,2864), (2866,2867), (2869,2873), (2877,2877), (2908,2909), (2911,2913), (2929,2929), (2947,2947), (2949,2954), (2958,2960), (2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986), (2990,3001), (3024,3024), (3077,3084), (3086,3088), (3090,3112), (3114,3129), (3133,3133), (3160,3162), (3165,3165), (3168,3169), (3200,3200), (3205,3212), (3214,3216), (3218,3240), (3242,3251), (3253,3257), (3261,3261), (3293,3294), (3296,3297), (3313,3314), (3332,3340), (3342,3344), (3346,3386), (3389,3389), (3406,3406), (3412,3414), (3423,3425), (3450,3455), (3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526), (3585,3632), (3634,3635), (3648,3653), (3713,3714), (3716,3716), (3718,3722), (3724,3747), (3749,3749), (3751,3760), (3762,3763), (3773,3773), (3776,3780), (3804,3807), (3840,3840), (3904,3911), (3913,3948), (3976,3980), (4096,4138), (4159,4159), (4176,4181), (4186,4189), (4193,4193), (4197,4198), (4206,4208), (4213,4225), (4238,4238), (4352,4680), (4682,4685), (4688,4694), (4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784), (4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822), (4824,4880), (4882,4885), (4888,4954), (4992,5007), (5121,5740), (5743,5759), (5761,5786), (5792,5866), (5873,5880), (5888,5905), (5919,5937), (5952,5969), (5984,5996), (5998,6000), (6016,6067), (6108,6108), (6176,6210), (6212,6264), (6272,6276), (6279,6312), (6314,6314), (6320,6389), (6400,6430), (6480,6509), (6512,6516), (6528,6571), (6576,6601), (6656,6678), (6688,6740), (6917,6963), (6981,6988), (7043,7072), (7086,7087), (7098,7141), (7168,7203), (7245,7247), (7258,7287), (7401,7404), (7406,7411), (7413,7414), (7418,7418), (8501,8504), (11568,11623), (11648,11670), (11680,11686), (11688,11694), (11696,11702), (11704,11710), (11712,11718), (11720,11726), (11728,11734), (11736,11742), (12294,12294), (12348,12348), (12353,12438), (12447,12447), (12449,12538), (12543,12543), (12549,12591), (12593,12686), (12704,12735), (12784,12799), (13312,19903), (19968,40980), (40982,42124), (42192,42231), (42240,42507), (42512,42527), (42538,42539), (42606,42606), (42656,42725), (42895,42895), (42999,42999), (43003,43009), (43011,43013), (43015,43018), (43020,43042), (43072,43123), (43138,43187), (43250,43255), (43259,43259), (43261,43262), (43274,43301), (43312,43334), (43360,43388), (43396,43442), (43488,43492), (43495,43503), (43514,43518), (43520,43560), (43584,43586), (43588,43595), (43616,43631), (43633,43638), (43642,43642), (43646,43695), (43697,43697), (43701,43702), (43705,43709), (43712,43712), (43714,43714), (43739,43740), (43744,43754), (43762,43762), (43777,43782), (43785,43790), (43793,43798), (43808,43814), (43816,43822), (43968,44002), (44032,55203), (55216,55238), (55243,55291), (63744,64109), (64112,64217), (64285,64285), (64287,64296), (64298,64310), (64312,64316), (64318,64318), (64320,64321), (64323,64324), (64326,64433), (64467,64829), (64848,64911), (64914,64967), (65008,65019), (65136,65140), (65142,65276), (65382,65391), (65393,65437), (65440,65470), (65474,65479), (65482,65487), (65490,65495), (65498,65500), (65536,65547), (65549,65574), (65576,65594), (65596,65597), (65599,65613), (65616,65629), (65664,65786), (66176,66204), (66208,66256), (66304,66335), (66349,66368), (66370,66377), (66384,66421), (66432,66461), (66464,66499), (66504,66511), (66640,66717), (66816,66855), (66864,66915), (67072,67382), (67392,67413), (67424,67431), (67584,67589), (67592,67592), (67594,67637), (67639,67640), (67644,67644), (67647,67669), (67680,67702), (67712,67742), (67808,67826), (67828,67829), (67840,67861), (67872,67897), (67968,68023), (68030,68031), (68096,68096), (68112,68115), (68117,68119), (68121,68149), (68192,68220), (68224,68252), (68288,68295), (68297,68324), (68352,68405), (68416,68437), (68448,68466), (68480,68497), (68608,68680), (68864,68899), (69248,69289), (69296,69297), (69376,69404), (69415,69415), (69424,69445), (69488,69505), (69552,69572), (69600,69622), (69635,69687), (69745,69746), (69749,69749), (69763,69807), (69840,69864), (69891,69926), (69956,69956), (69959,69959), (69968,70002), (70006,70006), (70019,70066), (70081,70084), (70106,70106), (70108,70108), (70144,70161), (70163,70187), (70207,70208), (70272,70278), (70280,70280), (70282,70285), (70287,70301), (70303,70312), (70320,70366), (70405,70412), (70415,70416), (70419,70440), (70442,70448), (70450,70451), (70453,70457), (70461,70461), (70480,70480), (70493,70497), (70656,70708), (70727,70730), (70751,70753), (70784,70831), (70852,70853), (70855,70855), (71040,71086), (71128,71131), (71168,71215), (71236,71236), (71296,71338), (71352,71352), (71424,71450), (71488,71494), (71680,71723), (71935,71942), (71945,71945), (71948,71955), (71957,71958), (71960,71983), (71999,71999), (72001,72001), (72096,72103), (72106,72144), (72161,72161), (72163,72163), (72192,72192), (72203,72242), (72250,72250), (72272,72272), (72284,72329), (72349,72349), (72368,72440), (72704,72712), (72714,72750), (72768,72768), (72818,72847), (72960,72966), (72968,72969), (72971,73008), (73030,73030), (73056,73061), (73063,73064), (73066,73097), (73112,73112), (73440,73458), (73474,73474), (73476,73488), (73490,73523), (73648,73648), (73728,74649), (74880,75075), (77712,77808), (77824,78895), (78913,78918), (82944,83526), (92160,92728), (92736,92766), (92784,92862), (92880,92909), (92928,92975), (93027,93047), (93053,93071), (93952,94026), (94032,94032), (94208,100343), (100352,101589), (101632,101640), (110592,110882), (110898,110898), (110928,110930), (110933,110933), (110948,110951), (110960,111355), (113664,113770), (113776,113788), (113792,113800), (113808,113817), (122634,122634), (123136,123180), (123214,123214), (123536,123565), (123584,123627), (124112,124138), (124896,124902), (124904,124907), (124909,124910), (124912,124926), (124928,125124), (126464,126467), (126469,126495), (126497,126498), (126500,126500), (126503,126503), (126505,126514), (126516,126519), (126521,126521), (126523,126523), (126530,126530), (126535,126535), (126537,126537), (126539,126539), (126541,126543), (126545,126546), (126548,126548), (126551,126551), (126553,126553), (126555,126555), (126557,126557), (126559,126559), (126561,126562), (126564,126564), (126567,126570), (126572,126578), (126580,126583), (126585,126588), (126590,126590), (126592,126601), (126603,126619), (126625,126627), (126629,126633), (126635,126651), (131072,173791), (173824,177977), (177984,178205), (178208,183969), (183984,191456), (194560,195101), (196608,201546), (201552,205743) ); const PUCUUnicodeCategoryBlocks6:array[0..345] of TPUCUUnicodeCharRange=( (768,879), (1155,1159), (1425,1469), (1471,1471), (1473,1474), (1476,1477), (1479,1479), (1552,1562), (1611,1631), (1648,1648), (1750,1756), (1759,1764), (1767,1768), (1770,1773), (1809,1809), (1840,1866), (1958,1968), (2027,2035), (2045,2045), (2070,2073), (2075,2083), (2085,2087), (2089,2093), (2137,2139), (2200,2207), (2250,2273), (2275,2306), (2362,2362), (2364,2364), (2369,2376), (2381,2381), (2385,2391), (2402,2403), (2433,2433), (2492,2492), (2497,2500), (2509,2509), (2530,2531), (2558,2558), (2561,2562), (2620,2620), (2625,2626), (2631,2632), (2635,2637), (2641,2641), (2672,2673), (2677,2677), (2689,2690), (2748,2748), (2753,2757), (2759,2760), (2765,2765), (2786,2787), (2810,2815), (2817,2817), (2876,2876), (2879,2879), (2881,2884), (2893,2893), (2901,2902), (2914,2915), (2946,2946), (3008,3008), (3021,3021), (3072,3072), (3076,3076), (3132,3132), (3134,3136), (3142,3144), (3146,3149), (3157,3158), (3170,3171), (3201,3201), (3260,3260), (3263,3263), (3270,3270), (3276,3277), (3298,3299), (3328,3329), (3387,3388), (3393,3396), (3405,3405), (3426,3427), (3457,3457), (3530,3530), (3538,3540), (3542,3542), (3633,3633), (3636,3642), (3655,3662), (3761,3761), (3764,3772), (3784,3790), (3864,3865), (3893,3893), (3895,3895), (3897,3897), (3953,3966), (3968,3972), (3974,3975), (3981,3991), (3993,4028), (4038,4038), (4141,4144), (4146,4151), (4153,4154), (4157,4158), (4184,4185), (4190,4192), (4209,4212), (4226,4226), (4229,4230), (4237,4237), (4253,4253), (4957,4959), (5906,5908), (5938,5939), (5970,5971), (6002,6003), (6068,6069), (6071,6077), (6086,6086), (6089,6099), (6109,6109), (6155,6157), (6159,6159), (6277,6278), (6313,6313), (6432,6434), (6439,6440), (6450,6450), (6457,6459), (6679,6680), (6683,6683), (6742,6742), (6744,6750), (6752,6752), (6754,6754), (6757,6764), (6771,6780), (6783,6783), (6832,6845), (6847,6862), (6912,6915), (6964,6964), (6966,6970), (6972,6972), (6978,6978), (7019,7027), (7040,7041), (7074,7077), (7080,7081), (7083,7085), (7142,7142), (7144,7145), (7149,7149), (7151,7153), (7212,7219), (7222,7223), (7376,7378), (7380,7392), (7394,7400), (7405,7405), (7412,7412), (7416,7417), (7616,7679), (8400,8412), (8417,8417), (8421,8432), (11503,11505), (11647,11647), (11744,11775), (12330,12333), (12441,12442), (42607,42607), (42612,42621), (42654,42655), (42736,42737), (43010,43010), (43014,43014), (43019,43019), (43045,43046), (43052,43052), (43204,43205), (43232,43249), (43263,43263), (43302,43309), (43335,43345), (43392,43394), (43443,43443), (43446,43449), (43452,43453), (43493,43493), (43561,43566), (43569,43570), (43573,43574), (43587,43587), (43596,43596), (43644,43644), (43696,43696), (43698,43700), (43703,43704), (43710,43711), (43713,43713), (43756,43757), (43766,43766), (44005,44005), (44008,44008), (44013,44013), (64286,64286), (65024,65039), (65056,65071), (66045,66045), (66272,66272), (66422,66426), (68097,68099), (68101,68102), (68108,68111), (68152,68154), (68159,68159), (68325,68326), (68900,68903), (69291,69292), (69373,69375), (69446,69456), (69506,69509), (69633,69633), (69688,69702), (69744,69744), (69747,69748), (69759,69761), (69811,69814), (69817,69818), (69826,69826), (69888,69890), (69927,69931), (69933,69940), (70003,70003), (70016,70017), (70070,70078), (70089,70092), (70095,70095), (70191,70193), (70196,70196), (70198,70199), (70206,70206), (70209,70209), (70367,70367), (70371,70378), (70400,70401), (70459,70460), (70464,70464), (70502,70508), (70512,70516), (70712,70719), (70722,70724), (70726,70726), (70750,70750), (70835,70840), (70842,70842), (70847,70848), (70850,70851), (71090,71093), (71100,71101), (71103,71104), (71132,71133), (71219,71226), (71229,71229), (71231,71232), (71339,71339), (71341,71341), (71344,71349), (71351,71351), (71453,71455), (71458,71461), (71463,71467), (71727,71735), (71737,71738), (71995,71996), (71998,71998), (72003,72003), (72148,72151), (72154,72155), (72160,72160), (72193,72202), (72243,72248), (72251,72254), (72263,72263), (72273,72278), (72281,72283), (72330,72342), (72344,72345), (72752,72758), (72760,72765), (72767,72767), (72850,72871), (72874,72880), (72882,72883), (72885,72886), (73009,73014), (73018,73018), (73020,73021), (73023,73029), (73031,73031), (73104,73105), (73109,73109), (73111,73111), (73459,73460), (73472,73473), (73526,73530), (73536,73536), (73538,73538), (78912,78912), (78919,78933), (92912,92916), (92976,92982), (94031,94031), (94095,94098), (94180,94180), (113821,113822), (118528,118573), (118576,118598), (119143,119145), (119163,119170), (119173,119179), (119210,119213), (119362,119364), (121344,121398), (121403,121452), (121461,121461), (121476,121476), (121499,121503), (121505,121519), (122880,122886), (122888,122904), (122907,122913), (122915,122916), (122918,122922), (123023,123023), (123184,123190), (123566,123566), (123628,123631), (124140,124143), (125136,125142), (125252,125258), (917760,917999) ); const PUCUUnicodeCategoryBlocks7:array[0..4] of TPUCUUnicodeCharRange=( (1160,1161), (6846,6846), (8413,8416), (8418,8420), (42608,42610) ); const PUCUUnicodeCategoryBlocks8:array[0..181] of TPUCUUnicodeCharRange=( (2307,2307), (2363,2363), (2366,2368), (2377,2380), (2382,2383), (2434,2435), (2494,2496), (2503,2504), (2507,2508), (2519,2519), (2563,2563), (2622,2624), (2691,2691), (2750,2752), (2761,2761), (2763,2764), (2818,2819), (2878,2878), (2880,2880), (2887,2888), (2891,2892), (2903,2903), (3006,3007), (3009,3010), (3014,3016), (3018,3020), (3031,3031), (3073,3075), (3137,3140), (3202,3203), (3262,3262), (3264,3268), (3271,3272), (3274,3275), (3285,3286), (3315,3315), (3330,3331), (3390,3392), (3398,3400), (3402,3404), (3415,3415), (3458,3459), (3535,3537), (3544,3551), (3570,3571), (3902,3903), (3967,3967), (4139,4140), (4145,4145), (4152,4152), (4155,4156), (4182,4183), (4194,4196), (4199,4205), (4227,4228), (4231,4236), (4239,4239), (4250,4252), (5909,5909), (5940,5940), (6070,6070), (6078,6085), (6087,6088), (6435,6438), (6441,6443), (6448,6449), (6451,6456), (6681,6682), (6741,6741), (6743,6743), (6753,6753), (6755,6756), (6765,6770), (6916,6916), (6965,6965), (6971,6971), (6973,6977), (6979,6980), (7042,7042), (7073,7073), (7078,7079), (7082,7082), (7143,7143), (7146,7148), (7150,7150), (7154,7155), (7204,7211), (7220,7221), (7393,7393), (7415,7415), (12334,12335), (43043,43044), (43047,43047), (43136,43137), (43188,43203), (43346,43347), (43395,43395), (43444,43445), (43450,43451), (43454,43456), (43567,43568), (43571,43572), (43597,43597), (43643,43643), (43645,43645), (43755,43755), (43758,43759), (43765,43765), (44003,44004), (44006,44007), (44009,44010), (44012,44012), (69632,69632), (69634,69634), (69762,69762), (69808,69810), (69815,69816), (69932,69932), (69957,69958), (70018,70018), (70067,70069), (70079,70080), (70094,70094), (70188,70190), (70194,70195), (70197,70197), (70368,70370), (70402,70403), (70462,70463), (70465,70468), (70471,70472), (70475,70477), (70487,70487), (70498,70499), (70709,70711), (70720,70721), (70725,70725), (70832,70834), (70841,70841), (70843,70846), (70849,70849), (71087,71089), (71096,71099), (71102,71102), (71216,71218), (71227,71228), (71230,71230), (71340,71340), (71342,71343), (71350,71350), (71456,71457), (71462,71462), (71724,71726), (71736,71736), (71984,71989), (71991,71992), (71997,71997), (72000,72000), (72002,72002), (72145,72147), (72156,72159), (72164,72164), (72249,72249), (72279,72280), (72343,72343), (72751,72751), (72766,72766), (72873,72873), (72881,72881), (72884,72884), (73098,73102), (73107,73108), (73110,73110), (73461,73462), (73475,73475), (73524,73525), (73534,73535), (73537,73537), (94033,94087), (94192,94193), (119141,119142), (119149,119154) ); const PUCUUnicodeCategoryBlocks9:array[0..63] of TPUCUUnicodeCharRange=( (48,57), (1632,1641), (1776,1785), (1984,1993), (2406,2415), (2534,2543), (2662,2671), (2790,2799), (2918,2927), (3046,3055), (3174,3183), (3302,3311), (3430,3439), (3558,3567), (3664,3673), (3792,3801), (3872,3881), (4160,4169), (4240,4249), (6112,6121), (6160,6169), (6470,6479), (6608,6617), (6784,6793), (6800,6809), (6992,7001), (7088,7097), (7232,7241), (7248,7257), (42528,42537), (43216,43225), (43264,43273), (43472,43481), (43504,43513), (43600,43609), (44016,44025), (65296,65305), (66720,66729), (68912,68921), (69734,69743), (69872,69881), (69942,69951), (70096,70105), (70384,70393), (70736,70745), (70864,70873), (71248,71257), (71360,71369), (71472,71481), (71904,71913), (72016,72025), (72784,72793), (73040,73049), (73120,73129), (73552,73561), (92768,92777), (92864,92873), (93008,93017), (120782,120831), (123200,123209), (123632,123641), (124144,124153), (125264,125273), (130032,130041) ); const PUCUUnicodeCategoryBlocks10:array[0..11] of TPUCUUnicodeCharRange=( (5870,5872), (8544,8578), (8581,8584), (12295,12295), (12321,12329), (12344,12346), (42726,42735), (65856,65908), (66369,66369), (66378,66378), (66513,66517), (74752,74862) ); const PUCUUnicodeCategoryBlocks11:array[0..71] of TPUCUUnicodeCharRange=( (178,179), (185,185), (188,190), (2548,2553), (2930,2935), (3056,3058), (3192,3198), (3416,3422), (3440,3448), (3882,3891), (4969,4988), (6128,6137), (6618,6618), (8304,8304), (8308,8313), (8320,8329), (8528,8543), (8585,8585), (9312,9371), (9450,9471), (10102,10131), (11517,11517), (12690,12693), (12832,12841), (12872,12879), (12881,12895), (12928,12937), (12977,12991), (43056,43061), (65799,65843), (65909,65912), (65930,65931), (66273,66299), (66336,66339), (67672,67679), (67705,67711), (67751,67759), (67835,67839), (67862,67867), (68028,68029), (68032,68047), (68050,68095), (68160,68168), (68221,68222), (68253,68255), (68331,68335), (68440,68447), (68472,68479), (68521,68527), (68858,68863), (69216,69246), (69405,69414), (69457,69460), (69573,69579), (69714,69733), (70113,70132), (71482,71483), (71914,71922), (72794,72812), (73664,73684), (93019,93025), (93824,93846), (119488,119507), (119520,119539), (119648,119672), (125127,125135), (126065,126123), (126125,126127), (126129,126132), (126209,126253), (126255,126269), (127232,127244) ); const PUCUUnicodeCategoryBlocks12:array[0..6] of TPUCUUnicodeCharRange=( (32,32), (160,160), (5760,5760), (8192,8202), (8239,8239), (8287,8287), (12288,12288) ); const PUCUUnicodeCategoryBlocks13:array[0..0] of TPUCUUnicodeCharRange=( (8232,8232) ); const PUCUUnicodeCategoryBlocks14:array[0..0] of TPUCUUnicodeCharRange=( (8233,8233) ); const PUCUUnicodeCategoryBlocks15:array[0..1] of TPUCUUnicodeCharRange=( (0,31), (127,159) ); const PUCUUnicodeCategoryBlocks16:array[0..20] of TPUCUUnicodeCharRange=( (173,173), (1536,1541), (1564,1564), (1757,1757), (1807,1807), (2192,2193), (2274,2274), (6158,6158), (8203,8207), (8234,8238), (8288,8292), (8294,8303), (65279,65279), (65529,65531), (69821,69821), (69837,69837), (78896,78911), (113824,113827), (119155,119162), (917505,917505), (917536,917631) ); const PUCUUnicodeCategoryBlocks17:array[0..2] of TPUCUUnicodeCharRange=( (57344,63743), (983040,1048573), (1048576,1114109) ); const PUCUUnicodeCategoryBlocks18:array[0..0] of TPUCUUnicodeCharRange=( (55296,57343) ); const PUCUUnicodeCategoryBlocks19:array[0..18] of TPUCUUnicodeCharRange=( (45,45), (1418,1418), (1470,1470), (5120,5120), (6150,6150), (8208,8213), (11799,11799), (11802,11802), (11834,11835), (11840,11840), (11869,11869), (12316,12316), (12336,12336), (12448,12448), (65073,65074), (65112,65112), (65123,65123), (65293,65293), (69293,69293) ); const PUCUUnicodeCategoryBlocks20:array[0..78] of TPUCUUnicodeCharRange=( (40,40), (91,91), (123,123), (3898,3898), (3900,3900), (5787,5787), (8218,8218), (8222,8222), (8261,8261), (8317,8317), (8333,8333), (8968,8968), (8970,8970), (9001,9001), (10088,10088), (10090,10090), (10092,10092), (10094,10094), (10096,10096), (10098,10098), (10100,10100), (10181,10181), (10214,10214), (10216,10216), (10218,10218), (10220,10220), (10222,10222), (10627,10627), (10629,10629), (10631,10631), (10633,10633), (10635,10635), (10637,10637), (10639,10639), (10641,10641), (10643,10643), (10645,10645), (10647,10647), (10712,10712), (10714,10714), (10748,10748), (11810,11810), (11812,11812), (11814,11814), (11816,11816), (11842,11842), (11861,11861), (11863,11863), (11865,11865), (11867,11867), (12296,12296), (12298,12298), (12300,12300), (12302,12302), (12304,12304), (12308,12308), (12310,12310), (12312,12312), (12314,12314), (12317,12317), (64831,64831), (65047,65047), (65077,65077), (65079,65079), (65081,65081), (65083,65083), (65085,65085), (65087,65087), (65089,65089), (65091,65091), (65095,65095), (65113,65113), (65115,65115), (65117,65117), (65288,65288), (65339,65339), (65371,65371), (65375,65375), (65378,65378) ); const PUCUUnicodeCategoryBlocks21:array[0..75] of TPUCUUnicodeCharRange=( (41,41), (93,93), (125,125), (3899,3899), (3901,3901), (5788,5788), (8262,8262), (8318,8318), (8334,8334), (8969,8969), (8971,8971), (9002,9002), (10089,10089), (10091,10091), (10093,10093), (10095,10095), (10097,10097), (10099,10099), (10101,10101), (10182,10182), (10215,10215), (10217,10217), (10219,10219), (10221,10221), (10223,10223), (10628,10628), (10630,10630), (10632,10632), (10634,10634), (10636,10636), (10638,10638), (10640,10640), (10642,10642), (10644,10644), (10646,10646), (10648,10648), (10713,10713), (10715,10715), (10749,10749), (11811,11811), (11813,11813), (11815,11815), (11817,11817), (11862,11862), (11864,11864), (11866,11866), (11868,11868), (12297,12297), (12299,12299), (12301,12301), (12303,12303), (12305,12305), (12309,12309), (12311,12311), (12313,12313), (12315,12315), (12318,12319), (64830,64830), (65048,65048), (65078,65078), (65080,65080), (65082,65082), (65084,65084), (65086,65086), (65088,65088), (65090,65090), (65092,65092), (65096,65096), (65114,65114), (65116,65116), (65118,65118), (65289,65289), (65341,65341), (65373,65373), (65376,65376), (65379,65379) ); const PUCUUnicodeCategoryBlocks22:array[0..5] of TPUCUUnicodeCharRange=( (95,95), (8255,8256), (8276,8276), (65075,65076), (65101,65103), (65343,65343) ); const PUCUUnicodeCategoryBlocks23:array[0..186] of TPUCUUnicodeCharRange=( (33,35), (37,39), (42,42), (44,44), (46,47), (58,59), (63,64), (92,92), (161,161), (167,167), (182,183), (191,191), (894,894), (903,903), (1370,1375), (1417,1417), (1472,1472), (1475,1475), (1478,1478), (1523,1524), (1545,1546), (1548,1549), (1563,1563), (1565,1567), (1642,1645), (1748,1748), (1792,1805), (2039,2041), (2096,2110), (2142,2142), (2404,2405), (2416,2416), (2557,2557), (2678,2678), (2800,2800), (3191,3191), (3204,3204), (3572,3572), (3663,3663), (3674,3675), (3844,3858), (3860,3860), (3973,3973), (4048,4052), (4057,4058), (4170,4175), (4347,4347), (4960,4968), (5742,5742), (5867,5869), (5941,5942), (6100,6102), (6104,6106), (6144,6149), (6151,6154), (6468,6469), (6686,6687), (6816,6822), (6824,6829), (7002,7008), (7037,7038), (7164,7167), (7227,7231), (7294,7295), (7360,7367), (7379,7379), (8214,8215), (8224,8231), (8240,8248), (8251,8254), (8257,8259), (8263,8273), (8275,8275), (8277,8286), (11513,11516), (11518,11519), (11632,11632), (11776,11777), (11782,11784), (11787,11787), (11790,11798), (11800,11801), (11803,11803), (11806,11807), (11818,11822), (11824,11833), (11836,11839), (11841,11841), (11843,11855), (11858,11860), (12289,12291), (12349,12349), (12539,12539), (42238,42239), (42509,42511), (42611,42611), (42622,42622), (42738,42743), (43124,43127), (43214,43215), (43256,43258), (43260,43260), (43310,43311), (43359,43359), (43457,43469), (43486,43487), (43612,43615), (43742,43743), (43760,43761), (44011,44011), (65040,65046), (65049,65049), (65072,65072), (65093,65094), (65097,65100), (65104,65106), (65108,65111), (65119,65121), (65128,65128), (65130,65131), (65281,65283), (65285,65287), (65290,65290), (65292,65292), (65294,65295), (65306,65307), (65311,65312), (65340,65340), (65377,65377), (65380,65381), (65792,65794), (66463,66463), (66512,66512), (66927,66927), (67671,67671), (67871,67871), (67903,67903), (68176,68184), (68223,68223), (68336,68342), (68409,68415), (68505,68508), (69461,69465), (69510,69513), (69703,69709), (69819,69820), (69822,69825), (69952,69955), (70004,70005), (70085,70088), (70093,70093), (70107,70107), (70109,70111), (70200,70205), (70313,70313), (70731,70735), (70746,70747), (70749,70749), (70854,70854), (71105,71127), (71233,71235), (71264,71276), (71353,71353), (71484,71486), (71739,71739), (72004,72006), (72162,72162), (72255,72262), (72346,72348), (72350,72354), (72448,72457), (72769,72773), (72816,72817), (73463,73464), (73539,73551), (73727,73727), (74864,74868), (77809,77810), (92782,92783), (92917,92917), (92983,92987), (92996,92996), (93847,93850), (94178,94178), (113823,113823), (121479,121483), (125278,125279) ); const PUCUUnicodeCategoryBlocks24:array[0..63] of TPUCUUnicodeCharRange=( (43,43), (60,62), (124,124), (126,126), (172,172), (177,177), (215,215), (247,247), (1014,1014), (1542,1544), (8260,8260), (8274,8274), (8314,8316), (8330,8332), (8472,8472), (8512,8516), (8523,8523), (8592,8596), (8602,8603), (8608,8608), (8611,8611), (8614,8614), (8622,8622), (8654,8655), (8658,8658), (8660,8660), (8692,8959), (8992,8993), (9084,9084), (9115,9139), (9180,9185), (9655,9655), (9665,9665), (9720,9727), (9839,9839), (10176,10180), (10183,10213), (10224,10239), (10496,10626), (10649,10711), (10716,10747), (10750,11007), (11056,11076), (11079,11084), (64297,64297), (65122,65122), (65124,65126), (65291,65291), (65308,65310), (65372,65372), (65374,65374), (65506,65506), (65513,65516), (120513,120513), (120539,120539), (120571,120571), (120597,120597), (120629,120629), (120655,120655), (120687,120687), (120713,120713), (120745,120745), (120771,120771), (126704,126705) ); const PUCUUnicodeCategoryBlocks25:array[0..20] of TPUCUUnicodeCharRange=( (36,36), (162,165), (1423,1423), (1547,1547), (2046,2047), (2546,2547), (2555,2555), (2801,2801), (3065,3065), (3647,3647), (6107,6107), (8352,8384), (43064,43064), (65020,65020), (65129,65129), (65284,65284), (65504,65505), (65509,65510), (73693,73696), (123647,123647), (126128,126128) ); const PUCUUnicodeCategoryBlocks26:array[0..30] of TPUCUUnicodeCharRange=( (94,94), (96,96), (168,168), (175,175), (180,180), (184,184), (706,709), (722,735), (741,747), (749,749), (751,767), (885,885), (900,901), (2184,2184), (8125,8125), (8127,8129), (8141,8143), (8157,8159), (8173,8175), (8189,8190), (12443,12444), (42752,42774), (42784,42785), (42889,42890), (43867,43867), (43882,43883), (64434,64450), (65342,65342), (65344,65344), (65507,65507), (127995,127999) ); const PUCUUnicodeCategoryBlocks27:array[0..183] of TPUCUUnicodeCharRange=( (166,166), (169,169), (174,174), (176,176), (1154,1154), (1421,1422), (1550,1551), (1758,1758), (1769,1769), (1789,1790), (2038,2038), (2554,2554), (2928,2928), (3059,3064), (3066,3066), (3199,3199), (3407,3407), (3449,3449), (3841,3843), (3859,3859), (3861,3863), (3866,3871), (3892,3892), (3894,3894), (3896,3896), (4030,4037), (4039,4044), (4046,4047), (4053,4056), (4254,4255), (5008,5017), (5741,5741), (6464,6464), (6622,6655), (7009,7018), (7028,7036), (8448,8449), (8451,8454), (8456,8457), (8468,8468), (8470,8471), (8478,8483), (8485,8485), (8487,8487), (8489,8489), (8494,8494), (8506,8507), (8522,8522), (8524,8525), (8527,8527), (8586,8587), (8597,8601), (8604,8607), (8609,8610), (8612,8613), (8615,8621), (8623,8653), (8656,8657), (8659,8659), (8661,8691), (8960,8967), (8972,8991), (8994,9000), (9003,9083), (9085,9114), (9140,9179), (9186,9254), (9280,9290), (9372,9449), (9472,9654), (9656,9664), (9666,9719), (9728,9838), (9840,10087), (10132,10175), (10240,10495), (11008,11055), (11077,11078), (11085,11123), (11126,11157), (11159,11263), (11493,11498), (11856,11857), (11904,11929), (11931,12019), (12032,12245), (12272,12283), (12292,12292), (12306,12307), (12320,12320), (12342,12343), (12350,12351), (12688,12689), (12694,12703), (12736,12771), (12800,12830), (12842,12871), (12880,12880), (12896,12927), (12938,12976), (12992,13311), (19904,19967), (42128,42182), (43048,43051), (43062,43063), (43065,43065), (43639,43641), (64832,64847), (64975,64975), (65021,65023), (65508,65508), (65512,65512), (65517,65518), (65532,65533), (65847,65855), (65913,65929), (65932,65934), (65936,65948), (65952,65952), (66000,66044), (67703,67704), (68296,68296), (71487,71487), (73685,73692), (73697,73713), (92988,92991), (92997,92997), (113820,113820), (118608,118723), (118784,119029), (119040,119078), (119081,119140), (119146,119148), (119171,119172), (119180,119209), (119214,119274), (119296,119361), (119365,119365), (119552,119638), (120832,121343), (121399,121402), (121453,121460), (121462,121475), (121477,121478), (123215,123215), (126124,126124), (126254,126254), (126976,127019), (127024,127123), (127136,127150), (127153,127167), (127169,127183), (127185,127221), (127245,127405), (127462,127490), (127504,127547), (127552,127560), (127568,127569), (127584,127589), (127744,127994), (128000,128727), (128732,128748), (128752,128764), (128768,128886), (128891,128985), (128992,129003), (129008,129008), (129024,129035), (129040,129095), (129104,129113), (129120,129159), (129168,129197), (129200,129201), (129280,129619), (129632,129645), (129648,129660), (129664,129672), (129680,129725), (129727,129733), (129742,129755), (129760,129768), (129776,129784), (129792,129938), (129940,129994) ); const PUCUUnicodeCategoryBlocks28:array[0..10] of TPUCUUnicodeCharRange=( (171,171), (8216,8216), (8219,8220), (8223,8223), (8249,8249), (11778,11778), (11780,11780), (11785,11785), (11788,11788), (11804,11804), (11808,11808) ); const PUCUUnicodeCategoryBlocks29:array[0..9] of TPUCUUnicodeCharRange=( (187,187), (8217,8217), (8221,8221), (8250,8250), (11779,11779), (11781,11781), (11786,11786), (11789,11789), (11805,11805), (11809,11809) ); const PUCUUnicodeCategoryBlocksData:array[0..29] of pointer=( @PUCUUnicodeCategoryBlocks0, @PUCUUnicodeCategoryBlocks1, @PUCUUnicodeCategoryBlocks2, @PUCUUnicodeCategoryBlocks3, @PUCUUnicodeCategoryBlocks4, @PUCUUnicodeCategoryBlocks5, @PUCUUnicodeCategoryBlocks6, @PUCUUnicodeCategoryBlocks7, @PUCUUnicodeCategoryBlocks8, @PUCUUnicodeCategoryBlocks9, @PUCUUnicodeCategoryBlocks10, @PUCUUnicodeCategoryBlocks11, @PUCUUnicodeCategoryBlocks12, @PUCUUnicodeCategoryBlocks13, @PUCUUnicodeCategoryBlocks14, @PUCUUnicodeCategoryBlocks15, @PUCUUnicodeCategoryBlocks16, @PUCUUnicodeCategoryBlocks17, @PUCUUnicodeCategoryBlocks18, @PUCUUnicodeCategoryBlocks19, @PUCUUnicodeCategoryBlocks20, @PUCUUnicodeCategoryBlocks21, @PUCUUnicodeCategoryBlocks22, @PUCUUnicodeCategoryBlocks23, @PUCUUnicodeCategoryBlocks24, @PUCUUnicodeCategoryBlocks25, @PUCUUnicodeCategoryBlocks26, @PUCUUnicodeCategoryBlocks27, @PUCUUnicodeCategoryBlocks28, @PUCUUnicodeCategoryBlocks29 ); const PUCUUnicodeCategoryBlocksCounts:array[0..29] of longint=( 707, 646, 658, 10, 71, 510, 346, 5, 182, 64, 12, 72, 7, 1, 1, 2, 21, 3, 1, 19, 79, 76, 6, 187, 64, 21, 31, 184, 11, 10 ); const PUCUCountUnicodeIgnoreCaseCategoryBlocks=29; const PUCUUnicodeIgnoreCaseCategoryBlocks0:array[0..706] of TPUCUUnicodeCharRange=( (888,889), (896,899), (907,907), (909,909), (930,930), (1328,1328), (1367,1368), (1419,1420), (1424,1424), (1480,1487), (1515,1518), (1525,1535), (1806,1806), (1867,1868), (1970,1983), (2043,2044), (2094,2095), (2111,2111), (2140,2141), (2143,2143), (2155,2159), (2191,2191), (2194,2199), (2436,2436), (2445,2446), (2449,2450), (2473,2473), (2481,2481), (2483,2485), (2490,2491), (2501,2502), (2505,2506), (2511,2518), (2520,2523), (2526,2526), (2532,2533), (2559,2560), (2564,2564), (2571,2574), (2577,2578), (2601,2601), (2609,2609), (2612,2612), (2615,2615), (2618,2619), (2621,2621), (2627,2630), (2633,2634), (2638,2640), (2642,2648), (2653,2653), (2655,2661), (2679,2688), (2692,2692), (2702,2702), (2706,2706), (2729,2729), (2737,2737), (2740,2740), (2746,2747), (2758,2758), (2762,2762), (2766,2767), (2769,2783), (2788,2789), (2802,2808), (2816,2816), (2820,2820), (2829,2830), (2833,2834), (2857,2857), (2865,2865), (2868,2868), (2874,2875), (2885,2886), (2889,2890), (2894,2900), (2904,2907), (2910,2910), (2916,2917), (2936,2945), (2948,2948), (2955,2957), (2961,2961), (2966,2968), (2971,2971), (2973,2973), (2976,2978), (2981,2983), (2987,2989), (3002,3005), (3011,3013), (3017,3017), (3022,3023), (3025,3030), (3032,3045), (3067,3071), (3085,3085), (3089,3089), (3113,3113), (3130,3131), (3141,3141), (3145,3145), (3150,3156), (3159,3159), (3163,3164), (3166,3167), (3172,3173), (3184,3190), (3213,3213), (3217,3217), (3241,3241), (3252,3252), (3258,3259), (3269,3269), (3273,3273), (3278,3284), (3287,3292), (3295,3295), (3300,3301), (3312,3312), (3316,3327), (3341,3341), (3345,3345), (3397,3397), (3401,3401), (3408,3411), (3428,3429), (3456,3456), (3460,3460), (3479,3481), (3506,3506), (3516,3516), (3518,3519), (3527,3529), (3531,3534), (3541,3541), (3543,3543), (3552,3557), (3568,3569), (3573,3584), (3643,3646), (3676,3712), (3715,3715), (3717,3717), (3723,3723), (3748,3748), (3750,3750), (3774,3775), (3781,3781), (3783,3783), (3791,3791), (3802,3803), (3808,3839), (3912,3912), (3949,3952), (3992,3992), (4029,4029), (4045,4045), (4059,4095), (4294,4294), (4296,4300), (4302,4303), (4681,4681), (4686,4687), (4695,4695), (4697,4697), (4702,4703), (4745,4745), (4750,4751), (4785,4785), (4790,4791), (4799,4799), (4801,4801), (4806,4807), (4823,4823), (4881,4881), (4886,4887), (4955,4956), (4989,4991), (5018,5023), (5110,5111), (5118,5119), (5789,5791), (5881,5887), (5910,5918), (5943,5951), (5972,5983), (5997,5997), (6001,6001), (6004,6015), (6110,6111), (6122,6127), (6138,6143), (6170,6175), (6265,6271), (6315,6319), (6390,6399), (6431,6431), (6444,6447), (6460,6463), (6465,6467), (6510,6511), (6517,6527), (6572,6575), (6602,6607), (6619,6621), (6684,6685), (6751,6751), (6781,6782), (6794,6799), (6810,6815), (6830,6831), (6863,6911), (6989,6991), (7039,7039), (7156,7163), (7224,7226), (7242,7244), (7305,7311), (7355,7356), (7368,7375), (7419,7423), (7958,7959), (7966,7967), (8006,8007), (8014,8015), (8024,8024), (8026,8026), (8028,8028), (8030,8030), (8062,8063), (8117,8117), (8133,8133), (8148,8149), (8156,8156), (8176,8177), (8181,8181), (8191,8191), (8293,8293), (8306,8307), (8335,8335), (8349,8351), (8385,8399), (8433,8447), (8588,8591), (9255,9279), (9291,9311), (11124,11125), (11158,11158), (11508,11512), (11558,11558), (11560,11564), (11566,11567), (11624,11630), (11633,11646), (11671,11679), (11687,11687), (11695,11695), (11703,11703), (11711,11711), (11719,11719), (11727,11727), (11735,11735), (11743,11743), (11870,11903), (11930,11930), (12020,12031), (12246,12271), (12284,12287), (12352,12352), (12439,12440), (12544,12548), (12592,12592), (12687,12687), (12772,12783), (12831,12831), (42125,42127), (42183,42191), (42540,42559), (42744,42751), (42955,42959), (42962,42962), (42964,42964), (42970,42993), (43053,43055), (43066,43071), (43128,43135), (43206,43213), (43226,43231), (43348,43358), (43389,43391), (43470,43470), (43482,43485), (43519,43519), (43575,43583), (43598,43599), (43610,43611), (43715,43738), (43767,43776), (43783,43784), (43791,43792), (43799,43807), (43815,43815), (43823,43823), (43884,43887), (44014,44015), (44026,44031), (55204,55215), (55239,55242), (55292,55295), (64110,64111), (64218,64255), (64263,64274), (64280,64284), (64311,64311), (64317,64317), (64319,64319), (64322,64322), (64325,64325), (64451,64466), (64912,64913), (64968,64974), (64976,65007), (65050,65055), (65107,65107), (65127,65127), (65132,65135), (65141,65141), (65277,65278), (65280,65280), (65471,65473), (65480,65481), (65488,65489), (65496,65497), (65501,65503), (65511,65511), (65519,65528), (65534,65535), (65548,65548), (65575,65575), (65595,65595), (65598,65598), (65614,65615), (65630,65663), (65787,65791), (65795,65798), (65844,65846), (65935,65935), (65949,65951), (65953,65999), (66046,66175), (66205,66207), (66257,66271), (66300,66303), (66340,66348), (66379,66383), (66427,66431), (66462,66462), (66500,66503), (66518,66559), (66718,66719), (66730,66735), (66772,66775), (66812,66815), (66856,66863), (66916,66926), (66939,66939), (66955,66955), (66963,66963), (66966,66966), (66978,66978), (66994,66994), (67002,67002), (67005,67071), (67383,67391), (67414,67423), (67432,67455), (67462,67462), (67505,67505), (67515,67583), (67590,67591), (67593,67593), (67638,67638), (67641,67643), (67645,67646), (67670,67670), (67743,67750), (67760,67807), (67827,67827), (67830,67834), (67868,67870), (67898,67902), (67904,67967), (68024,68027), (68048,68049), (68100,68100), (68103,68107), (68116,68116), (68120,68120), (68150,68151), (68155,68158), (68169,68175), (68185,68191), (68256,68287), (68327,68330), (68343,68351), (68406,68408), (68438,68439), (68467,68471), (68498,68504), (68509,68520), (68528,68607), (68681,68735), (68787,68799), (68851,68857), (68904,68911), (68922,69215), (69247,69247), (69290,69290), (69294,69295), (69298,69372), (69416,69423), (69466,69487), (69514,69551), (69580,69599), (69623,69631), (69710,69713), (69750,69758), (69827,69836), (69838,69839), (69865,69871), (69882,69887), (69941,69941), (69960,69967), (70007,70015), (70112,70112), (70133,70143), (70162,70162), (70210,70271), (70279,70279), (70281,70281), (70286,70286), (70302,70302), (70314,70319), (70379,70383), (70394,70399), (70404,70404), (70413,70414), (70417,70418), (70441,70441), (70449,70449), (70452,70452), (70458,70458), (70469,70470), (70473,70474), (70478,70479), (70481,70486), (70488,70492), (70500,70501), (70509,70511), (70517,70655), (70748,70748), (70754,70783), (70856,70863), (70874,71039), (71094,71095), (71134,71167), (71237,71247), (71258,71263), (71277,71295), (71354,71359), (71370,71423), (71451,71452), (71468,71471), (71495,71679), (71740,71839), (71923,71934), (71943,71944), (71946,71947), (71956,71956), (71959,71959), (71990,71990), (71993,71994), (72007,72015), (72026,72095), (72104,72105), (72152,72153), (72165,72191), (72264,72271), (72355,72367), (72441,72447), (72458,72703), (72713,72713), (72759,72759), (72774,72783), (72813,72815), (72848,72849), (72872,72872), (72887,72959), (72967,72967), (72970,72970), (73015,73017), (73019,73019), (73022,73022), (73032,73039), (73050,73055), (73062,73062), (73065,73065), (73103,73103), (73106,73106), (73113,73119), (73130,73439), (73465,73471), (73489,73489), (73531,73533), (73562,73647), (73649,73663), (73714,73726), (74650,74751), (74863,74863), (74869,74879), (75076,77711), (77811,77823), (78934,82943), (83527,92159), (92729,92735), (92767,92767), (92778,92781), (92863,92863), (92874,92879), (92910,92911), (92918,92927), (92998,93007), (93018,93018), (93026,93026), (93048,93052), (93072,93759), (93851,93951), (94027,94030), (94088,94094), (94112,94175), (94181,94191), (94194,94207), (100344,100351), (101590,101631), (101641,110575), (110580,110580), (110588,110588), (110591,110591), (110883,110897), (110899,110927), (110931,110932), (110934,110947), (110952,110959), (111356,113663), (113771,113775), (113789,113791), (113801,113807), (113818,113819), (113828,118527), (118574,118575), (118599,118607), (118724,118783), (119030,119039), (119079,119080), (119275,119295), (119366,119487), (119508,119519), (119540,119551), (119639,119647), (119673,119807), (119893,119893), (119965,119965), (119968,119969), (119971,119972), (119975,119976), (119981,119981), (119994,119994), (119996,119996), (120004,120004), (120070,120070), (120075,120076), (120085,120085), (120093,120093), (120122,120122), (120127,120127), (120133,120133), (120135,120137), (120145,120145), (120486,120487), (120780,120781), (121484,121498), (121504,121504), (121520,122623), (122655,122660), (122667,122879), (122887,122887), (122905,122906), (122914,122914), (122917,122917), (122923,122927), (122990,123022), (123024,123135), (123181,123183), (123198,123199), (123210,123213), (123216,123535), (123567,123583), (123642,123646), (123648,124111), (124154,124895), (124903,124903), (124908,124908), (124911,124911), (124927,124927), (125125,125126), (125143,125183), (125260,125263), (125274,125277), (125280,126064), (126133,126208), (126270,126463), (126468,126468), (126496,126496), (126499,126499), (126501,126502), (126504,126504), (126515,126515), (126520,126520), (126522,126522), (126524,126529), (126531,126534), (126536,126536), (126538,126538), (126540,126540), (126544,126544), (126547,126547), (126549,126550), (126552,126552), (126554,126554), (126556,126556), (126558,126558), (126560,126560), (126563,126563), (126565,126566), (126571,126571), (126579,126579), (126584,126584), (126589,126589), (126591,126591), (126602,126602), (126620,126624), (126628,126628), (126634,126634), (126652,126703), (126706,126975), (127020,127023), (127124,127135), (127151,127152), (127168,127168), (127184,127184), (127222,127231), (127406,127461), (127491,127503), (127548,127551), (127561,127567), (127570,127583), (127590,127743), (128728,128731), (128749,128751), (128765,128767), (128887,128890), (128986,128991), (129004,129007), (129009,129023), (129036,129039), (129096,129103), (129114,129119), (129160,129167), (129198,129199), (129202,129279), (129620,129631), (129646,129647), (129661,129663), (129673,129679), (129726,129726), (129734,129741), (129756,129759), (129769,129775), (129785,129791), (129939,129939), (129995,130031), (130042,131071), (173792,173823), (177978,177983), (178206,178207), (183970,183983), (191457,194559), (195102,196607), (201547,201551), (205744,917504), (917506,917535), (917632,917759), (918000,983039), (1048574,1048575), (1114110,1114111) ); const PUCUUnicodeIgnoreCaseCategoryBlocks1:array[0..179] of TPUCUUnicodeCharRange=( (65,90), (97,122), (192,214), (216,246), (248,304), (306,311), (313,328), (330,382), (384,396), (398,410), (412,425), (428,441), (444,445), (447,447), (452,452), (454,455), (457,458), (460,495), (497,497), (499,544), (546,563), (570,596), (598,599), (601,601), (603,604), (608,609), (611,611), (613,614), (616,620), (623,623), (625,626), (629,629), (637,637), (640,640), (642,643), (647,652), (658,658), (669,670), (880,883), (886,887), (891,893), (895,895), (902,902), (904,906), (908,908), (910,911), (913,929), (931,943), (945,961), (963,975), (978,980), (983,1007), (1010,1012), (1015,1019), (1021,1153), (1162,1327), (1329,1366), (1377,1414), (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4349,4351), (5024,5109), (5112,5117), (7312,7354), (7357,7359), (7545,7545), (7549,7549), (7566,7566), (7680,7829), (7838,7838), (7840,7957), (7960,7965), (7968,8005), (8008,8013), (8017,8017), (8019,8019), (8021,8021), (8023,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8112,8113), (8120,8123), (8136,8139), (8144,8145), (8152,8155), (8160,8161), (8165,8165), (8168,8172), (8184,8187), (8450,8450), (8455,8455), (8459,8461), (8464,8466), (8469,8469), (8473,8477), (8484,8484), (8486,8486), (8488,8488), (8490,8493), (8496,8499), (8510,8511), (8517,8517), (8526,8526), (8579,8580), (11264,11376), (11378,11379), (11381,11382), (11390,11491), (11499,11502), (11506,11507), (11520,11557), (11559,11559), (11565,11565), (42560,42605), (42624,42651), (42786,42799), (42802,42863), (42873,42887), (42891,42893), (42896,42900), (42902,42926), (42928,42954), (42960,42961), (42966,42969), (42997,42998), (43859,43859), (43888,43967), (65313,65338), (65345,65370), (66560,66639), (66736,66771), (66776,66811), (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004), (68736,68786), (68800,68850), (71840,71903), (93760,93823), (119808,119833), (119860,119885), (119912,119937), (119964,119964), (119966,119967), (119970,119970), (119973,119974), (119977,119980), (119982,119989), (120016,120041), (120068,120069), (120071,120074), (120077,120084), (120086,120092), (120120,120121), (120123,120126), (120128,120132), (120134,120134), (120138,120144), (120172,120197), (120224,120249), (120276,120301), (120328,120353), (120380,120405), (120432,120457), (120488,120512), (120546,120570), (120604,120628), (120662,120686), (120720,120744), (120778,120778), (125184,125251) ); const PUCUUnicodeIgnoreCaseCategoryBlocks2:array[0..144] of TPUCUUnicodeCharRange=( (65,90), (97,122), (181,181), (192,214), (216,246), (248,303), (305,442), (444,447), (452,452), (454,455), (457,458), (460,497), (499,659), (661,687), (880,883), (886,887), (891,893), (895,895), (902,902), (904,906), (908,908), (910,929), (931,977), (981,1011), (1013,1013), (1015,1153), (1162,1327), (1329,1366), (1376,1416), (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4349,4351), (5024,5109), (5112,5117), (7296,7304), (7312,7354), (7357,7359), (7424,7467), (7531,7543), (7545,7578), (7680,7837), (7839,7957), (7960,7965), (7968,8005), (8008,8013), (8016,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8116), (8118,8124), (8126,8126), (8130,8132), (8134,8140), (8144,8147), (8150,8155), (8160,8172), (8178,8180), (8182,8188), (8458,8458), (8462,8463), (8467,8467), (8495,8495), (8498,8498), (8500,8500), (8505,8505), (8508,8509), (8518,8521), (8526,8526), (8579,8580), (11264,11387), (11390,11492), (11499,11502), (11506,11507), (11520,11557), (11559,11559), (11565,11565), (42560,42605), (42624,42651), (42786,42863), (42865,42887), (42891,42894), (42896,42954), (42960,42961), (42963,42963), (42965,42969), (42997,42998), (43002,43002), (43824,43866), (43872,43880), (43888,43967), (64256,64262), (64275,64279), (65313,65338), (65345,65370), (66560,66639), (66736,66771), (66776,66811), (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004), (68736,68786), (68800,68850), (71840,71903), (93760,93823), (119834,119859), (119886,119892), (119894,119911), (119938,119963), (119990,119993), (119995,119995), (119997,120003), (120005,120015), (120042,120067), (120094,120119), (120146,120171), (120198,120223), (120250,120275), (120302,120327), (120354,120379), (120406,120431), (120458,120485), (120514,120538), (120540,120545), (120572,120596), (120598,120603), (120630,120654), (120656,120661), (120688,120712), (120714,120719), (120746,120770), (120772,120777), (120779,120779), (122624,122633), (122635,122654), (122661,122666), (125184,125251) ); const PUCUUnicodeIgnoreCaseCategoryBlocks3:array[0..8] of TPUCUUnicodeCharRange=( (452,460), (497,499), (8064,8111), (8115,8115), (8124,8124), (8131,8131), (8140,8140), (8179,8179), (8188,8188) ); const PUCUUnicodeIgnoreCaseCategoryBlocks4:array[0..70] of TPUCUUnicodeCharRange=( (688,705), (710,721), (736,740), (748,748), (750,750), (884,884), (890,890), (1369,1369), (1600,1600), (1765,1766), (2036,2037), (2042,2042), (2074,2074), (2084,2084), (2088,2088), (2249,2249), (2417,2417), (3654,3654), (3782,3782), (4348,4348), (6103,6103), (6211,6211), (6823,6823), (7288,7293), (7468,7530), (7544,7544), (7579,7615), (8305,8305), (8319,8319), (8336,8348), (11388,11389), (11631,11631), (11823,11823), (12293,12293), (12337,12341), (12347,12347), (12445,12446), (12540,12542), (40981,40981), (42232,42237), (42508,42508), (42623,42623), (42652,42653), (42775,42783), (42864,42864), (42888,42888), (42994,42996), (43000,43001), (43471,43471), (43494,43494), (43632,43632), (43741,43741), (43763,43764), (43868,43871), (43881,43881), (65392,65392), (65438,65439), (67456,67461), (67463,67504), (67506,67514), (92992,92995), (94099,94111), (94176,94177), (94179,94179), (110576,110579), (110581,110587), (110589,110590), (122928,122989), (123191,123197), (124139,124139), (125259,125259) ); const PUCUUnicodeIgnoreCaseCategoryBlocks5:array[0..509] of TPUCUUnicodeCharRange=( (170,170), (186,186), (443,443), (448,451), (660,660), (1488,1514), (1519,1522), (1568,1599), (1601,1610), (1646,1647), (1649,1747), (1749,1749), (1774,1775), (1786,1788), (1791,1791), (1808,1808), (1810,1839), (1869,1957), (1969,1969), (1994,2026), (2048,2069), (2112,2136), (2144,2154), (2160,2183), (2185,2190), (2208,2248), (2308,2361), (2365,2365), (2384,2384), (2392,2401), (2418,2432), (2437,2444), (2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489), (2493,2493), (2510,2510), (2524,2525), (2527,2529), (2544,2545), (2556,2556), (2565,2570), (2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614), (2616,2617), (2649,2652), (2654,2654), (2674,2676), (2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739), (2741,2745), (2749,2749), (2768,2768), (2784,2785), (2809,2809), (2821,2828), (2831,2832), (2835,2856), (2858,2864), (2866,2867), (2869,2873), (2877,2877), (2908,2909), (2911,2913), (2929,2929), (2947,2947), (2949,2954), (2958,2960), (2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986), (2990,3001), (3024,3024), (3077,3084), (3086,3088), (3090,3112), (3114,3129), (3133,3133), (3160,3162), (3165,3165), (3168,3169), (3200,3200), (3205,3212), (3214,3216), (3218,3240), (3242,3251), (3253,3257), (3261,3261), (3293,3294), (3296,3297), (3313,3314), (3332,3340), (3342,3344), (3346,3386), (3389,3389), (3406,3406), (3412,3414), (3423,3425), (3450,3455), (3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526), (3585,3632), (3634,3635), (3648,3653), (3713,3714), (3716,3716), (3718,3722), (3724,3747), (3749,3749), (3751,3760), (3762,3763), (3773,3773), (3776,3780), (3804,3807), (3840,3840), (3904,3911), (3913,3948), (3976,3980), (4096,4138), (4159,4159), (4176,4181), (4186,4189), (4193,4193), (4197,4198), (4206,4208), (4213,4225), (4238,4238), (4352,4680), (4682,4685), (4688,4694), (4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784), (4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822), (4824,4880), (4882,4885), (4888,4954), (4992,5007), (5121,5740), (5743,5759), (5761,5786), (5792,5866), (5873,5880), (5888,5905), (5919,5937), (5952,5969), (5984,5996), (5998,6000), (6016,6067), (6108,6108), (6176,6210), (6212,6264), (6272,6276), (6279,6312), (6314,6314), (6320,6389), (6400,6430), (6480,6509), (6512,6516), (6528,6571), (6576,6601), (6656,6678), (6688,6740), (6917,6963), (6981,6988), (7043,7072), (7086,7087), (7098,7141), (7168,7203), (7245,7247), (7258,7287), (7401,7404), (7406,7411), (7413,7414), (7418,7418), (8501,8504), (11568,11623), (11648,11670), (11680,11686), (11688,11694), (11696,11702), (11704,11710), (11712,11718), (11720,11726), (11728,11734), (11736,11742), (12294,12294), (12348,12348), (12353,12438), (12447,12447), (12449,12538), (12543,12543), (12549,12591), (12593,12686), (12704,12735), (12784,12799), (13312,19903), (19968,40980), (40982,42124), (42192,42231), (42240,42507), (42512,42527), (42538,42539), (42606,42606), (42656,42725), (42895,42895), (42999,42999), (43003,43009), (43011,43013), (43015,43018), (43020,43042), (43072,43123), (43138,43187), (43250,43255), (43259,43259), (43261,43262), (43274,43301), (43312,43334), (43360,43388), (43396,43442), (43488,43492), (43495,43503), (43514,43518), (43520,43560), (43584,43586), (43588,43595), (43616,43631), (43633,43638), (43642,43642), (43646,43695), (43697,43697), (43701,43702), (43705,43709), (43712,43712), (43714,43714), (43739,43740), (43744,43754), (43762,43762), (43777,43782), (43785,43790), (43793,43798), (43808,43814), (43816,43822), (43968,44002), (44032,55203), (55216,55238), (55243,55291), (63744,64109), (64112,64217), (64285,64285), (64287,64296), (64298,64310), (64312,64316), (64318,64318), (64320,64321), (64323,64324), (64326,64433), (64467,64829), (64848,64911), (64914,64967), (65008,65019), (65136,65140), (65142,65276), (65382,65391), (65393,65437), (65440,65470), (65474,65479), (65482,65487), (65490,65495), (65498,65500), (65536,65547), (65549,65574), (65576,65594), (65596,65597), (65599,65613), (65616,65629), (65664,65786), (66176,66204), (66208,66256), (66304,66335), (66349,66368), (66370,66377), (66384,66421), (66432,66461), (66464,66499), (66504,66511), (66640,66717), (66816,66855), (66864,66915), (67072,67382), (67392,67413), (67424,67431), (67584,67589), (67592,67592), (67594,67637), (67639,67640), (67644,67644), (67647,67669), (67680,67702), (67712,67742), (67808,67826), (67828,67829), (67840,67861), (67872,67897), (67968,68023), (68030,68031), (68096,68096), (68112,68115), (68117,68119), (68121,68149), (68192,68220), (68224,68252), (68288,68295), (68297,68324), (68352,68405), (68416,68437), (68448,68466), (68480,68497), (68608,68680), (68864,68899), (69248,69289), (69296,69297), (69376,69404), (69415,69415), (69424,69445), (69488,69505), (69552,69572), (69600,69622), (69635,69687), (69745,69746), (69749,69749), (69763,69807), (69840,69864), (69891,69926), (69956,69956), (69959,69959), (69968,70002), (70006,70006), (70019,70066), (70081,70084), (70106,70106), (70108,70108), (70144,70161), (70163,70187), (70207,70208), (70272,70278), (70280,70280), (70282,70285), (70287,70301), (70303,70312), (70320,70366), (70405,70412), (70415,70416), (70419,70440), (70442,70448), (70450,70451), (70453,70457), (70461,70461), (70480,70480), (70493,70497), (70656,70708), (70727,70730), (70751,70753), (70784,70831), (70852,70853), (70855,70855), (71040,71086), (71128,71131), (71168,71215), (71236,71236), (71296,71338), (71352,71352), (71424,71450), (71488,71494), (71680,71723), (71935,71942), (71945,71945), (71948,71955), (71957,71958), (71960,71983), (71999,71999), (72001,72001), (72096,72103), (72106,72144), (72161,72161), (72163,72163), (72192,72192), (72203,72242), (72250,72250), (72272,72272), (72284,72329), (72349,72349), (72368,72440), (72704,72712), (72714,72750), (72768,72768), (72818,72847), (72960,72966), (72968,72969), (72971,73008), (73030,73030), (73056,73061), (73063,73064), (73066,73097), (73112,73112), (73440,73458), (73474,73474), (73476,73488), (73490,73523), (73648,73648), (73728,74649), (74880,75075), (77712,77808), (77824,78895), (78913,78918), (82944,83526), (92160,92728), (92736,92766), (92784,92862), (92880,92909), (92928,92975), (93027,93047), (93053,93071), (93952,94026), (94032,94032), (94208,100343), (100352,101589), (101632,101640), (110592,110882), (110898,110898), (110928,110930), (110933,110933), (110948,110951), (110960,111355), (113664,113770), (113776,113788), (113792,113800), (113808,113817), (122634,122634), (123136,123180), (123214,123214), (123536,123565), (123584,123627), (124112,124138), (124896,124902), (124904,124907), (124909,124910), (124912,124926), (124928,125124), (126464,126467), (126469,126495), (126497,126498), (126500,126500), (126503,126503), (126505,126514), (126516,126519), (126521,126521), (126523,126523), (126530,126530), (126535,126535), (126537,126537), (126539,126539), (126541,126543), (126545,126546), (126548,126548), (126551,126551), (126553,126553), (126555,126555), (126557,126557), (126559,126559), (126561,126562), (126564,126564), (126567,126570), (126572,126578), (126580,126583), (126585,126588), (126590,126590), (126592,126601), (126603,126619), (126625,126627), (126629,126633), (126635,126651), (131072,173791), (173824,177977), (177984,178205), (178208,183969), (183984,191456), (194560,195101), (196608,201546), (201552,205743) ); const PUCUUnicodeIgnoreCaseCategoryBlocks6:array[0..346] of TPUCUUnicodeCharRange=( (768,879), (921,921), (1155,1159), (1425,1469), (1471,1471), (1473,1474), (1476,1477), (1479,1479), (1552,1562), (1611,1631), (1648,1648), (1750,1756), (1759,1764), (1767,1768), (1770,1773), (1809,1809), (1840,1866), (1958,1968), (2027,2035), (2045,2045), (2070,2073), (2075,2083), (2085,2087), (2089,2093), (2137,2139), (2200,2207), (2250,2273), (2275,2306), (2362,2362), (2364,2364), (2369,2376), (2381,2381), (2385,2391), (2402,2403), (2433,2433), (2492,2492), (2497,2500), (2509,2509), (2530,2531), (2558,2558), (2561,2562), (2620,2620), (2625,2626), (2631,2632), (2635,2637), (2641,2641), (2672,2673), (2677,2677), (2689,2690), (2748,2748), (2753,2757), (2759,2760), (2765,2765), (2786,2787), (2810,2815), (2817,2817), (2876,2876), (2879,2879), (2881,2884), (2893,2893), (2901,2902), (2914,2915), (2946,2946), (3008,3008), (3021,3021), (3072,3072), (3076,3076), (3132,3132), (3134,3136), (3142,3144), (3146,3149), (3157,3158), (3170,3171), (3201,3201), (3260,3260), (3263,3263), (3270,3270), (3276,3277), (3298,3299), (3328,3329), (3387,3388), (3393,3396), (3405,3405), (3426,3427), (3457,3457), (3530,3530), (3538,3540), (3542,3542), (3633,3633), (3636,3642), (3655,3662), (3761,3761), (3764,3772), (3784,3790), (3864,3865), (3893,3893), (3895,3895), (3897,3897), (3953,3966), (3968,3972), (3974,3975), (3981,3991), (3993,4028), (4038,4038), (4141,4144), (4146,4151), (4153,4154), (4157,4158), (4184,4185), (4190,4192), (4209,4212), (4226,4226), (4229,4230), (4237,4237), (4253,4253), (4957,4959), (5906,5908), (5938,5939), (5970,5971), (6002,6003), (6068,6069), (6071,6077), (6086,6086), (6089,6099), (6109,6109), (6155,6157), (6159,6159), (6277,6278), (6313,6313), (6432,6434), (6439,6440), (6450,6450), (6457,6459), (6679,6680), (6683,6683), (6742,6742), (6744,6750), (6752,6752), (6754,6754), (6757,6764), (6771,6780), (6783,6783), (6832,6845), (6847,6862), (6912,6915), (6964,6964), (6966,6970), (6972,6972), (6978,6978), (7019,7027), (7040,7041), (7074,7077), (7080,7081), (7083,7085), (7142,7142), (7144,7145), (7149,7149), (7151,7153), (7212,7219), (7222,7223), (7376,7378), (7380,7392), (7394,7400), (7405,7405), (7412,7412), (7416,7417), (7616,7679), (8400,8412), (8417,8417), (8421,8432), (11503,11505), (11647,11647), (11744,11775), (12330,12333), (12441,12442), (42607,42607), (42612,42621), (42654,42655), (42736,42737), (43010,43010), (43014,43014), (43019,43019), (43045,43046), (43052,43052), (43204,43205), (43232,43249), (43263,43263), (43302,43309), (43335,43345), (43392,43394), (43443,43443), (43446,43449), (43452,43453), (43493,43493), (43561,43566), (43569,43570), (43573,43574), (43587,43587), (43596,43596), (43644,43644), (43696,43696), (43698,43700), (43703,43704), (43710,43711), (43713,43713), (43756,43757), (43766,43766), (44005,44005), (44008,44008), (44013,44013), (64286,64286), (65024,65039), (65056,65071), (66045,66045), (66272,66272), (66422,66426), (68097,68099), (68101,68102), (68108,68111), (68152,68154), (68159,68159), (68325,68326), (68900,68903), (69291,69292), (69373,69375), (69446,69456), (69506,69509), (69633,69633), (69688,69702), (69744,69744), (69747,69748), (69759,69761), (69811,69814), (69817,69818), (69826,69826), (69888,69890), (69927,69931), (69933,69940), (70003,70003), (70016,70017), (70070,70078), (70089,70092), (70095,70095), (70191,70193), (70196,70196), (70198,70199), (70206,70206), (70209,70209), (70367,70367), (70371,70378), (70400,70401), (70459,70460), (70464,70464), (70502,70508), (70512,70516), (70712,70719), (70722,70724), (70726,70726), (70750,70750), (70835,70840), (70842,70842), (70847,70848), (70850,70851), (71090,71093), (71100,71101), (71103,71104), (71132,71133), (71219,71226), (71229,71229), (71231,71232), (71339,71339), (71341,71341), (71344,71349), (71351,71351), (71453,71455), (71458,71461), (71463,71467), (71727,71735), (71737,71738), (71995,71996), (71998,71998), (72003,72003), (72148,72151), (72154,72155), (72160,72160), (72193,72202), (72243,72248), (72251,72254), (72263,72263), (72273,72278), (72281,72283), (72330,72342), (72344,72345), (72752,72758), (72760,72765), (72767,72767), (72850,72871), (72874,72880), (72882,72883), (72885,72886), (73009,73014), (73018,73018), (73020,73021), (73023,73029), (73031,73031), (73104,73105), (73109,73109), (73111,73111), (73459,73460), (73472,73473), (73526,73530), (73536,73536), (73538,73538), (78912,78912), (78919,78933), (92912,92916), (92976,92982), (94031,94031), (94095,94098), (94180,94180), (113821,113822), (118528,118573), (118576,118598), (119143,119145), (119163,119170), (119173,119179), (119210,119213), (119362,119364), (121344,121398), (121403,121452), (121461,121461), (121476,121476), (121499,121503), (121505,121519), (122880,122886), (122888,122904), (122907,122913), (122915,122916), (122918,122922), (123023,123023), (123184,123190), (123566,123566), (123628,123631), (124140,124143), (125136,125142), (125252,125258), (917760,917999) ); const PUCUUnicodeIgnoreCaseCategoryBlocks7:array[0..4] of TPUCUUnicodeCharRange=( (1160,1161), (6846,6846), (8413,8416), (8418,8420), (42608,42610) ); const PUCUUnicodeIgnoreCaseCategoryBlocks8:array[0..181] of TPUCUUnicodeCharRange=( (2307,2307), (2363,2363), (2366,2368), (2377,2380), (2382,2383), (2434,2435), (2494,2496), (2503,2504), (2507,2508), (2519,2519), (2563,2563), (2622,2624), (2691,2691), (2750,2752), (2761,2761), (2763,2764), (2818,2819), (2878,2878), (2880,2880), (2887,2888), (2891,2892), (2903,2903), (3006,3007), (3009,3010), (3014,3016), (3018,3020), (3031,3031), (3073,3075), (3137,3140), (3202,3203), (3262,3262), (3264,3268), (3271,3272), (3274,3275), (3285,3286), (3315,3315), (3330,3331), (3390,3392), (3398,3400), (3402,3404), (3415,3415), (3458,3459), (3535,3537), (3544,3551), (3570,3571), (3902,3903), (3967,3967), (4139,4140), (4145,4145), (4152,4152), (4155,4156), (4182,4183), (4194,4196), (4199,4205), (4227,4228), (4231,4236), (4239,4239), (4250,4252), (5909,5909), (5940,5940), (6070,6070), (6078,6085), (6087,6088), (6435,6438), (6441,6443), (6448,6449), (6451,6456), (6681,6682), (6741,6741), (6743,6743), (6753,6753), (6755,6756), (6765,6770), (6916,6916), (6965,6965), (6971,6971), (6973,6977), (6979,6980), (7042,7042), (7073,7073), (7078,7079), (7082,7082), (7143,7143), (7146,7148), (7150,7150), (7154,7155), (7204,7211), (7220,7221), (7393,7393), (7415,7415), (12334,12335), (43043,43044), (43047,43047), (43136,43137), (43188,43203), (43346,43347), (43395,43395), (43444,43445), (43450,43451), (43454,43456), (43567,43568), (43571,43572), (43597,43597), (43643,43643), (43645,43645), (43755,43755), (43758,43759), (43765,43765), (44003,44004), (44006,44007), (44009,44010), (44012,44012), (69632,69632), (69634,69634), (69762,69762), (69808,69810), (69815,69816), (69932,69932), (69957,69958), (70018,70018), (70067,70069), (70079,70080), (70094,70094), (70188,70190), (70194,70195), (70197,70197), (70368,70370), (70402,70403), (70462,70463), (70465,70468), (70471,70472), (70475,70477), (70487,70487), (70498,70499), (70709,70711), (70720,70721), (70725,70725), (70832,70834), (70841,70841), (70843,70846), (70849,70849), (71087,71089), (71096,71099), (71102,71102), (71216,71218), (71227,71228), (71230,71230), (71340,71340), (71342,71343), (71350,71350), (71456,71457), (71462,71462), (71724,71726), (71736,71736), (71984,71989), (71991,71992), (71997,71997), (72000,72000), (72002,72002), (72145,72147), (72156,72159), (72164,72164), (72249,72249), (72279,72280), (72343,72343), (72751,72751), (72766,72766), (72873,72873), (72881,72881), (72884,72884), (73098,73102), (73107,73108), (73110,73110), (73461,73462), (73475,73475), (73524,73525), (73534,73535), (73537,73537), (94033,94087), (94192,94193), (119141,119142), (119149,119154) ); const PUCUUnicodeIgnoreCaseCategoryBlocks9:array[0..63] of TPUCUUnicodeCharRange=( (48,57), (1632,1641), (1776,1785), (1984,1993), (2406,2415), (2534,2543), (2662,2671), (2790,2799), (2918,2927), (3046,3055), (3174,3183), (3302,3311), (3430,3439), (3558,3567), (3664,3673), (3792,3801), (3872,3881), (4160,4169), (4240,4249), (6112,6121), (6160,6169), (6470,6479), (6608,6617), (6784,6793), (6800,6809), (6992,7001), (7088,7097), (7232,7241), (7248,7257), (42528,42537), (43216,43225), (43264,43273), (43472,43481), (43504,43513), (43600,43609), (44016,44025), (65296,65305), (66720,66729), (68912,68921), (69734,69743), (69872,69881), (69942,69951), (70096,70105), (70384,70393), (70736,70745), (70864,70873), (71248,71257), (71360,71369), (71472,71481), (71904,71913), (72016,72025), (72784,72793), (73040,73049), (73120,73129), (73552,73561), (92768,92777), (92864,92873), (93008,93017), (120782,120831), (123200,123209), (123632,123641), (124144,124153), (125264,125273), (130032,130041) ); const PUCUUnicodeIgnoreCaseCategoryBlocks10:array[0..11] of TPUCUUnicodeCharRange=( (5870,5872), (8544,8578), (8581,8584), (12295,12295), (12321,12329), (12344,12346), (42726,42735), (65856,65908), (66369,66369), (66378,66378), (66513,66517), (74752,74862) ); const PUCUUnicodeIgnoreCaseCategoryBlocks11:array[0..71] of TPUCUUnicodeCharRange=( (178,179), (185,185), (188,190), (2548,2553), (2930,2935), (3056,3058), (3192,3198), (3416,3422), (3440,3448), (3882,3891), (4969,4988), (6128,6137), (6618,6618), (8304,8304), (8308,8313), (8320,8329), (8528,8543), (8585,8585), (9312,9371), (9450,9471), (10102,10131), (11517,11517), (12690,12693), (12832,12841), (12872,12879), (12881,12895), (12928,12937), (12977,12991), (43056,43061), (65799,65843), (65909,65912), (65930,65931), (66273,66299), (66336,66339), (67672,67679), (67705,67711), (67751,67759), (67835,67839), (67862,67867), (68028,68029), (68032,68047), (68050,68095), (68160,68168), (68221,68222), (68253,68255), (68331,68335), (68440,68447), (68472,68479), (68521,68527), (68858,68863), (69216,69246), (69405,69414), (69457,69460), (69573,69579), (69714,69733), (70113,70132), (71482,71483), (71914,71922), (72794,72812), (73664,73684), (93019,93025), (93824,93846), (119488,119507), (119520,119539), (119648,119672), (125127,125135), (126065,126123), (126125,126127), (126129,126132), (126209,126253), (126255,126269), (127232,127244) ); const PUCUUnicodeIgnoreCaseCategoryBlocks12:array[0..6] of TPUCUUnicodeCharRange=( (32,32), (160,160), (5760,5760), (8192,8202), (8239,8239), (8287,8287), (12288,12288) ); const PUCUUnicodeIgnoreCaseCategoryBlocks13:array[0..0] of TPUCUUnicodeCharRange=( (8232,8232) ); const PUCUUnicodeIgnoreCaseCategoryBlocks14:array[0..0] of TPUCUUnicodeCharRange=( (8233,8233) ); const PUCUUnicodeIgnoreCaseCategoryBlocks15:array[0..1] of TPUCUUnicodeCharRange=( (0,31), (127,159) ); const PUCUUnicodeIgnoreCaseCategoryBlocks16:array[0..20] of TPUCUUnicodeCharRange=( (173,173), (1536,1541), (1564,1564), (1757,1757), (1807,1807), (2192,2193), (2274,2274), (6158,6158), (8203,8207), (8234,8238), (8288,8292), (8294,8303), (65279,65279), (65529,65531), (69821,69821), (69837,69837), (78896,78911), (113824,113827), (119155,119162), (917505,917505), (917536,917631) ); const PUCUUnicodeIgnoreCaseCategoryBlocks17:array[0..2] of TPUCUUnicodeCharRange=( (57344,63743), (983040,1048573), (1048576,1114109) ); const PUCUUnicodeIgnoreCaseCategoryBlocks18:array[0..0] of TPUCUUnicodeCharRange=( (55296,57343) ); const PUCUUnicodeIgnoreCaseCategoryBlocks19:array[0..18] of TPUCUUnicodeCharRange=( (45,45), (1418,1418), (1470,1470), (5120,5120), (6150,6150), (8208,8213), (11799,11799), (11802,11802), (11834,11835), (11840,11840), (11869,11869), (12316,12316), (12336,12336), (12448,12448), (65073,65074), (65112,65112), (65123,65123), (65293,65293), (69293,69293) ); const PUCUUnicodeIgnoreCaseCategoryBlocks20:array[0..78] of TPUCUUnicodeCharRange=( (40,40), (91,91), (123,123), (3898,3898), (3900,3900), (5787,5787), (8218,8218), (8222,8222), (8261,8261), (8317,8317), (8333,8333), (8968,8968), (8970,8970), (9001,9001), (10088,10088), (10090,10090), (10092,10092), (10094,10094), (10096,10096), (10098,10098), (10100,10100), (10181,10181), (10214,10214), (10216,10216), (10218,10218), (10220,10220), (10222,10222), (10627,10627), (10629,10629), (10631,10631), (10633,10633), (10635,10635), (10637,10637), (10639,10639), (10641,10641), (10643,10643), (10645,10645), (10647,10647), (10712,10712), (10714,10714), (10748,10748), (11810,11810), (11812,11812), (11814,11814), (11816,11816), (11842,11842), (11861,11861), (11863,11863), (11865,11865), (11867,11867), (12296,12296), (12298,12298), (12300,12300), (12302,12302), (12304,12304), (12308,12308), (12310,12310), (12312,12312), (12314,12314), (12317,12317), (64831,64831), (65047,65047), (65077,65077), (65079,65079), (65081,65081), (65083,65083), (65085,65085), (65087,65087), (65089,65089), (65091,65091), (65095,65095), (65113,65113), (65115,65115), (65117,65117), (65288,65288), (65339,65339), (65371,65371), (65375,65375), (65378,65378) ); const PUCUUnicodeIgnoreCaseCategoryBlocks21:array[0..75] of TPUCUUnicodeCharRange=( (41,41), (93,93), (125,125), (3899,3899), (3901,3901), (5788,5788), (8262,8262), (8318,8318), (8334,8334), (8969,8969), (8971,8971), (9002,9002), (10089,10089), (10091,10091), (10093,10093), (10095,10095), (10097,10097), (10099,10099), (10101,10101), (10182,10182), (10215,10215), (10217,10217), (10219,10219), (10221,10221), (10223,10223), (10628,10628), (10630,10630), (10632,10632), (10634,10634), (10636,10636), (10638,10638), (10640,10640), (10642,10642), (10644,10644), (10646,10646), (10648,10648), (10713,10713), (10715,10715), (10749,10749), (11811,11811), (11813,11813), (11815,11815), (11817,11817), (11862,11862), (11864,11864), (11866,11866), (11868,11868), (12297,12297), (12299,12299), (12301,12301), (12303,12303), (12305,12305), (12309,12309), (12311,12311), (12313,12313), (12315,12315), (12318,12319), (64830,64830), (65048,65048), (65078,65078), (65080,65080), (65082,65082), (65084,65084), (65086,65086), (65088,65088), (65090,65090), (65092,65092), (65096,65096), (65114,65114), (65116,65116), (65118,65118), (65289,65289), (65341,65341), (65373,65373), (65376,65376), (65379,65379) ); const PUCUUnicodeIgnoreCaseCategoryBlocks22:array[0..5] of TPUCUUnicodeCharRange=( (95,95), (8255,8256), (8276,8276), (65075,65076), (65101,65103), (65343,65343) ); const PUCUUnicodeIgnoreCaseCategoryBlocks23:array[0..186] of TPUCUUnicodeCharRange=( (33,35), (37,39), (42,42), (44,44), (46,47), (58,59), (63,64), (92,92), (161,161), (167,167), (182,183), (191,191), (894,894), (903,903), (1370,1375), (1417,1417), (1472,1472), (1475,1475), (1478,1478), (1523,1524), (1545,1546), (1548,1549), (1563,1563), (1565,1567), (1642,1645), (1748,1748), (1792,1805), (2039,2041), (2096,2110), (2142,2142), (2404,2405), (2416,2416), (2557,2557), (2678,2678), (2800,2800), (3191,3191), (3204,3204), (3572,3572), (3663,3663), (3674,3675), (3844,3858), (3860,3860), (3973,3973), (4048,4052), (4057,4058), (4170,4175), (4347,4347), (4960,4968), (5742,5742), (5867,5869), (5941,5942), (6100,6102), (6104,6106), (6144,6149), (6151,6154), (6468,6469), (6686,6687), (6816,6822), (6824,6829), (7002,7008), (7037,7038), (7164,7167), (7227,7231), (7294,7295), (7360,7367), (7379,7379), (8214,8215), (8224,8231), (8240,8248), (8251,8254), (8257,8259), (8263,8273), (8275,8275), (8277,8286), (11513,11516), (11518,11519), (11632,11632), (11776,11777), (11782,11784), (11787,11787), (11790,11798), (11800,11801), (11803,11803), (11806,11807), (11818,11822), (11824,11833), (11836,11839), (11841,11841), (11843,11855), (11858,11860), (12289,12291), (12349,12349), (12539,12539), (42238,42239), (42509,42511), (42611,42611), (42622,42622), (42738,42743), (43124,43127), (43214,43215), (43256,43258), (43260,43260), (43310,43311), (43359,43359), (43457,43469), (43486,43487), (43612,43615), (43742,43743), (43760,43761), (44011,44011), (65040,65046), (65049,65049), (65072,65072), (65093,65094), (65097,65100), (65104,65106), (65108,65111), (65119,65121), (65128,65128), (65130,65131), (65281,65283), (65285,65287), (65290,65290), (65292,65292), (65294,65295), (65306,65307), (65311,65312), (65340,65340), (65377,65377), (65380,65381), (65792,65794), (66463,66463), (66512,66512), (66927,66927), (67671,67671), (67871,67871), (67903,67903), (68176,68184), (68223,68223), (68336,68342), (68409,68415), (68505,68508), (69461,69465), (69510,69513), (69703,69709), (69819,69820), (69822,69825), (69952,69955), (70004,70005), (70085,70088), (70093,70093), (70107,70107), (70109,70111), (70200,70205), (70313,70313), (70731,70735), (70746,70747), (70749,70749), (70854,70854), (71105,71127), (71233,71235), (71264,71276), (71353,71353), (71484,71486), (71739,71739), (72004,72006), (72162,72162), (72255,72262), (72346,72348), (72350,72354), (72448,72457), (72769,72773), (72816,72817), (73463,73464), (73539,73551), (73727,73727), (74864,74868), (77809,77810), (92782,92783), (92917,92917), (92983,92987), (92996,92996), (93847,93850), (94178,94178), (113823,113823), (121479,121483), (125278,125279) ); const PUCUUnicodeIgnoreCaseCategoryBlocks24:array[0..63] of TPUCUUnicodeCharRange=( (43,43), (60,62), (124,124), (126,126), (172,172), (177,177), (215,215), (247,247), (1014,1014), (1542,1544), (8260,8260), (8274,8274), (8314,8316), (8330,8332), (8472,8472), (8512,8516), (8523,8523), (8592,8596), (8602,8603), (8608,8608), (8611,8611), (8614,8614), (8622,8622), (8654,8655), (8658,8658), (8660,8660), (8692,8959), (8992,8993), (9084,9084), (9115,9139), (9180,9185), (9655,9655), (9665,9665), (9720,9727), (9839,9839), (10176,10180), (10183,10213), (10224,10239), (10496,10626), (10649,10711), (10716,10747), (10750,11007), (11056,11076), (11079,11084), (64297,64297), (65122,65122), (65124,65126), (65291,65291), (65308,65310), (65372,65372), (65374,65374), (65506,65506), (65513,65516), (120513,120513), (120539,120539), (120571,120571), (120597,120597), (120629,120629), (120655,120655), (120687,120687), (120713,120713), (120745,120745), (120771,120771), (126704,126705) ); const PUCUUnicodeIgnoreCaseCategoryBlocks25:array[0..20] of TPUCUUnicodeCharRange=( (36,36), (162,165), (1423,1423), (1547,1547), (2046,2047), (2546,2547), (2555,2555), (2801,2801), (3065,3065), (3647,3647), (6107,6107), (8352,8384), (43064,43064), (65020,65020), (65129,65129), (65284,65284), (65504,65505), (65509,65510), (73693,73696), (123647,123647), (126128,126128) ); const PUCUUnicodeIgnoreCaseCategoryBlocks26:array[0..30] of TPUCUUnicodeCharRange=( (94,94), (96,96), (168,168), (175,175), (180,180), (184,184), (706,709), (722,735), (741,747), (749,749), (751,767), (885,885), (900,901), (2184,2184), (8125,8125), (8127,8129), (8141,8143), (8157,8159), (8173,8175), (8189,8190), (12443,12444), (42752,42774), (42784,42785), (42889,42890), (43867,43867), (43882,43883), (64434,64450), (65342,65342), (65344,65344), (65507,65507), (127995,127999) ); const PUCUUnicodeIgnoreCaseCategoryBlocks27:array[0..183] of TPUCUUnicodeCharRange=( (166,166), (169,169), (174,174), (176,176), (1154,1154), (1421,1422), (1550,1551), (1758,1758), (1769,1769), (1789,1790), (2038,2038), (2554,2554), (2928,2928), (3059,3064), (3066,3066), (3199,3199), (3407,3407), (3449,3449), (3841,3843), (3859,3859), (3861,3863), (3866,3871), (3892,3892), (3894,3894), (3896,3896), (4030,4037), (4039,4044), (4046,4047), (4053,4056), (4254,4255), (5008,5017), (5741,5741), (6464,6464), (6622,6655), (7009,7018), (7028,7036), (8448,8449), (8451,8454), (8456,8457), (8468,8468), (8470,8471), (8478,8483), (8485,8485), (8487,8487), (8489,8489), (8494,8494), (8506,8507), (8522,8522), (8524,8525), (8527,8527), (8586,8587), (8597,8601), (8604,8607), (8609,8610), (8612,8613), (8615,8621), (8623,8653), (8656,8657), (8659,8659), (8661,8691), (8960,8967), (8972,8991), (8994,9000), (9003,9083), (9085,9114), (9140,9179), (9186,9254), (9280,9290), (9372,9449), (9472,9654), (9656,9664), (9666,9719), (9728,9838), (9840,10087), (10132,10175), (10240,10495), (11008,11055), (11077,11078), (11085,11123), (11126,11157), (11159,11263), (11493,11498), (11856,11857), (11904,11929), (11931,12019), (12032,12245), (12272,12283), (12292,12292), (12306,12307), (12320,12320), (12342,12343), (12350,12351), (12688,12689), (12694,12703), (12736,12771), (12800,12830), (12842,12871), (12880,12880), (12896,12927), (12938,12976), (12992,13311), (19904,19967), (42128,42182), (43048,43051), (43062,43063), (43065,43065), (43639,43641), (64832,64847), (64975,64975), (65021,65023), (65508,65508), (65512,65512), (65517,65518), (65532,65533), (65847,65855), (65913,65929), (65932,65934), (65936,65948), (65952,65952), (66000,66044), (67703,67704), (68296,68296), (71487,71487), (73685,73692), (73697,73713), (92988,92991), (92997,92997), (113820,113820), (118608,118723), (118784,119029), (119040,119078), (119081,119140), (119146,119148), (119171,119172), (119180,119209), (119214,119274), (119296,119361), (119365,119365), (119552,119638), (120832,121343), (121399,121402), (121453,121460), (121462,121475), (121477,121478), (123215,123215), (126124,126124), (126254,126254), (126976,127019), (127024,127123), (127136,127150), (127153,127167), (127169,127183), (127185,127221), (127245,127405), (127462,127490), (127504,127547), (127552,127560), (127568,127569), (127584,127589), (127744,127994), (128000,128727), (128732,128748), (128752,128764), (128768,128886), (128891,128985), (128992,129003), (129008,129008), (129024,129035), (129040,129095), (129104,129113), (129120,129159), (129168,129197), (129200,129201), (129280,129619), (129632,129645), (129648,129660), (129664,129672), (129680,129725), (129727,129733), (129742,129755), (129760,129768), (129776,129784), (129792,129938), (129940,129994) ); const PUCUUnicodeIgnoreCaseCategoryBlocks28:array[0..10] of TPUCUUnicodeCharRange=( (171,171), (8216,8216), (8219,8220), (8223,8223), (8249,8249), (11778,11778), (11780,11780), (11785,11785), (11788,11788), (11804,11804), (11808,11808) ); const PUCUUnicodeIgnoreCaseCategoryBlocks29:array[0..9] of TPUCUUnicodeCharRange=( (187,187), (8217,8217), (8221,8221), (8250,8250), (11779,11779), (11781,11781), (11786,11786), (11789,11789), (11805,11805), (11809,11809) ); const PUCUUnicodeIgnoreCaseCategoryBlocksData:array[0..29] of pointer=( @PUCUUnicodeIgnoreCaseCategoryBlocks0, @PUCUUnicodeIgnoreCaseCategoryBlocks1, @PUCUUnicodeIgnoreCaseCategoryBlocks2, @PUCUUnicodeIgnoreCaseCategoryBlocks3, @PUCUUnicodeIgnoreCaseCategoryBlocks4, @PUCUUnicodeIgnoreCaseCategoryBlocks5, @PUCUUnicodeIgnoreCaseCategoryBlocks6, @PUCUUnicodeIgnoreCaseCategoryBlocks7, @PUCUUnicodeIgnoreCaseCategoryBlocks8, @PUCUUnicodeIgnoreCaseCategoryBlocks9, @PUCUUnicodeIgnoreCaseCategoryBlocks10, @PUCUUnicodeIgnoreCaseCategoryBlocks11, @PUCUUnicodeIgnoreCaseCategoryBlocks12, @PUCUUnicodeIgnoreCaseCategoryBlocks13, @PUCUUnicodeIgnoreCaseCategoryBlocks14, @PUCUUnicodeIgnoreCaseCategoryBlocks15, @PUCUUnicodeIgnoreCaseCategoryBlocks16, @PUCUUnicodeIgnoreCaseCategoryBlocks17, @PUCUUnicodeIgnoreCaseCategoryBlocks18, @PUCUUnicodeIgnoreCaseCategoryBlocks19, @PUCUUnicodeIgnoreCaseCategoryBlocks20, @PUCUUnicodeIgnoreCaseCategoryBlocks21, @PUCUUnicodeIgnoreCaseCategoryBlocks22, @PUCUUnicodeIgnoreCaseCategoryBlocks23, @PUCUUnicodeIgnoreCaseCategoryBlocks24, @PUCUUnicodeIgnoreCaseCategoryBlocks25, @PUCUUnicodeIgnoreCaseCategoryBlocks26, @PUCUUnicodeIgnoreCaseCategoryBlocks27, @PUCUUnicodeIgnoreCaseCategoryBlocks28, @PUCUUnicodeIgnoreCaseCategoryBlocks29 ); const PUCUUnicodeIgnoreCaseCategoryBlocksCounts:array[0..29] of longint=( 707, 180, 145, 9, 71, 510, 347, 5, 182, 64, 12, 72, 7, 1, 1, 2, 21, 3, 1, 19, 79, 76, 6, 187, 64, 21, 31, 184, 11, 10 ); const PUCUCountUnicodeScriptBlocks=163; const PUCUUnicodeScriptBlocks0:array[0..704] of TPUCUUnicodeCharRange=( (888,889), (896,899), (907,907), (909,909), (930,930), (1328,1328), (1367,1368), (1419,1420), (1424,1424), (1480,1487), (1515,1518), (1525,1535), (1806,1806), (1867,1868), (1970,1983), (2043,2044), (2094,2095), (2111,2111), (2140,2141), (2143,2143), (2155,2159), (2191,2191), (2194,2199), (2436,2436), (2445,2446), (2449,2450), (2473,2473), (2481,2481), (2483,2485), (2490,2491), (2501,2502), (2505,2506), (2511,2518), (2520,2523), (2526,2526), (2532,2533), (2559,2560), (2564,2564), (2571,2574), (2577,2578), (2601,2601), (2609,2609), (2612,2612), (2615,2615), (2618,2619), (2621,2621), (2627,2630), (2633,2634), (2638,2640), (2642,2648), (2653,2653), (2655,2661), (2679,2688), (2692,2692), (2702,2702), (2706,2706), (2729,2729), (2737,2737), (2740,2740), (2746,2747), (2758,2758), (2762,2762), (2766,2767), (2769,2783), (2788,2789), (2802,2808), (2816,2816), (2820,2820), (2829,2830), (2833,2834), (2857,2857), (2865,2865), (2868,2868), (2874,2875), (2885,2886), (2889,2890), (2894,2900), (2904,2907), (2910,2910), (2916,2917), (2936,2945), (2948,2948), (2955,2957), (2961,2961), (2966,2968), (2971,2971), (2973,2973), (2976,2978), (2981,2983), (2987,2989), (3002,3005), (3011,3013), (3017,3017), (3022,3023), (3025,3030), (3032,3045), (3067,3071), (3085,3085), (3089,3089), (3113,3113), (3130,3131), (3141,3141), (3145,3145), (3150,3156), (3159,3159), (3163,3164), (3166,3167), (3172,3173), (3184,3190), (3213,3213), (3217,3217), (3241,3241), (3252,3252), (3258,3259), (3269,3269), (3273,3273), (3278,3284), (3287,3292), (3295,3295), (3300,3301), (3312,3312), (3316,3327), (3341,3341), (3345,3345), (3397,3397), (3401,3401), (3408,3411), (3428,3429), (3456,3456), (3460,3460), (3479,3481), (3506,3506), (3516,3516), (3518,3519), (3527,3529), (3531,3534), (3541,3541), (3543,3543), (3552,3557), (3568,3569), (3573,3584), (3643,3646), (3676,3712), (3715,3715), (3717,3717), (3723,3723), (3748,3748), (3750,3750), (3774,3775), (3781,3781), (3783,3783), (3791,3791), (3802,3803), (3808,3839), (3912,3912), (3949,3952), (3992,3992), (4029,4029), (4045,4045), (4059,4095), (4294,4294), (4296,4300), (4302,4303), (4681,4681), (4686,4687), (4695,4695), (4697,4697), (4702,4703), (4745,4745), (4750,4751), (4785,4785), (4790,4791), (4799,4799), (4801,4801), (4806,4807), (4823,4823), (4881,4881), (4886,4887), (4955,4956), (4989,4991), (5018,5023), (5110,5111), (5118,5119), (5789,5791), (5881,5887), (5910,5918), (5943,5951), (5972,5983), (5997,5997), (6001,6001), (6004,6015), (6110,6111), (6122,6127), (6138,6143), (6170,6175), (6265,6271), (6315,6319), (6390,6399), (6431,6431), (6444,6447), (6460,6463), (6465,6467), (6510,6511), (6517,6527), (6572,6575), (6602,6607), (6619,6621), (6684,6685), (6751,6751), (6781,6782), (6794,6799), (6810,6815), (6830,6831), (6863,6911), (6989,6991), (7039,7039), (7156,7163), (7224,7226), (7242,7244), (7305,7311), (7355,7356), (7368,7375), (7419,7423), (7958,7959), (7966,7967), (8006,8007), (8014,8015), (8024,8024), (8026,8026), (8028,8028), (8030,8030), (8062,8063), (8117,8117), (8133,8133), (8148,8149), (8156,8156), (8176,8177), (8181,8181), (8191,8191), (8293,8293), (8306,8307), (8335,8335), (8349,8351), (8385,8399), (8433,8447), (8588,8591), (9255,9279), (9291,9311), (11124,11125), (11158,11158), (11508,11512), (11558,11558), (11560,11564), (11566,11567), (11624,11630), (11633,11646), (11671,11679), (11687,11687), (11695,11695), (11703,11703), (11711,11711), (11719,11719), (11727,11727), (11735,11735), (11743,11743), (11870,11903), (11930,11930), (12020,12031), (12246,12271), (12284,12287), (12352,12352), (12439,12440), (12544,12548), (12592,12592), (12687,12687), (12772,12783), (12831,12831), (42125,42127), (42183,42191), (42540,42559), (42744,42751), (42955,42959), (42962,42962), (42964,42964), (42970,42993), (43053,43055), (43066,43071), (43128,43135), (43206,43213), (43226,43231), (43348,43358), (43389,43391), (43470,43470), (43482,43485), (43519,43519), (43575,43583), (43598,43599), (43610,43611), (43715,43738), (43767,43776), (43783,43784), (43791,43792), (43799,43807), (43815,43815), (43823,43823), (43884,43887), (44014,44015), (44026,44031), (55204,55215), (55239,55242), (55292,63743), (64110,64111), (64218,64255), (64263,64274), (64280,64284), (64311,64311), (64317,64317), (64319,64319), (64322,64322), (64325,64325), (64451,64466), (64912,64913), (64968,64974), (64976,65007), (65050,65055), (65107,65107), (65127,65127), (65132,65135), (65141,65141), (65277,65278), (65280,65280), (65471,65473), (65480,65481), (65488,65489), (65496,65497), (65501,65503), (65511,65511), (65519,65528), (65534,65535), (65548,65548), (65575,65575), (65595,65595), (65598,65598), (65614,65615), (65630,65663), (65787,65791), (65795,65798), (65844,65846), (65935,65935), (65949,65951), (65953,65999), (66046,66175), (66205,66207), (66257,66271), (66300,66303), (66340,66348), (66379,66383), (66427,66431), (66462,66462), (66500,66503), (66518,66559), (66718,66719), (66730,66735), (66772,66775), (66812,66815), (66856,66863), (66916,66926), (66939,66939), (66955,66955), (66963,66963), (66966,66966), (66978,66978), (66994,66994), (67002,67002), (67005,67071), (67383,67391), (67414,67423), (67432,67455), (67462,67462), (67505,67505), (67515,67583), (67590,67591), (67593,67593), (67638,67638), (67641,67643), (67645,67646), (67670,67670), (67743,67750), (67760,67807), (67827,67827), (67830,67834), (67868,67870), (67898,67902), (67904,67967), (68024,68027), (68048,68049), (68100,68100), (68103,68107), (68116,68116), (68120,68120), (68150,68151), (68155,68158), (68169,68175), (68185,68191), (68256,68287), (68327,68330), (68343,68351), (68406,68408), (68438,68439), (68467,68471), (68498,68504), (68509,68520), (68528,68607), (68681,68735), (68787,68799), (68851,68857), (68904,68911), (68922,69215), (69247,69247), (69290,69290), (69294,69295), (69298,69372), (69416,69423), (69466,69487), (69514,69551), (69580,69599), (69623,69631), (69710,69713), (69750,69758), (69827,69836), (69838,69839), (69865,69871), (69882,69887), (69941,69941), (69960,69967), (70007,70015), (70112,70112), (70133,70143), (70162,70162), (70210,70271), (70279,70279), (70281,70281), (70286,70286), (70302,70302), (70314,70319), (70379,70383), (70394,70399), (70404,70404), (70413,70414), (70417,70418), (70441,70441), (70449,70449), (70452,70452), (70458,70458), (70469,70470), (70473,70474), (70478,70479), (70481,70486), (70488,70492), (70500,70501), (70509,70511), (70517,70655), (70748,70748), (70754,70783), (70856,70863), (70874,71039), (71094,71095), (71134,71167), (71237,71247), (71258,71263), (71277,71295), (71354,71359), (71370,71423), (71451,71452), (71468,71471), (71495,71679), (71740,71839), (71923,71934), (71943,71944), (71946,71947), (71956,71956), (71959,71959), (71990,71990), (71993,71994), (72007,72015), (72026,72095), (72104,72105), (72152,72153), (72165,72191), (72264,72271), (72355,72367), (72441,72447), (72458,72703), (72713,72713), (72759,72759), (72774,72783), (72813,72815), (72848,72849), (72872,72872), (72887,72959), (72967,72967), (72970,72970), (73015,73017), (73019,73019), (73022,73022), (73032,73039), (73050,73055), (73062,73062), (73065,73065), (73103,73103), (73106,73106), (73113,73119), (73130,73439), (73465,73471), (73489,73489), (73531,73533), (73562,73647), (73649,73663), (73714,73726), (74650,74751), (74863,74863), (74869,74879), (75076,77711), (77811,77823), (78934,82943), (83527,92159), (92729,92735), (92767,92767), (92778,92781), (92863,92863), (92874,92879), (92910,92911), (92918,92927), (92998,93007), (93018,93018), (93026,93026), (93048,93052), (93072,93759), (93851,93951), (94027,94030), (94088,94094), (94112,94175), (94181,94191), (94194,94207), (100344,100351), (101590,101631), (101641,110575), (110580,110580), (110588,110588), (110591,110591), (110883,110897), (110899,110927), (110931,110932), (110934,110947), (110952,110959), (111356,113663), (113771,113775), (113789,113791), (113801,113807), (113818,113819), (113828,118527), (118574,118575), (118599,118607), (118724,118783), (119030,119039), (119079,119080), (119275,119295), (119366,119487), (119508,119519), (119540,119551), (119639,119647), (119673,119807), (119893,119893), (119965,119965), (119968,119969), (119971,119972), (119975,119976), (119981,119981), (119994,119994), (119996,119996), (120004,120004), (120070,120070), (120075,120076), (120085,120085), (120093,120093), (120122,120122), (120127,120127), (120133,120133), (120135,120137), (120145,120145), (120486,120487), (120780,120781), (121484,121498), (121504,121504), (121520,122623), (122655,122660), (122667,122879), (122887,122887), (122905,122906), (122914,122914), (122917,122917), (122923,122927), (122990,123022), (123024,123135), (123181,123183), (123198,123199), (123210,123213), (123216,123535), (123567,123583), (123642,123646), (123648,124111), (124154,124895), (124903,124903), (124908,124908), (124911,124911), (124927,124927), (125125,125126), (125143,125183), (125260,125263), (125274,125277), (125280,126064), (126133,126208), (126270,126463), (126468,126468), (126496,126496), (126499,126499), (126501,126502), (126504,126504), (126515,126515), (126520,126520), (126522,126522), (126524,126529), (126531,126534), (126536,126536), (126538,126538), (126540,126540), (126544,126544), (126547,126547), (126549,126550), (126552,126552), (126554,126554), (126556,126556), (126558,126558), (126560,126560), (126563,126563), (126565,126566), (126571,126571), (126579,126579), (126584,126584), (126589,126589), (126591,126591), (126602,126602), (126620,126624), (126628,126628), (126634,126634), (126652,126703), (126706,126975), (127020,127023), (127124,127135), (127151,127152), (127168,127168), (127184,127184), (127222,127231), (127406,127461), (127491,127503), (127548,127551), (127561,127567), (127570,127583), (127590,127743), (128728,128731), (128749,128751), (128765,128767), (128887,128890), (128986,128991), (129004,129007), (129009,129023), (129036,129039), (129096,129103), (129114,129119), (129160,129167), (129198,129199), (129202,129279), (129620,129631), (129646,129647), (129661,129663), (129673,129679), (129726,129726), (129734,129741), (129756,129759), (129769,129775), (129785,129791), (129939,129939), (129995,130031), (130042,131071), (173792,173823), (177978,177983), (178206,178207), (183970,183983), (191457,194559), (195102,196607), (201547,201551), (205744,917504), (917506,917535), (917632,917759), (918000,1114111) ); const PUCUUnicodeScriptBlocks1:array[0..172] of TPUCUUnicodeCharRange=( (0,64), (91,96), (123,169), (171,185), (187,191), (215,215), (247,247), (697,735), (741,745), (748,767), (884,884), (894,894), (901,901), (903,903), (1541,1541), (1548,1548), (1563,1563), (1567,1567), (1600,1600), (1757,1757), (2274,2274), (2404,2405), (3647,3647), (4053,4056), (4347,4347), (5867,5869), (5941,5942), (6146,6147), (6149,6149), (7379,7379), (7393,7393), (7401,7404), (7406,7411), (7413,7415), (7418,7418), (8192,8203), (8206,8292), (8294,8304), (8308,8318), (8320,8334), (8352,8384), (8448,8485), (8487,8489), (8492,8497), (8499,8525), (8527,8543), (8585,8587), (8592,9254), (9280,9290), (9312,10239), (10496,11123), (11126,11157), (11159,11263), (11776,11869), (12272,12283), (12288,12292), (12294,12294), (12296,12320), (12336,12343), (12348,12351), (12443,12444), (12448,12448), (12539,12540), (12688,12703), (12736,12771), (12832,12895), (12927,13007), (13055,13055), (13144,13311), (19904,19967), (42752,42785), (42888,42890), (43056,43065), (43310,43310), (43471,43471), (43867,43867), (43882,43883), (64830,64831), (65040,65049), (65072,65106), (65108,65126), (65128,65131), (65279,65279), (65281,65312), (65339,65344), (65371,65381), (65392,65392), (65438,65439), (65504,65510), (65512,65518), (65529,65533), (65792,65794), (65799,65843), (65847,65855), (65936,65948), (66000,66044), (66273,66299), (113824,113827), (118608,118723), (118784,119029), (119040,119078), (119081,119142), (119146,119162), (119171,119172), (119180,119209), (119214,119274), (119488,119507), (119520,119539), (119552,119638), (119648,119672), (119808,119892), (119894,119964), (119966,119967), (119970,119970), (119973,119974), (119977,119980), (119982,119993), (119995,119995), (119997,120003), (120005,120069), (120071,120074), (120077,120084), (120086,120092), (120094,120121), (120123,120126), (120128,120132), (120134,120134), (120138,120144), (120146,120485), (120488,120779), (120782,120831), (126065,126132), (126209,126269), (126976,127019), (127024,127123), (127136,127150), (127153,127167), (127169,127183), (127185,127221), (127232,127405), (127462,127487), (127489,127490), (127504,127547), (127552,127560), (127568,127569), (127584,127589), (127744,128727), (128732,128748), (128752,128764), (128768,128886), (128891,128985), (128992,129003), (129008,129008), (129024,129035), (129040,129095), (129104,129113), (129120,129159), (129168,129197), (129200,129201), (129280,129619), (129632,129645), (129648,129660), (129664,129672), (129680,129725), (129727,129733), (129742,129755), (129760,129768), (129776,129784), (129792,129938), (129940,129994), (130032,130041), (917505,917505), (917536,917631) ); const PUCUUnicodeScriptBlocks2:array[0..38] of TPUCUUnicodeCharRange=( (65,90), (97,122), (170,170), (186,186), (192,214), (216,246), (248,696), (736,740), (7424,7461), (7468,7516), (7522,7525), (7531,7543), (7545,7614), (7680,7935), (8305,8305), (8319,8319), (8336,8348), (8490,8491), (8498,8498), (8526,8526), (8544,8584), (11360,11391), (42786,42887), (42891,42954), (42960,42961), (42963,42963), (42965,42969), (42994,43007), (43824,43866), (43868,43876), (43878,43881), (64256,64262), (65313,65338), (65345,65370), (67456,67461), (67463,67504), (67506,67514), (122624,122654), (122661,122666) ); const PUCUUnicodeScriptBlocks3:array[0..35] of TPUCUUnicodeCharRange=( (880,883), (885,887), (890,893), (895,895), (900,900), (902,902), (904,906), (908,908), (910,929), (931,993), (1008,1023), (7462,7466), (7517,7521), (7526,7530), (7615,7615), (7936,7957), (7960,7965), (7968,8005), (8008,8013), (8016,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8116), (8118,8132), (8134,8147), (8150,8155), (8157,8175), (8178,8180), (8182,8190), (8486,8486), (43877,43877), (65856,65934), (65952,65952), (119296,119365) ); const PUCUUnicodeScriptBlocks4:array[0..9] of TPUCUUnicodeCharRange=( (1024,1156), (1159,1327), (7296,7304), (7467,7467), (7544,7544), (11744,11775), (42560,42655), (65070,65071), (122928,122989), (123023,123023) ); const PUCUUnicodeScriptBlocks5:array[0..3] of TPUCUUnicodeCharRange=( (1329,1366), (1369,1418), (1421,1423), (64275,64279) ); const PUCUUnicodeScriptBlocks6:array[0..8] of TPUCUUnicodeCharRange=( (1425,1479), (1488,1514), (1519,1524), (64285,64310), (64312,64316), (64318,64318), (64320,64321), (64323,64324), (64326,64335) ); const PUCUUnicodeScriptBlocks7:array[0..57] of TPUCUUnicodeCharRange=( (1536,1540), (1542,1547), (1549,1562), (1564,1566), (1568,1599), (1601,1610), (1622,1647), (1649,1756), (1758,1791), (1872,1919), (2160,2190), (2192,2193), (2200,2273), (2275,2303), (64336,64450), (64467,64829), (64832,64911), (64914,64967), (64975,64975), (65008,65023), (65136,65140), (65142,65276), (69216,69246), (69373,69375), (126464,126467), (126469,126495), (126497,126498), (126500,126500), (126503,126503), (126505,126514), (126516,126519), (126521,126521), (126523,126523), (126530,126530), (126535,126535), (126537,126537), (126539,126539), (126541,126543), (126545,126546), (126548,126548), (126551,126551), (126553,126553), (126555,126555), (126557,126557), (126559,126559), (126561,126562), (126564,126564), (126567,126570), (126572,126578), (126580,126583), (126585,126588), (126590,126590), (126592,126601), (126603,126619), (126625,126627), (126629,126633), (126635,126651), (126704,126705) ); const PUCUUnicodeScriptBlocks8:array[0..3] of TPUCUUnicodeCharRange=( (1792,1805), (1807,1866), (1869,1871), (2144,2154) ); const PUCUUnicodeScriptBlocks9:array[0..0] of TPUCUUnicodeCharRange=( (1920,1969) ); const PUCUUnicodeScriptBlocks10:array[0..4] of TPUCUUnicodeCharRange=( (2304,2384), (2389,2403), (2406,2431), (43232,43263), (72448,72457) ); const PUCUUnicodeScriptBlocks11:array[0..13] of TPUCUUnicodeCharRange=( (2432,2435), (2437,2444), (2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489), (2492,2500), (2503,2504), (2507,2510), (2519,2519), (2524,2525), (2527,2531), (2534,2558) ); const PUCUUnicodeScriptBlocks12:array[0..15] of TPUCUUnicodeCharRange=( (2561,2563), (2565,2570), (2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614), (2616,2617), (2620,2620), (2622,2626), (2631,2632), (2635,2637), (2641,2641), (2649,2652), (2654,2654), (2662,2678) ); const PUCUUnicodeScriptBlocks13:array[0..13] of TPUCUUnicodeCharRange=( (2689,2691), (2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739), (2741,2745), (2748,2757), (2759,2761), (2763,2765), (2768,2768), (2784,2787), (2790,2801), (2809,2815) ); const PUCUUnicodeScriptBlocks14:array[0..13] of TPUCUUnicodeCharRange=( (2817,2819), (2821,2828), (2831,2832), (2835,2856), (2858,2864), (2866,2867), (2869,2873), (2876,2884), (2887,2888), (2891,2893), (2901,2903), (2908,2909), (2911,2915), (2918,2935) ); const PUCUUnicodeScriptBlocks15:array[0..17] of TPUCUUnicodeCharRange=( (2946,2947), (2949,2954), (2958,2960), (2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986), (2990,3001), (3006,3010), (3014,3016), (3018,3021), (3024,3024), (3031,3031), (3046,3066), (73664,73713), (73727,73727) ); const PUCUUnicodeScriptBlocks16:array[0..12] of TPUCUUnicodeCharRange=( (3072,3084), (3086,3088), (3090,3112), (3114,3129), (3132,3140), (3142,3144), (3146,3149), (3157,3158), (3160,3162), (3165,3165), (3168,3171), (3174,3183), (3191,3199) ); const PUCUUnicodeScriptBlocks17:array[0..12] of TPUCUUnicodeCharRange=( (3200,3212), (3214,3216), (3218,3240), (3242,3251), (3253,3257), (3260,3268), (3270,3272), (3274,3277), (3285,3286), (3293,3294), (3296,3299), (3302,3311), (3313,3315) ); const PUCUUnicodeScriptBlocks18:array[0..6] of TPUCUUnicodeCharRange=( (3328,3340), (3342,3344), (3346,3396), (3398,3400), (3402,3407), (3412,3427), (3430,3455) ); const PUCUUnicodeScriptBlocks19:array[0..12] of TPUCUUnicodeCharRange=( (3457,3459), (3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526), (3530,3530), (3535,3540), (3542,3542), (3544,3551), (3558,3567), (3570,3572), (70113,70132) ); const PUCUUnicodeScriptBlocks20:array[0..1] of TPUCUUnicodeCharRange=( (3585,3642), (3648,3675) ); const PUCUUnicodeScriptBlocks21:array[0..10] of TPUCUUnicodeCharRange=( (3713,3714), (3716,3716), (3718,3722), (3724,3747), (3749,3749), (3751,3773), (3776,3780), (3782,3782), (3784,3790), (3792,3801), (3804,3807) ); const PUCUUnicodeScriptBlocks22:array[0..6] of TPUCUUnicodeCharRange=( (3840,3911), (3913,3948), (3953,3991), (3993,4028), (4030,4044), (4046,4052), (4057,4058) ); const PUCUUnicodeScriptBlocks23:array[0..2] of TPUCUUnicodeCharRange=( (4096,4255), (43488,43518), (43616,43647) ); const PUCUUnicodeScriptBlocks24:array[0..9] of TPUCUUnicodeCharRange=( (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4348,4351), (7312,7354), (7357,7359), (11520,11557), (11559,11559), (11565,11565) ); const PUCUUnicodeScriptBlocks25:array[0..13] of TPUCUUnicodeCharRange=( (4352,4607), (12334,12335), (12593,12686), (12800,12830), (12896,12926), (43360,43388), (44032,55203), (55216,55238), (55243,55291), (65440,65470), (65474,65479), (65482,65487), (65490,65495), (65498,65500) ); const PUCUUnicodeScriptBlocks26:array[0..35] of TPUCUUnicodeCharRange=( (4608,4680), (4682,4685), (4688,4694), (4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784), (4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822), (4824,4880), (4882,4885), (4888,4954), (4957,4988), (4992,5017), (11648,11670), (11680,11686), (11688,11694), (11696,11702), (11704,11710), (11712,11718), (11720,11726), (11728,11734), (11736,11742), (43777,43782), (43785,43790), (43793,43798), (43808,43814), (43816,43822), (124896,124902), (124904,124907), (124909,124910), (124912,124926) ); const PUCUUnicodeScriptBlocks27:array[0..2] of TPUCUUnicodeCharRange=( (5024,5109), (5112,5117), (43888,43967) ); const PUCUUnicodeScriptBlocks28:array[0..2] of TPUCUUnicodeCharRange=( (5120,5759), (6320,6389), (72368,72383) ); const PUCUUnicodeScriptBlocks29:array[0..0] of TPUCUUnicodeCharRange=( (5760,5788) ); const PUCUUnicodeScriptBlocks30:array[0..1] of TPUCUUnicodeCharRange=( (5792,5866), (5870,5880) ); const PUCUUnicodeScriptBlocks31:array[0..3] of TPUCUUnicodeCharRange=( (6016,6109), (6112,6121), (6128,6137), (6624,6655) ); const PUCUUnicodeScriptBlocks32:array[0..5] of TPUCUUnicodeCharRange=( (6144,6145), (6148,6148), (6150,6169), (6176,6264), (6272,6314), (71264,71276) ); const PUCUUnicodeScriptBlocks33:array[0..5] of TPUCUUnicodeCharRange=( (12353,12438), (12445,12447), (110593,110879), (110898,110898), (110928,110930), (127488,127488) ); const PUCUUnicodeScriptBlocks34:array[0..13] of TPUCUUnicodeCharRange=( (12449,12538), (12541,12543), (12784,12799), (13008,13054), (13056,13143), (65382,65391), (65393,65437), (110576,110579), (110581,110587), (110589,110590), (110592,110592), (110880,110882), (110933,110933), (110948,110951) ); const PUCUUnicodeScriptBlocks35:array[0..2] of TPUCUUnicodeCharRange=( (746,747), (12549,12591), (12704,12735) ); const PUCUUnicodeScriptBlocks36:array[0..20] of TPUCUUnicodeCharRange=( (11904,11929), (11931,12019), (12032,12245), (12293,12293), (12295,12295), (12321,12329), (12344,12347), (13312,19903), (19968,40959), (63744,64109), (64112,64217), (94178,94179), (94192,94193), (131072,173791), (173824,177977), (177984,178205), (178208,183969), (183984,191456), (194560,195101), (196608,201546), (201552,205743) ); const PUCUUnicodeScriptBlocks37:array[0..1] of TPUCUUnicodeCharRange=( (40960,42124), (42128,42182) ); const PUCUUnicodeScriptBlocks38:array[0..1] of TPUCUUnicodeCharRange=( (66304,66339), (66349,66351) ); const PUCUUnicodeScriptBlocks39:array[0..0] of TPUCUUnicodeCharRange=( (66352,66378) ); const PUCUUnicodeScriptBlocks40:array[0..0] of TPUCUUnicodeCharRange=( (66560,66639) ); const PUCUUnicodeScriptBlocks41:array[0..28] of TPUCUUnicodeCharRange=( (768,879), (1157,1158), (1611,1621), (1648,1648), (2385,2388), (6832,6862), (7376,7378), (7380,7392), (7394,7400), (7405,7405), (7412,7412), (7416,7417), (7616,7679), (8204,8205), (8400,8432), (12330,12333), (12441,12442), (65024,65039), (65056,65069), (66045,66045), (66272,66272), (70459,70459), (118528,118573), (118576,118598), (119143,119145), (119163,119170), (119173,119179), (119210,119213), (917760,917999) ); const PUCUUnicodeScriptBlocks42:array[0..1] of TPUCUUnicodeCharRange=( (5888,5909), (5919,5919) ); const PUCUUnicodeScriptBlocks43:array[0..0] of TPUCUUnicodeCharRange=( (5920,5940) ); const PUCUUnicodeScriptBlocks44:array[0..0] of TPUCUUnicodeCharRange=( (5952,5971) ); const PUCUUnicodeScriptBlocks45:array[0..2] of TPUCUUnicodeCharRange=( (5984,5996), (5998,6000), (6002,6003) ); const PUCUUnicodeScriptBlocks46:array[0..4] of TPUCUUnicodeCharRange=( (6400,6430), (6432,6443), (6448,6459), (6464,6464), (6468,6479) ); const PUCUUnicodeScriptBlocks47:array[0..1] of TPUCUUnicodeCharRange=( (6480,6509), (6512,6516) ); const PUCUUnicodeScriptBlocks48:array[0..6] of TPUCUUnicodeCharRange=( (65536,65547), (65549,65574), (65576,65594), (65596,65597), (65599,65613), (65616,65629), (65664,65786) ); const PUCUUnicodeScriptBlocks49:array[0..1] of TPUCUUnicodeCharRange=( (66432,66461), (66463,66463) ); const PUCUUnicodeScriptBlocks50:array[0..0] of TPUCUUnicodeCharRange=( (66640,66687) ); const PUCUUnicodeScriptBlocks51:array[0..1] of TPUCUUnicodeCharRange=( (66688,66717), (66720,66729) ); const PUCUUnicodeScriptBlocks52:array[0..5] of TPUCUUnicodeCharRange=( (67584,67589), (67592,67592), (67594,67637), (67639,67640), (67644,67644), (67647,67647) ); const PUCUUnicodeScriptBlocks53:array[0..0] of TPUCUUnicodeCharRange=( (10240,10495) ); const PUCUUnicodeScriptBlocks54:array[0..1] of TPUCUUnicodeCharRange=( (6656,6683), (6686,6687) ); const PUCUUnicodeScriptBlocks55:array[0..2] of TPUCUUnicodeCharRange=( (994,1007), (11392,11507), (11513,11519) ); const PUCUUnicodeScriptBlocks56:array[0..3] of TPUCUUnicodeCharRange=( (6528,6571), (6576,6601), (6608,6618), (6622,6623) ); const PUCUUnicodeScriptBlocks57:array[0..5] of TPUCUUnicodeCharRange=( (11264,11359), (122880,122886), (122888,122904), (122907,122913), (122915,122916), (122918,122922) ); const PUCUUnicodeScriptBlocks58:array[0..2] of TPUCUUnicodeCharRange=( (11568,11623), (11631,11632), (11647,11647) ); const PUCUUnicodeScriptBlocks59:array[0..0] of TPUCUUnicodeCharRange=( (43008,43052) ); const PUCUUnicodeScriptBlocks60:array[0..1] of TPUCUUnicodeCharRange=( (66464,66499), (66504,66517) ); const PUCUUnicodeScriptBlocks61:array[0..7] of TPUCUUnicodeCharRange=( (68096,68099), (68101,68102), (68108,68115), (68117,68119), (68121,68149), (68152,68154), (68159,68168), (68176,68184) ); const PUCUUnicodeScriptBlocks62:array[0..1] of TPUCUUnicodeCharRange=( (6912,6988), (6992,7038) ); const PUCUUnicodeScriptBlocks63:array[0..3] of TPUCUUnicodeCharRange=( (73728,74649), (74752,74862), (74864,74868), (74880,75075) ); const PUCUUnicodeScriptBlocks64:array[0..1] of TPUCUUnicodeCharRange=( (67840,67867), (67871,67871) ); const PUCUUnicodeScriptBlocks65:array[0..0] of TPUCUUnicodeCharRange=( (43072,43127) ); const PUCUUnicodeScriptBlocks66:array[0..1] of TPUCUUnicodeCharRange=( (1984,2042), (2045,2047) ); const PUCUUnicodeScriptBlocks67:array[0..1] of TPUCUUnicodeCharRange=( (7040,7103), (7360,7367) ); const PUCUUnicodeScriptBlocks68:array[0..2] of TPUCUUnicodeCharRange=( (7168,7223), (7227,7241), (7245,7247) ); const PUCUUnicodeScriptBlocks69:array[0..0] of TPUCUUnicodeCharRange=( (7248,7295) ); const PUCUUnicodeScriptBlocks70:array[0..0] of TPUCUUnicodeCharRange=( (42240,42539) ); const PUCUUnicodeScriptBlocks71:array[0..1] of TPUCUUnicodeCharRange=( (43136,43205), (43214,43225) ); const PUCUUnicodeScriptBlocks72:array[0..1] of TPUCUUnicodeCharRange=( (43264,43309), (43311,43311) ); const PUCUUnicodeScriptBlocks73:array[0..1] of TPUCUUnicodeCharRange=( (43312,43347), (43359,43359) ); const PUCUUnicodeScriptBlocks74:array[0..0] of TPUCUUnicodeCharRange=( (66176,66204) ); const PUCUUnicodeScriptBlocks75:array[0..0] of TPUCUUnicodeCharRange=( (66208,66256) ); const PUCUUnicodeScriptBlocks76:array[0..1] of TPUCUUnicodeCharRange=( (67872,67897), (67903,67903) ); const PUCUUnicodeScriptBlocks77:array[0..3] of TPUCUUnicodeCharRange=( (43520,43574), (43584,43597), (43600,43609), (43612,43615) ); const PUCUUnicodeScriptBlocks78:array[0..4] of TPUCUUnicodeCharRange=( (6688,6750), (6752,6780), (6783,6793), (6800,6809), (6816,6829) ); const PUCUUnicodeScriptBlocks79:array[0..1] of TPUCUUnicodeCharRange=( (43648,43714), (43739,43743) ); const PUCUUnicodeScriptBlocks80:array[0..1] of TPUCUUnicodeCharRange=( (68352,68405), (68409,68415) ); const PUCUUnicodeScriptBlocks81:array[0..0] of TPUCUUnicodeCharRange=( (77824,78933) ); const PUCUUnicodeScriptBlocks82:array[0..1] of TPUCUUnicodeCharRange=( (2048,2093), (2096,2110) ); const PUCUUnicodeScriptBlocks83:array[0..1] of TPUCUUnicodeCharRange=( (42192,42239), (73648,73648) ); const PUCUUnicodeScriptBlocks84:array[0..1] of TPUCUUnicodeCharRange=( (42656,42743), (92160,92728) ); const PUCUUnicodeScriptBlocks85:array[0..2] of TPUCUUnicodeCharRange=( (43392,43469), (43472,43481), (43486,43487) ); const PUCUUnicodeScriptBlocks86:array[0..2] of TPUCUUnicodeCharRange=( (43744,43766), (43968,44013), (44016,44025) ); const PUCUUnicodeScriptBlocks87:array[0..1] of TPUCUUnicodeCharRange=( (67648,67669), (67671,67679) ); const PUCUUnicodeScriptBlocks88:array[0..0] of TPUCUUnicodeCharRange=( (68192,68223) ); const PUCUUnicodeScriptBlocks89:array[0..1] of TPUCUUnicodeCharRange=( (68416,68437), (68440,68447) ); const PUCUUnicodeScriptBlocks90:array[0..1] of TPUCUUnicodeCharRange=( (68448,68466), (68472,68479) ); const PUCUUnicodeScriptBlocks91:array[0..0] of TPUCUUnicodeCharRange=( (68608,68680) ); const PUCUUnicodeScriptBlocks92:array[0..1] of TPUCUUnicodeCharRange=( (69760,69826), (69837,69837) ); const PUCUUnicodeScriptBlocks93:array[0..1] of TPUCUUnicodeCharRange=( (7104,7155), (7164,7167) ); const PUCUUnicodeScriptBlocks94:array[0..2] of TPUCUUnicodeCharRange=( (69632,69709), (69714,69749), (69759,69759) ); const PUCUUnicodeScriptBlocks95:array[0..1] of TPUCUUnicodeCharRange=( (2112,2139), (2142,2142) ); const PUCUUnicodeScriptBlocks96:array[0..1] of TPUCUUnicodeCharRange=( (69888,69940), (69942,69959) ); const PUCUUnicodeScriptBlocks97:array[0..2] of TPUCUUnicodeCharRange=( (68000,68023), (68028,68047), (68050,68095) ); const PUCUUnicodeScriptBlocks98:array[0..0] of TPUCUUnicodeCharRange=( (67968,67999) ); const PUCUUnicodeScriptBlocks99:array[0..2] of TPUCUUnicodeCharRange=( (93952,94026), (94031,94087), (94095,94111) ); const PUCUUnicodeScriptBlocks100:array[0..0] of TPUCUUnicodeCharRange=( (70016,70111) ); const PUCUUnicodeScriptBlocks101:array[0..1] of TPUCUUnicodeCharRange=( (69840,69864), (69872,69881) ); const PUCUUnicodeScriptBlocks102:array[0..1] of TPUCUUnicodeCharRange=( (71296,71353), (71360,71369) ); const PUCUUnicodeScriptBlocks103:array[0..1] of TPUCUUnicodeCharRange=( (66864,66915), (66927,66927) ); const PUCUUnicodeScriptBlocks104:array[0..1] of TPUCUUnicodeCharRange=( (92880,92909), (92912,92917) ); const PUCUUnicodeScriptBlocks105:array[0..4] of TPUCUUnicodeCharRange=( (113664,113770), (113776,113788), (113792,113800), (113808,113817), (113820,113823) ); const PUCUUnicodeScriptBlocks106:array[0..0] of TPUCUUnicodeCharRange=( (66816,66855) ); const PUCUUnicodeScriptBlocks107:array[0..14] of TPUCUUnicodeCharRange=( (70400,70403), (70405,70412), (70415,70416), (70419,70440), (70442,70448), (70450,70451), (70453,70457), (70460,70468), (70471,70472), (70475,70477), (70480,70480), (70487,70487), (70493,70499), (70502,70508), (70512,70516) ); const PUCUUnicodeScriptBlocks108:array[0..4] of TPUCUUnicodeCharRange=( (92928,92997), (93008,93017), (93019,93025), (93027,93047), (93053,93071) ); const PUCUUnicodeScriptBlocks109:array[0..1] of TPUCUUnicodeCharRange=( (70144,70161), (70163,70209) ); const PUCUUnicodeScriptBlocks110:array[0..2] of TPUCUUnicodeCharRange=( (67072,67382), (67392,67413), (67424,67431) ); const PUCUUnicodeScriptBlocks111:array[0..0] of TPUCUUnicodeCharRange=( (69968,70006) ); const PUCUUnicodeScriptBlocks112:array[0..1] of TPUCUUnicodeCharRange=( (68288,68326), (68331,68342) ); const PUCUUnicodeScriptBlocks113:array[0..1] of TPUCUUnicodeCharRange=( (124928,125124), (125127,125142) ); const PUCUUnicodeScriptBlocks114:array[0..1] of TPUCUUnicodeCharRange=( (71168,71236), (71248,71257) ); const PUCUUnicodeScriptBlocks115:array[0..2] of TPUCUUnicodeCharRange=( (92736,92766), (92768,92777), (92782,92783) ); const PUCUUnicodeScriptBlocks116:array[0..0] of TPUCUUnicodeCharRange=( (68224,68255) ); const PUCUUnicodeScriptBlocks117:array[0..1] of TPUCUUnicodeCharRange=( (67712,67742), (67751,67759) ); const PUCUUnicodeScriptBlocks118:array[0..0] of TPUCUUnicodeCharRange=( (67680,67711) ); const PUCUUnicodeScriptBlocks119:array[0..0] of TPUCUUnicodeCharRange=( (72384,72440) ); const PUCUUnicodeScriptBlocks120:array[0..0] of TPUCUUnicodeCharRange=( (66384,66426) ); const PUCUUnicodeScriptBlocks121:array[0..2] of TPUCUUnicodeCharRange=( (68480,68497), (68505,68508), (68521,68527) ); const PUCUUnicodeScriptBlocks122:array[0..1] of TPUCUUnicodeCharRange=( (71040,71093), (71096,71133) ); const PUCUUnicodeScriptBlocks123:array[0..1] of TPUCUUnicodeCharRange=( (70320,70378), (70384,70393) ); const PUCUUnicodeScriptBlocks124:array[0..1] of TPUCUUnicodeCharRange=( (70784,70855), (70864,70873) ); const PUCUUnicodeScriptBlocks125:array[0..1] of TPUCUUnicodeCharRange=( (71840,71922), (71935,71935) ); const PUCUUnicodeScriptBlocks126:array[0..2] of TPUCUUnicodeCharRange=( (71424,71450), (71453,71467), (71472,71494) ); const PUCUUnicodeScriptBlocks127:array[0..0] of TPUCUUnicodeCharRange=( (82944,83526) ); const PUCUUnicodeScriptBlocks128:array[0..2] of TPUCUUnicodeCharRange=( (67808,67826), (67828,67829), (67835,67839) ); const PUCUUnicodeScriptBlocks129:array[0..4] of TPUCUUnicodeCharRange=( (70272,70278), (70280,70280), (70282,70285), (70287,70301), (70303,70313) ); const PUCUUnicodeScriptBlocks130:array[0..2] of TPUCUUnicodeCharRange=( (68736,68786), (68800,68850), (68858,68863) ); const PUCUUnicodeScriptBlocks131:array[0..2] of TPUCUUnicodeCharRange=( (120832,121483), (121499,121503), (121505,121519) ); const PUCUUnicodeScriptBlocks132:array[0..2] of TPUCUUnicodeCharRange=( (125184,125259), (125264,125273), (125278,125279) ); const PUCUUnicodeScriptBlocks133:array[0..3] of TPUCUUnicodeCharRange=( (72704,72712), (72714,72758), (72760,72773), (72784,72812) ); const PUCUUnicodeScriptBlocks134:array[0..2] of TPUCUUnicodeCharRange=( (72816,72847), (72850,72871), (72873,72886) ); const PUCUUnicodeScriptBlocks135:array[0..1] of TPUCUUnicodeCharRange=( (70656,70747), (70749,70753) ); const PUCUUnicodeScriptBlocks136:array[0..1] of TPUCUUnicodeCharRange=( (66736,66771), (66776,66811) ); const PUCUUnicodeScriptBlocks137:array[0..3] of TPUCUUnicodeCharRange=( (94176,94176), (94208,100343), (100352,101119), (101632,101640) ); const PUCUUnicodeScriptBlocks138:array[0..6] of TPUCUUnicodeCharRange=( (72960,72966), (72968,72969), (72971,73014), (73018,73018), (73020,73021), (73023,73031), (73040,73049) ); const PUCUUnicodeScriptBlocks139:array[0..1] of TPUCUUnicodeCharRange=( (94177,94177), (110960,111355) ); const PUCUUnicodeScriptBlocks140:array[0..0] of TPUCUUnicodeCharRange=( (72272,72354) ); const PUCUUnicodeScriptBlocks141:array[0..0] of TPUCUUnicodeCharRange=( (72192,72263) ); const PUCUUnicodeScriptBlocks142:array[0..0] of TPUCUUnicodeCharRange=( (71680,71739) ); const PUCUUnicodeScriptBlocks143:array[0..5] of TPUCUUnicodeCharRange=( (73056,73061), (73063,73064), (73066,73102), (73104,73105), (73107,73112), (73120,73129) ); const PUCUUnicodeScriptBlocks144:array[0..0] of TPUCUUnicodeCharRange=( (73440,73464) ); const PUCUUnicodeScriptBlocks145:array[0..0] of TPUCUUnicodeCharRange=( (93760,93850) ); const PUCUUnicodeScriptBlocks146:array[0..1] of TPUCUUnicodeCharRange=( (68864,68903), (68912,68921) ); const PUCUUnicodeScriptBlocks147:array[0..0] of TPUCUUnicodeCharRange=( (69424,69465) ); const PUCUUnicodeScriptBlocks148:array[0..0] of TPUCUUnicodeCharRange=( (69376,69415) ); const PUCUUnicodeScriptBlocks149:array[0..0] of TPUCUUnicodeCharRange=( (69600,69622) ); const PUCUUnicodeScriptBlocks150:array[0..2] of TPUCUUnicodeCharRange=( (72096,72103), (72106,72151), (72154,72164) ); const PUCUUnicodeScriptBlocks151:array[0..3] of TPUCUUnicodeCharRange=( (123136,123180), (123184,123197), (123200,123209), (123214,123215) ); const PUCUUnicodeScriptBlocks152:array[0..1] of TPUCUUnicodeCharRange=( (123584,123641), (123647,123647) ); const PUCUUnicodeScriptBlocks153:array[0..0] of TPUCUUnicodeCharRange=( (69552,69579) ); const PUCUUnicodeScriptBlocks154:array[0..7] of TPUCUUnicodeCharRange=( (71936,71942), (71945,71945), (71948,71955), (71957,71958), (71960,71989), (71991,71992), (71995,72006), (72016,72025) ); const PUCUUnicodeScriptBlocks155:array[0..1] of TPUCUUnicodeCharRange=( (94180,94180), (101120,101589) ); const PUCUUnicodeScriptBlocks156:array[0..2] of TPUCUUnicodeCharRange=( (69248,69289), (69291,69293), (69296,69297) ); const PUCUUnicodeScriptBlocks157:array[0..0] of TPUCUUnicodeCharRange=( (77712,77810) ); const PUCUUnicodeScriptBlocks158:array[0..0] of TPUCUUnicodeCharRange=( (69488,69513) ); const PUCUUnicodeScriptBlocks159:array[0..1] of TPUCUUnicodeCharRange=( (92784,92862), (92864,92873) ); const PUCUUnicodeScriptBlocks160:array[0..0] of TPUCUUnicodeCharRange=( (123536,123566) ); const PUCUUnicodeScriptBlocks161:array[0..7] of TPUCUUnicodeCharRange=( (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004) ); const PUCUUnicodeScriptBlocks162:array[0..2] of TPUCUUnicodeCharRange=( (73472,73488), (73490,73530), (73534,73561) ); const PUCUUnicodeScriptBlocks163:array[0..0] of TPUCUUnicodeCharRange=( (124112,124153) ); const PUCUUnicodeScriptBlocksData:array[0..163] of pointer=( @PUCUUnicodeScriptBlocks0, @PUCUUnicodeScriptBlocks1, @PUCUUnicodeScriptBlocks2, @PUCUUnicodeScriptBlocks3, @PUCUUnicodeScriptBlocks4, @PUCUUnicodeScriptBlocks5, @PUCUUnicodeScriptBlocks6, @PUCUUnicodeScriptBlocks7, @PUCUUnicodeScriptBlocks8, @PUCUUnicodeScriptBlocks9, @PUCUUnicodeScriptBlocks10, @PUCUUnicodeScriptBlocks11, @PUCUUnicodeScriptBlocks12, @PUCUUnicodeScriptBlocks13, @PUCUUnicodeScriptBlocks14, @PUCUUnicodeScriptBlocks15, @PUCUUnicodeScriptBlocks16, @PUCUUnicodeScriptBlocks17, @PUCUUnicodeScriptBlocks18, @PUCUUnicodeScriptBlocks19, @PUCUUnicodeScriptBlocks20, @PUCUUnicodeScriptBlocks21, @PUCUUnicodeScriptBlocks22, @PUCUUnicodeScriptBlocks23, @PUCUUnicodeScriptBlocks24, @PUCUUnicodeScriptBlocks25, @PUCUUnicodeScriptBlocks26, @PUCUUnicodeScriptBlocks27, @PUCUUnicodeScriptBlocks28, @PUCUUnicodeScriptBlocks29, @PUCUUnicodeScriptBlocks30, @PUCUUnicodeScriptBlocks31, @PUCUUnicodeScriptBlocks32, @PUCUUnicodeScriptBlocks33, @PUCUUnicodeScriptBlocks34, @PUCUUnicodeScriptBlocks35, @PUCUUnicodeScriptBlocks36, @PUCUUnicodeScriptBlocks37, @PUCUUnicodeScriptBlocks38, @PUCUUnicodeScriptBlocks39, @PUCUUnicodeScriptBlocks40, @PUCUUnicodeScriptBlocks41, @PUCUUnicodeScriptBlocks42, @PUCUUnicodeScriptBlocks43, @PUCUUnicodeScriptBlocks44, @PUCUUnicodeScriptBlocks45, @PUCUUnicodeScriptBlocks46, @PUCUUnicodeScriptBlocks47, @PUCUUnicodeScriptBlocks48, @PUCUUnicodeScriptBlocks49, @PUCUUnicodeScriptBlocks50, @PUCUUnicodeScriptBlocks51, @PUCUUnicodeScriptBlocks52, @PUCUUnicodeScriptBlocks53, @PUCUUnicodeScriptBlocks54, @PUCUUnicodeScriptBlocks55, @PUCUUnicodeScriptBlocks56, @PUCUUnicodeScriptBlocks57, @PUCUUnicodeScriptBlocks58, @PUCUUnicodeScriptBlocks59, @PUCUUnicodeScriptBlocks60, @PUCUUnicodeScriptBlocks61, @PUCUUnicodeScriptBlocks62, @PUCUUnicodeScriptBlocks63, @PUCUUnicodeScriptBlocks64, @PUCUUnicodeScriptBlocks65, @PUCUUnicodeScriptBlocks66, @PUCUUnicodeScriptBlocks67, @PUCUUnicodeScriptBlocks68, @PUCUUnicodeScriptBlocks69, @PUCUUnicodeScriptBlocks70, @PUCUUnicodeScriptBlocks71, @PUCUUnicodeScriptBlocks72, @PUCUUnicodeScriptBlocks73, @PUCUUnicodeScriptBlocks74, @PUCUUnicodeScriptBlocks75, @PUCUUnicodeScriptBlocks76, @PUCUUnicodeScriptBlocks77, @PUCUUnicodeScriptBlocks78, @PUCUUnicodeScriptBlocks79, @PUCUUnicodeScriptBlocks80, @PUCUUnicodeScriptBlocks81, @PUCUUnicodeScriptBlocks82, @PUCUUnicodeScriptBlocks83, @PUCUUnicodeScriptBlocks84, @PUCUUnicodeScriptBlocks85, @PUCUUnicodeScriptBlocks86, @PUCUUnicodeScriptBlocks87, @PUCUUnicodeScriptBlocks88, @PUCUUnicodeScriptBlocks89, @PUCUUnicodeScriptBlocks90, @PUCUUnicodeScriptBlocks91, @PUCUUnicodeScriptBlocks92, @PUCUUnicodeScriptBlocks93, @PUCUUnicodeScriptBlocks94, @PUCUUnicodeScriptBlocks95, @PUCUUnicodeScriptBlocks96, @PUCUUnicodeScriptBlocks97, @PUCUUnicodeScriptBlocks98, @PUCUUnicodeScriptBlocks99, @PUCUUnicodeScriptBlocks100, @PUCUUnicodeScriptBlocks101, @PUCUUnicodeScriptBlocks102, @PUCUUnicodeScriptBlocks103, @PUCUUnicodeScriptBlocks104, @PUCUUnicodeScriptBlocks105, @PUCUUnicodeScriptBlocks106, @PUCUUnicodeScriptBlocks107, @PUCUUnicodeScriptBlocks108, @PUCUUnicodeScriptBlocks109, @PUCUUnicodeScriptBlocks110, @PUCUUnicodeScriptBlocks111, @PUCUUnicodeScriptBlocks112, @PUCUUnicodeScriptBlocks113, @PUCUUnicodeScriptBlocks114, @PUCUUnicodeScriptBlocks115, @PUCUUnicodeScriptBlocks116, @PUCUUnicodeScriptBlocks117, @PUCUUnicodeScriptBlocks118, @PUCUUnicodeScriptBlocks119, @PUCUUnicodeScriptBlocks120, @PUCUUnicodeScriptBlocks121, @PUCUUnicodeScriptBlocks122, @PUCUUnicodeScriptBlocks123, @PUCUUnicodeScriptBlocks124, @PUCUUnicodeScriptBlocks125, @PUCUUnicodeScriptBlocks126, @PUCUUnicodeScriptBlocks127, @PUCUUnicodeScriptBlocks128, @PUCUUnicodeScriptBlocks129, @PUCUUnicodeScriptBlocks130, @PUCUUnicodeScriptBlocks131, @PUCUUnicodeScriptBlocks132, @PUCUUnicodeScriptBlocks133, @PUCUUnicodeScriptBlocks134, @PUCUUnicodeScriptBlocks135, @PUCUUnicodeScriptBlocks136, @PUCUUnicodeScriptBlocks137, @PUCUUnicodeScriptBlocks138, @PUCUUnicodeScriptBlocks139, @PUCUUnicodeScriptBlocks140, @PUCUUnicodeScriptBlocks141, @PUCUUnicodeScriptBlocks142, @PUCUUnicodeScriptBlocks143, @PUCUUnicodeScriptBlocks144, @PUCUUnicodeScriptBlocks145, @PUCUUnicodeScriptBlocks146, @PUCUUnicodeScriptBlocks147, @PUCUUnicodeScriptBlocks148, @PUCUUnicodeScriptBlocks149, @PUCUUnicodeScriptBlocks150, @PUCUUnicodeScriptBlocks151, @PUCUUnicodeScriptBlocks152, @PUCUUnicodeScriptBlocks153, @PUCUUnicodeScriptBlocks154, @PUCUUnicodeScriptBlocks155, @PUCUUnicodeScriptBlocks156, @PUCUUnicodeScriptBlocks157, @PUCUUnicodeScriptBlocks158, @PUCUUnicodeScriptBlocks159, @PUCUUnicodeScriptBlocks160, @PUCUUnicodeScriptBlocks161, @PUCUUnicodeScriptBlocks162, @PUCUUnicodeScriptBlocks163 ); const PUCUUnicodeScriptBlocksCounts:array[0..163] of longint=( 705, 173, 39, 36, 10, 4, 9, 58, 4, 1, 5, 14, 16, 14, 14, 18, 13, 13, 7, 13, 2, 11, 7, 3, 10, 14, 36, 3, 3, 1, 2, 4, 6, 6, 14, 3, 21, 2, 2, 1, 1, 29, 2, 1, 1, 3, 5, 2, 7, 2, 1, 2, 6, 1, 2, 3, 4, 6, 3, 1, 2, 8, 2, 4, 2, 1, 2, 2, 3, 1, 1, 2, 2, 2, 1, 1, 2, 4, 5, 2, 2, 1, 2, 2, 2, 3, 3, 2, 1, 2, 2, 1, 2, 2, 3, 2, 2, 3, 1, 3, 1, 2, 2, 2, 2, 5, 1, 15, 5, 2, 3, 1, 2, 2, 2, 3, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 3, 1, 3, 5, 3, 3, 3, 4, 3, 2, 2, 4, 7, 2, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 4, 2, 1, 8, 2, 3, 1, 1, 2, 1, 8, 3, 1 ); const PUCUCountUnicodeIgnoreCaseScriptBlocks=163; const PUCUUnicodeIgnoreCaseScriptBlocks0:array[0..704] of TPUCUUnicodeCharRange=( (888,889), (896,899), (907,907), (909,909), (930,930), (1328,1328), (1367,1368), (1419,1420), (1424,1424), (1480,1487), (1515,1518), (1525,1535), (1806,1806), (1867,1868), (1970,1983), (2043,2044), (2094,2095), (2111,2111), (2140,2141), (2143,2143), (2155,2159), (2191,2191), (2194,2199), (2436,2436), (2445,2446), (2449,2450), (2473,2473), (2481,2481), (2483,2485), (2490,2491), (2501,2502), (2505,2506), (2511,2518), (2520,2523), (2526,2526), (2532,2533), (2559,2560), (2564,2564), (2571,2574), (2577,2578), (2601,2601), (2609,2609), (2612,2612), (2615,2615), (2618,2619), (2621,2621), (2627,2630), (2633,2634), (2638,2640), (2642,2648), (2653,2653), (2655,2661), (2679,2688), (2692,2692), (2702,2702), (2706,2706), (2729,2729), (2737,2737), (2740,2740), (2746,2747), (2758,2758), (2762,2762), (2766,2767), (2769,2783), (2788,2789), (2802,2808), (2816,2816), (2820,2820), (2829,2830), (2833,2834), (2857,2857), (2865,2865), (2868,2868), (2874,2875), (2885,2886), (2889,2890), (2894,2900), (2904,2907), (2910,2910), (2916,2917), (2936,2945), (2948,2948), (2955,2957), (2961,2961), (2966,2968), (2971,2971), (2973,2973), (2976,2978), (2981,2983), (2987,2989), (3002,3005), (3011,3013), (3017,3017), (3022,3023), (3025,3030), (3032,3045), (3067,3071), (3085,3085), (3089,3089), (3113,3113), (3130,3131), (3141,3141), (3145,3145), (3150,3156), (3159,3159), (3163,3164), (3166,3167), (3172,3173), (3184,3190), (3213,3213), (3217,3217), (3241,3241), (3252,3252), (3258,3259), (3269,3269), (3273,3273), (3278,3284), (3287,3292), (3295,3295), (3300,3301), (3312,3312), (3316,3327), (3341,3341), (3345,3345), (3397,3397), (3401,3401), (3408,3411), (3428,3429), (3456,3456), (3460,3460), (3479,3481), (3506,3506), (3516,3516), (3518,3519), (3527,3529), (3531,3534), (3541,3541), (3543,3543), (3552,3557), (3568,3569), (3573,3584), (3643,3646), (3676,3712), (3715,3715), (3717,3717), (3723,3723), (3748,3748), (3750,3750), (3774,3775), (3781,3781), (3783,3783), (3791,3791), (3802,3803), (3808,3839), (3912,3912), (3949,3952), (3992,3992), (4029,4029), (4045,4045), (4059,4095), (4294,4294), (4296,4300), (4302,4303), (4681,4681), (4686,4687), (4695,4695), (4697,4697), (4702,4703), (4745,4745), (4750,4751), (4785,4785), (4790,4791), (4799,4799), (4801,4801), (4806,4807), (4823,4823), (4881,4881), (4886,4887), (4955,4956), (4989,4991), (5018,5023), (5110,5111), (5118,5119), (5789,5791), (5881,5887), (5910,5918), (5943,5951), (5972,5983), (5997,5997), (6001,6001), (6004,6015), (6110,6111), (6122,6127), (6138,6143), (6170,6175), (6265,6271), (6315,6319), (6390,6399), (6431,6431), (6444,6447), (6460,6463), (6465,6467), (6510,6511), (6517,6527), (6572,6575), (6602,6607), (6619,6621), (6684,6685), (6751,6751), (6781,6782), (6794,6799), (6810,6815), (6830,6831), (6863,6911), (6989,6991), (7039,7039), (7156,7163), (7224,7226), (7242,7244), (7305,7311), (7355,7356), (7368,7375), (7419,7423), (7958,7959), (7966,7967), (8006,8007), (8014,8015), (8024,8024), (8026,8026), (8028,8028), (8030,8030), (8062,8063), (8117,8117), (8133,8133), (8148,8149), (8156,8156), (8176,8177), (8181,8181), (8191,8191), (8293,8293), (8306,8307), (8335,8335), (8349,8351), (8385,8399), (8433,8447), (8588,8591), (9255,9279), (9291,9311), (11124,11125), (11158,11158), (11508,11512), (11558,11558), (11560,11564), (11566,11567), (11624,11630), (11633,11646), (11671,11679), (11687,11687), (11695,11695), (11703,11703), (11711,11711), (11719,11719), (11727,11727), (11735,11735), (11743,11743), (11870,11903), (11930,11930), (12020,12031), (12246,12271), (12284,12287), (12352,12352), (12439,12440), (12544,12548), (12592,12592), (12687,12687), (12772,12783), (12831,12831), (42125,42127), (42183,42191), (42540,42559), (42744,42751), (42955,42959), (42962,42962), (42964,42964), (42970,42993), (43053,43055), (43066,43071), (43128,43135), (43206,43213), (43226,43231), (43348,43358), (43389,43391), (43470,43470), (43482,43485), (43519,43519), (43575,43583), (43598,43599), (43610,43611), (43715,43738), (43767,43776), (43783,43784), (43791,43792), (43799,43807), (43815,43815), (43823,43823), (43884,43887), (44014,44015), (44026,44031), (55204,55215), (55239,55242), (55292,63743), (64110,64111), (64218,64255), (64263,64274), (64280,64284), (64311,64311), (64317,64317), (64319,64319), (64322,64322), (64325,64325), (64451,64466), (64912,64913), (64968,64974), (64976,65007), (65050,65055), (65107,65107), (65127,65127), (65132,65135), (65141,65141), (65277,65278), (65280,65280), (65471,65473), (65480,65481), (65488,65489), (65496,65497), (65501,65503), (65511,65511), (65519,65528), (65534,65535), (65548,65548), (65575,65575), (65595,65595), (65598,65598), (65614,65615), (65630,65663), (65787,65791), (65795,65798), (65844,65846), (65935,65935), (65949,65951), (65953,65999), (66046,66175), (66205,66207), (66257,66271), (66300,66303), (66340,66348), (66379,66383), (66427,66431), (66462,66462), (66500,66503), (66518,66559), (66718,66719), (66730,66735), (66772,66775), (66812,66815), (66856,66863), (66916,66926), (66939,66939), (66955,66955), (66963,66963), (66966,66966), (66978,66978), (66994,66994), (67002,67002), (67005,67071), (67383,67391), (67414,67423), (67432,67455), (67462,67462), (67505,67505), (67515,67583), (67590,67591), (67593,67593), (67638,67638), (67641,67643), (67645,67646), (67670,67670), (67743,67750), (67760,67807), (67827,67827), (67830,67834), (67868,67870), (67898,67902), (67904,67967), (68024,68027), (68048,68049), (68100,68100), (68103,68107), (68116,68116), (68120,68120), (68150,68151), (68155,68158), (68169,68175), (68185,68191), (68256,68287), (68327,68330), (68343,68351), (68406,68408), (68438,68439), (68467,68471), (68498,68504), (68509,68520), (68528,68607), (68681,68735), (68787,68799), (68851,68857), (68904,68911), (68922,69215), (69247,69247), (69290,69290), (69294,69295), (69298,69372), (69416,69423), (69466,69487), (69514,69551), (69580,69599), (69623,69631), (69710,69713), (69750,69758), (69827,69836), (69838,69839), (69865,69871), (69882,69887), (69941,69941), (69960,69967), (70007,70015), (70112,70112), (70133,70143), (70162,70162), (70210,70271), (70279,70279), (70281,70281), (70286,70286), (70302,70302), (70314,70319), (70379,70383), (70394,70399), (70404,70404), (70413,70414), (70417,70418), (70441,70441), (70449,70449), (70452,70452), (70458,70458), (70469,70470), (70473,70474), (70478,70479), (70481,70486), (70488,70492), (70500,70501), (70509,70511), (70517,70655), (70748,70748), (70754,70783), (70856,70863), (70874,71039), (71094,71095), (71134,71167), (71237,71247), (71258,71263), (71277,71295), (71354,71359), (71370,71423), (71451,71452), (71468,71471), (71495,71679), (71740,71839), (71923,71934), (71943,71944), (71946,71947), (71956,71956), (71959,71959), (71990,71990), (71993,71994), (72007,72015), (72026,72095), (72104,72105), (72152,72153), (72165,72191), (72264,72271), (72355,72367), (72441,72447), (72458,72703), (72713,72713), (72759,72759), (72774,72783), (72813,72815), (72848,72849), (72872,72872), (72887,72959), (72967,72967), (72970,72970), (73015,73017), (73019,73019), (73022,73022), (73032,73039), (73050,73055), (73062,73062), (73065,73065), (73103,73103), (73106,73106), (73113,73119), (73130,73439), (73465,73471), (73489,73489), (73531,73533), (73562,73647), (73649,73663), (73714,73726), (74650,74751), (74863,74863), (74869,74879), (75076,77711), (77811,77823), (78934,82943), (83527,92159), (92729,92735), (92767,92767), (92778,92781), (92863,92863), (92874,92879), (92910,92911), (92918,92927), (92998,93007), (93018,93018), (93026,93026), (93048,93052), (93072,93759), (93851,93951), (94027,94030), (94088,94094), (94112,94175), (94181,94191), (94194,94207), (100344,100351), (101590,101631), (101641,110575), (110580,110580), (110588,110588), (110591,110591), (110883,110897), (110899,110927), (110931,110932), (110934,110947), (110952,110959), (111356,113663), (113771,113775), (113789,113791), (113801,113807), (113818,113819), (113828,118527), (118574,118575), (118599,118607), (118724,118783), (119030,119039), (119079,119080), (119275,119295), (119366,119487), (119508,119519), (119540,119551), (119639,119647), (119673,119807), (119893,119893), (119965,119965), (119968,119969), (119971,119972), (119975,119976), (119981,119981), (119994,119994), (119996,119996), (120004,120004), (120070,120070), (120075,120076), (120085,120085), (120093,120093), (120122,120122), (120127,120127), (120133,120133), (120135,120137), (120145,120145), (120486,120487), (120780,120781), (121484,121498), (121504,121504), (121520,122623), (122655,122660), (122667,122879), (122887,122887), (122905,122906), (122914,122914), (122917,122917), (122923,122927), (122990,123022), (123024,123135), (123181,123183), (123198,123199), (123210,123213), (123216,123535), (123567,123583), (123642,123646), (123648,124111), (124154,124895), (124903,124903), (124908,124908), (124911,124911), (124927,124927), (125125,125126), (125143,125183), (125260,125263), (125274,125277), (125280,126064), (126133,126208), (126270,126463), (126468,126468), (126496,126496), (126499,126499), (126501,126502), (126504,126504), (126515,126515), (126520,126520), (126522,126522), (126524,126529), (126531,126534), (126536,126536), (126538,126538), (126540,126540), (126544,126544), (126547,126547), (126549,126550), (126552,126552), (126554,126554), (126556,126556), (126558,126558), (126560,126560), (126563,126563), (126565,126566), (126571,126571), (126579,126579), (126584,126584), (126589,126589), (126591,126591), (126602,126602), (126620,126624), (126628,126628), (126634,126634), (126652,126703), (126706,126975), (127020,127023), (127124,127135), (127151,127152), (127168,127168), (127184,127184), (127222,127231), (127406,127461), (127491,127503), (127548,127551), (127561,127567), (127570,127583), (127590,127743), (128728,128731), (128749,128751), (128765,128767), (128887,128890), (128986,128991), (129004,129007), (129009,129023), (129036,129039), (129096,129103), (129114,129119), (129160,129167), (129198,129199), (129202,129279), (129620,129631), (129646,129647), (129661,129663), (129673,129679), (129726,129726), (129734,129741), (129756,129759), (129769,129775), (129785,129791), (129939,129939), (129995,130031), (130042,131071), (173792,173823), (177978,177983), (178206,178207), (183970,183983), (191457,194559), (195102,196607), (201547,201551), (205744,917504), (917506,917535), (917632,917759), (918000,1114111) ); const PUCUUnicodeIgnoreCaseScriptBlocks1:array[0..173] of TPUCUUnicodeCharRange=( (0,64), (91,96), (123,169), (171,185), (187,191), (215,215), (247,247), (697,735), (741,745), (748,767), (884,884), (894,894), (901,901), (903,903), (924,924), (1541,1541), (1548,1548), (1563,1563), (1567,1567), (1600,1600), (1757,1757), (2274,2274), (2404,2405), (3647,3647), (4053,4056), (4347,4347), (5867,5869), (5941,5942), (6146,6147), (6149,6149), (7379,7379), (7393,7393), (7401,7404), (7406,7411), (7413,7415), (7418,7418), (8192,8203), (8206,8292), (8294,8304), (8308,8318), (8320,8334), (8352,8384), (8448,8485), (8487,8489), (8492,8497), (8499,8525), (8527,8543), (8585,8587), (8592,9254), (9280,9290), (9312,10239), (10496,11123), (11126,11157), (11159,11263), (11776,11869), (12272,12283), (12288,12292), (12294,12294), (12296,12320), (12336,12343), (12348,12351), (12443,12444), (12448,12448), (12539,12540), (12688,12703), (12736,12771), (12832,12895), (12927,13007), (13055,13055), (13144,13311), (19904,19967), (42752,42785), (42888,42890), (43056,43065), (43310,43310), (43471,43471), (43867,43867), (43882,43883), (64830,64831), (65040,65049), (65072,65106), (65108,65126), (65128,65131), (65279,65279), (65281,65312), (65339,65344), (65371,65381), (65392,65392), (65438,65439), (65504,65510), (65512,65518), (65529,65533), (65792,65794), (65799,65843), (65847,65855), (65936,65948), (66000,66044), (66273,66299), (113824,113827), (118608,118723), (118784,119029), (119040,119078), (119081,119142), (119146,119162), (119171,119172), (119180,119209), (119214,119274), (119488,119507), (119520,119539), (119552,119638), (119648,119672), (119808,119892), (119894,119964), (119966,119967), (119970,119970), (119973,119974), (119977,119980), (119982,119993), (119995,119995), (119997,120003), (120005,120069), (120071,120074), (120077,120084), (120086,120092), (120094,120121), (120123,120126), (120128,120132), (120134,120134), (120138,120144), (120146,120485), (120488,120779), (120782,120831), (126065,126132), (126209,126269), (126976,127019), (127024,127123), (127136,127150), (127153,127167), (127169,127183), (127185,127221), (127232,127405), (127462,127487), (127489,127490), (127504,127547), (127552,127560), (127568,127569), (127584,127589), (127744,128727), (128732,128748), (128752,128764), (128768,128886), (128891,128985), (128992,129003), (129008,129008), (129024,129035), (129040,129095), (129104,129113), (129120,129159), (129168,129197), (129200,129201), (129280,129619), (129632,129645), (129648,129660), (129664,129672), (129680,129725), (129727,129733), (129742,129755), (129760,129768), (129776,129784), (129792,129938), (129940,129994), (130032,130041), (917505,917505), (917536,917631) ); const PUCUUnicodeIgnoreCaseScriptBlocks2:array[0..38] of TPUCUUnicodeCharRange=( (65,90), (97,122), (170,170), (186,186), (192,214), (216,246), (248,696), (736,740), (7424,7461), (7468,7516), (7522,7525), (7531,7543), (7545,7614), (7680,7935), (8305,8305), (8319,8319), (8336,8348), (8490,8491), (8498,8498), (8526,8526), (8544,8584), (11360,11391), (42786,42887), (42891,42954), (42960,42961), (42963,42963), (42965,42969), (42994,43007), (43824,43866), (43868,43876), (43878,43881), (64256,64262), (65313,65338), (65345,65370), (67456,67461), (67463,67504), (67506,67514), (122624,122654), (122661,122666) ); const PUCUUnicodeIgnoreCaseScriptBlocks3:array[0..35] of TPUCUUnicodeCharRange=( (880,883), (885,887), (890,893), (895,895), (900,900), (902,902), (904,906), (908,908), (910,929), (931,993), (1008,1023), (7462,7466), (7517,7521), (7526,7530), (7615,7615), (7936,7957), (7960,7965), (7968,8005), (8008,8013), (8016,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8116), (8118,8132), (8134,8147), (8150,8155), (8157,8175), (8178,8180), (8182,8190), (8486,8486), (43877,43877), (65856,65934), (65952,65952), (119296,119365) ); const PUCUUnicodeIgnoreCaseScriptBlocks4:array[0..9] of TPUCUUnicodeCharRange=( (1024,1156), (1159,1327), (7296,7304), (7467,7467), (7544,7544), (11744,11775), (42560,42655), (65070,65071), (122928,122989), (123023,123023) ); const PUCUUnicodeIgnoreCaseScriptBlocks5:array[0..3] of TPUCUUnicodeCharRange=( (1329,1366), (1369,1418), (1421,1423), (64275,64279) ); const PUCUUnicodeIgnoreCaseScriptBlocks6:array[0..8] of TPUCUUnicodeCharRange=( (1425,1479), (1488,1514), (1519,1524), (64285,64310), (64312,64316), (64318,64318), (64320,64321), (64323,64324), (64326,64335) ); const PUCUUnicodeIgnoreCaseScriptBlocks7:array[0..57] of TPUCUUnicodeCharRange=( (1536,1540), (1542,1547), (1549,1562), (1564,1566), (1568,1599), (1601,1610), (1622,1647), (1649,1756), (1758,1791), (1872,1919), (2160,2190), (2192,2193), (2200,2273), (2275,2303), (64336,64450), (64467,64829), (64832,64911), (64914,64967), (64975,64975), (65008,65023), (65136,65140), (65142,65276), (69216,69246), (69373,69375), (126464,126467), (126469,126495), (126497,126498), (126500,126500), (126503,126503), (126505,126514), (126516,126519), (126521,126521), (126523,126523), (126530,126530), (126535,126535), (126537,126537), (126539,126539), (126541,126543), (126545,126546), (126548,126548), (126551,126551), (126553,126553), (126555,126555), (126557,126557), (126559,126559), (126561,126562), (126564,126564), (126567,126570), (126572,126578), (126580,126583), (126585,126588), (126590,126590), (126592,126601), (126603,126619), (126625,126627), (126629,126633), (126635,126651), (126704,126705) ); const PUCUUnicodeIgnoreCaseScriptBlocks8:array[0..3] of TPUCUUnicodeCharRange=( (1792,1805), (1807,1866), (1869,1871), (2144,2154) ); const PUCUUnicodeIgnoreCaseScriptBlocks9:array[0..0] of TPUCUUnicodeCharRange=( (1920,1969) ); const PUCUUnicodeIgnoreCaseScriptBlocks10:array[0..4] of TPUCUUnicodeCharRange=( (2304,2384), (2389,2403), (2406,2431), (43232,43263), (72448,72457) ); const PUCUUnicodeIgnoreCaseScriptBlocks11:array[0..13] of TPUCUUnicodeCharRange=( (2432,2435), (2437,2444), (2447,2448), (2451,2472), (2474,2480), (2482,2482), (2486,2489), (2492,2500), (2503,2504), (2507,2510), (2519,2519), (2524,2525), (2527,2531), (2534,2558) ); const PUCUUnicodeIgnoreCaseScriptBlocks12:array[0..15] of TPUCUUnicodeCharRange=( (2561,2563), (2565,2570), (2575,2576), (2579,2600), (2602,2608), (2610,2611), (2613,2614), (2616,2617), (2620,2620), (2622,2626), (2631,2632), (2635,2637), (2641,2641), (2649,2652), (2654,2654), (2662,2678) ); const PUCUUnicodeIgnoreCaseScriptBlocks13:array[0..13] of TPUCUUnicodeCharRange=( (2689,2691), (2693,2701), (2703,2705), (2707,2728), (2730,2736), (2738,2739), (2741,2745), (2748,2757), (2759,2761), (2763,2765), (2768,2768), (2784,2787), (2790,2801), (2809,2815) ); const PUCUUnicodeIgnoreCaseScriptBlocks14:array[0..13] of TPUCUUnicodeCharRange=( (2817,2819), (2821,2828), (2831,2832), (2835,2856), (2858,2864), (2866,2867), (2869,2873), (2876,2884), (2887,2888), (2891,2893), (2901,2903), (2908,2909), (2911,2915), (2918,2935) ); const PUCUUnicodeIgnoreCaseScriptBlocks15:array[0..17] of TPUCUUnicodeCharRange=( (2946,2947), (2949,2954), (2958,2960), (2962,2965), (2969,2970), (2972,2972), (2974,2975), (2979,2980), (2984,2986), (2990,3001), (3006,3010), (3014,3016), (3018,3021), (3024,3024), (3031,3031), (3046,3066), (73664,73713), (73727,73727) ); const PUCUUnicodeIgnoreCaseScriptBlocks16:array[0..12] of TPUCUUnicodeCharRange=( (3072,3084), (3086,3088), (3090,3112), (3114,3129), (3132,3140), (3142,3144), (3146,3149), (3157,3158), (3160,3162), (3165,3165), (3168,3171), (3174,3183), (3191,3199) ); const PUCUUnicodeIgnoreCaseScriptBlocks17:array[0..12] of TPUCUUnicodeCharRange=( (3200,3212), (3214,3216), (3218,3240), (3242,3251), (3253,3257), (3260,3268), (3270,3272), (3274,3277), (3285,3286), (3293,3294), (3296,3299), (3302,3311), (3313,3315) ); const PUCUUnicodeIgnoreCaseScriptBlocks18:array[0..6] of TPUCUUnicodeCharRange=( (3328,3340), (3342,3344), (3346,3396), (3398,3400), (3402,3407), (3412,3427), (3430,3455) ); const PUCUUnicodeIgnoreCaseScriptBlocks19:array[0..12] of TPUCUUnicodeCharRange=( (3457,3459), (3461,3478), (3482,3505), (3507,3515), (3517,3517), (3520,3526), (3530,3530), (3535,3540), (3542,3542), (3544,3551), (3558,3567), (3570,3572), (70113,70132) ); const PUCUUnicodeIgnoreCaseScriptBlocks20:array[0..1] of TPUCUUnicodeCharRange=( (3585,3642), (3648,3675) ); const PUCUUnicodeIgnoreCaseScriptBlocks21:array[0..10] of TPUCUUnicodeCharRange=( (3713,3714), (3716,3716), (3718,3722), (3724,3747), (3749,3749), (3751,3773), (3776,3780), (3782,3782), (3784,3790), (3792,3801), (3804,3807) ); const PUCUUnicodeIgnoreCaseScriptBlocks22:array[0..6] of TPUCUUnicodeCharRange=( (3840,3911), (3913,3948), (3953,3991), (3993,4028), (4030,4044), (4046,4052), (4057,4058) ); const PUCUUnicodeIgnoreCaseScriptBlocks23:array[0..2] of TPUCUUnicodeCharRange=( (4096,4255), (43488,43518), (43616,43647) ); const PUCUUnicodeIgnoreCaseScriptBlocks24:array[0..9] of TPUCUUnicodeCharRange=( (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4348,4351), (7312,7354), (7357,7359), (11520,11557), (11559,11559), (11565,11565) ); const PUCUUnicodeIgnoreCaseScriptBlocks25:array[0..13] of TPUCUUnicodeCharRange=( (4352,4607), (12334,12335), (12593,12686), (12800,12830), (12896,12926), (43360,43388), (44032,55203), (55216,55238), (55243,55291), (65440,65470), (65474,65479), (65482,65487), (65490,65495), (65498,65500) ); const PUCUUnicodeIgnoreCaseScriptBlocks26:array[0..35] of TPUCUUnicodeCharRange=( (4608,4680), (4682,4685), (4688,4694), (4696,4696), (4698,4701), (4704,4744), (4746,4749), (4752,4784), (4786,4789), (4792,4798), (4800,4800), (4802,4805), (4808,4822), (4824,4880), (4882,4885), (4888,4954), (4957,4988), (4992,5017), (11648,11670), (11680,11686), (11688,11694), (11696,11702), (11704,11710), (11712,11718), (11720,11726), (11728,11734), (11736,11742), (43777,43782), (43785,43790), (43793,43798), (43808,43814), (43816,43822), (124896,124902), (124904,124907), (124909,124910), (124912,124926) ); const PUCUUnicodeIgnoreCaseScriptBlocks27:array[0..2] of TPUCUUnicodeCharRange=( (5024,5109), (5112,5117), (43888,43967) ); const PUCUUnicodeIgnoreCaseScriptBlocks28:array[0..2] of TPUCUUnicodeCharRange=( (5120,5759), (6320,6389), (72368,72383) ); const PUCUUnicodeIgnoreCaseScriptBlocks29:array[0..0] of TPUCUUnicodeCharRange=( (5760,5788) ); const PUCUUnicodeIgnoreCaseScriptBlocks30:array[0..1] of TPUCUUnicodeCharRange=( (5792,5866), (5870,5880) ); const PUCUUnicodeIgnoreCaseScriptBlocks31:array[0..3] of TPUCUUnicodeCharRange=( (6016,6109), (6112,6121), (6128,6137), (6624,6655) ); const PUCUUnicodeIgnoreCaseScriptBlocks32:array[0..5] of TPUCUUnicodeCharRange=( (6144,6145), (6148,6148), (6150,6169), (6176,6264), (6272,6314), (71264,71276) ); const PUCUUnicodeIgnoreCaseScriptBlocks33:array[0..5] of TPUCUUnicodeCharRange=( (12353,12438), (12445,12447), (110593,110879), (110898,110898), (110928,110930), (127488,127488) ); const PUCUUnicodeIgnoreCaseScriptBlocks34:array[0..13] of TPUCUUnicodeCharRange=( (12449,12538), (12541,12543), (12784,12799), (13008,13054), (13056,13143), (65382,65391), (65393,65437), (110576,110579), (110581,110587), (110589,110590), (110592,110592), (110880,110882), (110933,110933), (110948,110951) ); const PUCUUnicodeIgnoreCaseScriptBlocks35:array[0..2] of TPUCUUnicodeCharRange=( (746,747), (12549,12591), (12704,12735) ); const PUCUUnicodeIgnoreCaseScriptBlocks36:array[0..20] of TPUCUUnicodeCharRange=( (11904,11929), (11931,12019), (12032,12245), (12293,12293), (12295,12295), (12321,12329), (12344,12347), (13312,19903), (19968,40959), (63744,64109), (64112,64217), (94178,94179), (94192,94193), (131072,173791), (173824,177977), (177984,178205), (178208,183969), (183984,191456), (194560,195101), (196608,201546), (201552,205743) ); const PUCUUnicodeIgnoreCaseScriptBlocks37:array[0..1] of TPUCUUnicodeCharRange=( (40960,42124), (42128,42182) ); const PUCUUnicodeIgnoreCaseScriptBlocks38:array[0..1] of TPUCUUnicodeCharRange=( (66304,66339), (66349,66351) ); const PUCUUnicodeIgnoreCaseScriptBlocks39:array[0..0] of TPUCUUnicodeCharRange=( (66352,66378) ); const PUCUUnicodeIgnoreCaseScriptBlocks40:array[0..0] of TPUCUUnicodeCharRange=( (66560,66639) ); const PUCUUnicodeIgnoreCaseScriptBlocks41:array[0..29] of TPUCUUnicodeCharRange=( (768,879), (921,921), (1157,1158), (1611,1621), (1648,1648), (2385,2388), (6832,6862), (7376,7378), (7380,7392), (7394,7400), (7405,7405), (7412,7412), (7416,7417), (7616,7679), (8204,8205), (8400,8432), (12330,12333), (12441,12442), (65024,65039), (65056,65069), (66045,66045), (66272,66272), (70459,70459), (118528,118573), (118576,118598), (119143,119145), (119163,119170), (119173,119179), (119210,119213), (917760,917999) ); const PUCUUnicodeIgnoreCaseScriptBlocks42:array[0..1] of TPUCUUnicodeCharRange=( (5888,5909), (5919,5919) ); const PUCUUnicodeIgnoreCaseScriptBlocks43:array[0..0] of TPUCUUnicodeCharRange=( (5920,5940) ); const PUCUUnicodeIgnoreCaseScriptBlocks44:array[0..0] of TPUCUUnicodeCharRange=( (5952,5971) ); const PUCUUnicodeIgnoreCaseScriptBlocks45:array[0..2] of TPUCUUnicodeCharRange=( (5984,5996), (5998,6000), (6002,6003) ); const PUCUUnicodeIgnoreCaseScriptBlocks46:array[0..4] of TPUCUUnicodeCharRange=( (6400,6430), (6432,6443), (6448,6459), (6464,6464), (6468,6479) ); const PUCUUnicodeIgnoreCaseScriptBlocks47:array[0..1] of TPUCUUnicodeCharRange=( (6480,6509), (6512,6516) ); const PUCUUnicodeIgnoreCaseScriptBlocks48:array[0..6] of TPUCUUnicodeCharRange=( (65536,65547), (65549,65574), (65576,65594), (65596,65597), (65599,65613), (65616,65629), (65664,65786) ); const PUCUUnicodeIgnoreCaseScriptBlocks49:array[0..1] of TPUCUUnicodeCharRange=( (66432,66461), (66463,66463) ); const PUCUUnicodeIgnoreCaseScriptBlocks50:array[0..0] of TPUCUUnicodeCharRange=( (66640,66687) ); const PUCUUnicodeIgnoreCaseScriptBlocks51:array[0..1] of TPUCUUnicodeCharRange=( (66688,66717), (66720,66729) ); const PUCUUnicodeIgnoreCaseScriptBlocks52:array[0..5] of TPUCUUnicodeCharRange=( (67584,67589), (67592,67592), (67594,67637), (67639,67640), (67644,67644), (67647,67647) ); const PUCUUnicodeIgnoreCaseScriptBlocks53:array[0..0] of TPUCUUnicodeCharRange=( (10240,10495) ); const PUCUUnicodeIgnoreCaseScriptBlocks54:array[0..1] of TPUCUUnicodeCharRange=( (6656,6683), (6686,6687) ); const PUCUUnicodeIgnoreCaseScriptBlocks55:array[0..2] of TPUCUUnicodeCharRange=( (994,1007), (11392,11507), (11513,11519) ); const PUCUUnicodeIgnoreCaseScriptBlocks56:array[0..3] of TPUCUUnicodeCharRange=( (6528,6571), (6576,6601), (6608,6618), (6622,6623) ); const PUCUUnicodeIgnoreCaseScriptBlocks57:array[0..5] of TPUCUUnicodeCharRange=( (11264,11359), (122880,122886), (122888,122904), (122907,122913), (122915,122916), (122918,122922) ); const PUCUUnicodeIgnoreCaseScriptBlocks58:array[0..2] of TPUCUUnicodeCharRange=( (11568,11623), (11631,11632), (11647,11647) ); const PUCUUnicodeIgnoreCaseScriptBlocks59:array[0..0] of TPUCUUnicodeCharRange=( (43008,43052) ); const PUCUUnicodeIgnoreCaseScriptBlocks60:array[0..1] of TPUCUUnicodeCharRange=( (66464,66499), (66504,66517) ); const PUCUUnicodeIgnoreCaseScriptBlocks61:array[0..7] of TPUCUUnicodeCharRange=( (68096,68099), (68101,68102), (68108,68115), (68117,68119), (68121,68149), (68152,68154), (68159,68168), (68176,68184) ); const PUCUUnicodeIgnoreCaseScriptBlocks62:array[0..1] of TPUCUUnicodeCharRange=( (6912,6988), (6992,7038) ); const PUCUUnicodeIgnoreCaseScriptBlocks63:array[0..3] of TPUCUUnicodeCharRange=( (73728,74649), (74752,74862), (74864,74868), (74880,75075) ); const PUCUUnicodeIgnoreCaseScriptBlocks64:array[0..1] of TPUCUUnicodeCharRange=( (67840,67867), (67871,67871) ); const PUCUUnicodeIgnoreCaseScriptBlocks65:array[0..0] of TPUCUUnicodeCharRange=( (43072,43127) ); const PUCUUnicodeIgnoreCaseScriptBlocks66:array[0..1] of TPUCUUnicodeCharRange=( (1984,2042), (2045,2047) ); const PUCUUnicodeIgnoreCaseScriptBlocks67:array[0..1] of TPUCUUnicodeCharRange=( (7040,7103), (7360,7367) ); const PUCUUnicodeIgnoreCaseScriptBlocks68:array[0..2] of TPUCUUnicodeCharRange=( (7168,7223), (7227,7241), (7245,7247) ); const PUCUUnicodeIgnoreCaseScriptBlocks69:array[0..0] of TPUCUUnicodeCharRange=( (7248,7295) ); const PUCUUnicodeIgnoreCaseScriptBlocks70:array[0..0] of TPUCUUnicodeCharRange=( (42240,42539) ); const PUCUUnicodeIgnoreCaseScriptBlocks71:array[0..1] of TPUCUUnicodeCharRange=( (43136,43205), (43214,43225) ); const PUCUUnicodeIgnoreCaseScriptBlocks72:array[0..1] of TPUCUUnicodeCharRange=( (43264,43309), (43311,43311) ); const PUCUUnicodeIgnoreCaseScriptBlocks73:array[0..1] of TPUCUUnicodeCharRange=( (43312,43347), (43359,43359) ); const PUCUUnicodeIgnoreCaseScriptBlocks74:array[0..0] of TPUCUUnicodeCharRange=( (66176,66204) ); const PUCUUnicodeIgnoreCaseScriptBlocks75:array[0..0] of TPUCUUnicodeCharRange=( (66208,66256) ); const PUCUUnicodeIgnoreCaseScriptBlocks76:array[0..1] of TPUCUUnicodeCharRange=( (67872,67897), (67903,67903) ); const PUCUUnicodeIgnoreCaseScriptBlocks77:array[0..3] of TPUCUUnicodeCharRange=( (43520,43574), (43584,43597), (43600,43609), (43612,43615) ); const PUCUUnicodeIgnoreCaseScriptBlocks78:array[0..4] of TPUCUUnicodeCharRange=( (6688,6750), (6752,6780), (6783,6793), (6800,6809), (6816,6829) ); const PUCUUnicodeIgnoreCaseScriptBlocks79:array[0..1] of TPUCUUnicodeCharRange=( (43648,43714), (43739,43743) ); const PUCUUnicodeIgnoreCaseScriptBlocks80:array[0..1] of TPUCUUnicodeCharRange=( (68352,68405), (68409,68415) ); const PUCUUnicodeIgnoreCaseScriptBlocks81:array[0..0] of TPUCUUnicodeCharRange=( (77824,78933) ); const PUCUUnicodeIgnoreCaseScriptBlocks82:array[0..1] of TPUCUUnicodeCharRange=( (2048,2093), (2096,2110) ); const PUCUUnicodeIgnoreCaseScriptBlocks83:array[0..1] of TPUCUUnicodeCharRange=( (42192,42239), (73648,73648) ); const PUCUUnicodeIgnoreCaseScriptBlocks84:array[0..1] of TPUCUUnicodeCharRange=( (42656,42743), (92160,92728) ); const PUCUUnicodeIgnoreCaseScriptBlocks85:array[0..2] of TPUCUUnicodeCharRange=( (43392,43469), (43472,43481), (43486,43487) ); const PUCUUnicodeIgnoreCaseScriptBlocks86:array[0..2] of TPUCUUnicodeCharRange=( (43744,43766), (43968,44013), (44016,44025) ); const PUCUUnicodeIgnoreCaseScriptBlocks87:array[0..1] of TPUCUUnicodeCharRange=( (67648,67669), (67671,67679) ); const PUCUUnicodeIgnoreCaseScriptBlocks88:array[0..0] of TPUCUUnicodeCharRange=( (68192,68223) ); const PUCUUnicodeIgnoreCaseScriptBlocks89:array[0..1] of TPUCUUnicodeCharRange=( (68416,68437), (68440,68447) ); const PUCUUnicodeIgnoreCaseScriptBlocks90:array[0..1] of TPUCUUnicodeCharRange=( (68448,68466), (68472,68479) ); const PUCUUnicodeIgnoreCaseScriptBlocks91:array[0..0] of TPUCUUnicodeCharRange=( (68608,68680) ); const PUCUUnicodeIgnoreCaseScriptBlocks92:array[0..1] of TPUCUUnicodeCharRange=( (69760,69826), (69837,69837) ); const PUCUUnicodeIgnoreCaseScriptBlocks93:array[0..1] of TPUCUUnicodeCharRange=( (7104,7155), (7164,7167) ); const PUCUUnicodeIgnoreCaseScriptBlocks94:array[0..2] of TPUCUUnicodeCharRange=( (69632,69709), (69714,69749), (69759,69759) ); const PUCUUnicodeIgnoreCaseScriptBlocks95:array[0..1] of TPUCUUnicodeCharRange=( (2112,2139), (2142,2142) ); const PUCUUnicodeIgnoreCaseScriptBlocks96:array[0..1] of TPUCUUnicodeCharRange=( (69888,69940), (69942,69959) ); const PUCUUnicodeIgnoreCaseScriptBlocks97:array[0..2] of TPUCUUnicodeCharRange=( (68000,68023), (68028,68047), (68050,68095) ); const PUCUUnicodeIgnoreCaseScriptBlocks98:array[0..0] of TPUCUUnicodeCharRange=( (67968,67999) ); const PUCUUnicodeIgnoreCaseScriptBlocks99:array[0..2] of TPUCUUnicodeCharRange=( (93952,94026), (94031,94087), (94095,94111) ); const PUCUUnicodeIgnoreCaseScriptBlocks100:array[0..0] of TPUCUUnicodeCharRange=( (70016,70111) ); const PUCUUnicodeIgnoreCaseScriptBlocks101:array[0..1] of TPUCUUnicodeCharRange=( (69840,69864), (69872,69881) ); const PUCUUnicodeIgnoreCaseScriptBlocks102:array[0..1] of TPUCUUnicodeCharRange=( (71296,71353), (71360,71369) ); const PUCUUnicodeIgnoreCaseScriptBlocks103:array[0..1] of TPUCUUnicodeCharRange=( (66864,66915), (66927,66927) ); const PUCUUnicodeIgnoreCaseScriptBlocks104:array[0..1] of TPUCUUnicodeCharRange=( (92880,92909), (92912,92917) ); const PUCUUnicodeIgnoreCaseScriptBlocks105:array[0..4] of TPUCUUnicodeCharRange=( (113664,113770), (113776,113788), (113792,113800), (113808,113817), (113820,113823) ); const PUCUUnicodeIgnoreCaseScriptBlocks106:array[0..0] of TPUCUUnicodeCharRange=( (66816,66855) ); const PUCUUnicodeIgnoreCaseScriptBlocks107:array[0..14] of TPUCUUnicodeCharRange=( (70400,70403), (70405,70412), (70415,70416), (70419,70440), (70442,70448), (70450,70451), (70453,70457), (70460,70468), (70471,70472), (70475,70477), (70480,70480), (70487,70487), (70493,70499), (70502,70508), (70512,70516) ); const PUCUUnicodeIgnoreCaseScriptBlocks108:array[0..4] of TPUCUUnicodeCharRange=( (92928,92997), (93008,93017), (93019,93025), (93027,93047), (93053,93071) ); const PUCUUnicodeIgnoreCaseScriptBlocks109:array[0..1] of TPUCUUnicodeCharRange=( (70144,70161), (70163,70209) ); const PUCUUnicodeIgnoreCaseScriptBlocks110:array[0..2] of TPUCUUnicodeCharRange=( (67072,67382), (67392,67413), (67424,67431) ); const PUCUUnicodeIgnoreCaseScriptBlocks111:array[0..0] of TPUCUUnicodeCharRange=( (69968,70006) ); const PUCUUnicodeIgnoreCaseScriptBlocks112:array[0..1] of TPUCUUnicodeCharRange=( (68288,68326), (68331,68342) ); const PUCUUnicodeIgnoreCaseScriptBlocks113:array[0..1] of TPUCUUnicodeCharRange=( (124928,125124), (125127,125142) ); const PUCUUnicodeIgnoreCaseScriptBlocks114:array[0..1] of TPUCUUnicodeCharRange=( (71168,71236), (71248,71257) ); const PUCUUnicodeIgnoreCaseScriptBlocks115:array[0..2] of TPUCUUnicodeCharRange=( (92736,92766), (92768,92777), (92782,92783) ); const PUCUUnicodeIgnoreCaseScriptBlocks116:array[0..0] of TPUCUUnicodeCharRange=( (68224,68255) ); const PUCUUnicodeIgnoreCaseScriptBlocks117:array[0..1] of TPUCUUnicodeCharRange=( (67712,67742), (67751,67759) ); const PUCUUnicodeIgnoreCaseScriptBlocks118:array[0..0] of TPUCUUnicodeCharRange=( (67680,67711) ); const PUCUUnicodeIgnoreCaseScriptBlocks119:array[0..0] of TPUCUUnicodeCharRange=( (72384,72440) ); const PUCUUnicodeIgnoreCaseScriptBlocks120:array[0..0] of TPUCUUnicodeCharRange=( (66384,66426) ); const PUCUUnicodeIgnoreCaseScriptBlocks121:array[0..2] of TPUCUUnicodeCharRange=( (68480,68497), (68505,68508), (68521,68527) ); const PUCUUnicodeIgnoreCaseScriptBlocks122:array[0..1] of TPUCUUnicodeCharRange=( (71040,71093), (71096,71133) ); const PUCUUnicodeIgnoreCaseScriptBlocks123:array[0..1] of TPUCUUnicodeCharRange=( (70320,70378), (70384,70393) ); const PUCUUnicodeIgnoreCaseScriptBlocks124:array[0..1] of TPUCUUnicodeCharRange=( (70784,70855), (70864,70873) ); const PUCUUnicodeIgnoreCaseScriptBlocks125:array[0..1] of TPUCUUnicodeCharRange=( (71840,71922), (71935,71935) ); const PUCUUnicodeIgnoreCaseScriptBlocks126:array[0..2] of TPUCUUnicodeCharRange=( (71424,71450), (71453,71467), (71472,71494) ); const PUCUUnicodeIgnoreCaseScriptBlocks127:array[0..0] of TPUCUUnicodeCharRange=( (82944,83526) ); const PUCUUnicodeIgnoreCaseScriptBlocks128:array[0..2] of TPUCUUnicodeCharRange=( (67808,67826), (67828,67829), (67835,67839) ); const PUCUUnicodeIgnoreCaseScriptBlocks129:array[0..4] of TPUCUUnicodeCharRange=( (70272,70278), (70280,70280), (70282,70285), (70287,70301), (70303,70313) ); const PUCUUnicodeIgnoreCaseScriptBlocks130:array[0..2] of TPUCUUnicodeCharRange=( (68736,68786), (68800,68850), (68858,68863) ); const PUCUUnicodeIgnoreCaseScriptBlocks131:array[0..2] of TPUCUUnicodeCharRange=( (120832,121483), (121499,121503), (121505,121519) ); const PUCUUnicodeIgnoreCaseScriptBlocks132:array[0..2] of TPUCUUnicodeCharRange=( (125184,125259), (125264,125273), (125278,125279) ); const PUCUUnicodeIgnoreCaseScriptBlocks133:array[0..3] of TPUCUUnicodeCharRange=( (72704,72712), (72714,72758), (72760,72773), (72784,72812) ); const PUCUUnicodeIgnoreCaseScriptBlocks134:array[0..2] of TPUCUUnicodeCharRange=( (72816,72847), (72850,72871), (72873,72886) ); const PUCUUnicodeIgnoreCaseScriptBlocks135:array[0..1] of TPUCUUnicodeCharRange=( (70656,70747), (70749,70753) ); const PUCUUnicodeIgnoreCaseScriptBlocks136:array[0..1] of TPUCUUnicodeCharRange=( (66736,66771), (66776,66811) ); const PUCUUnicodeIgnoreCaseScriptBlocks137:array[0..3] of TPUCUUnicodeCharRange=( (94176,94176), (94208,100343), (100352,101119), (101632,101640) ); const PUCUUnicodeIgnoreCaseScriptBlocks138:array[0..6] of TPUCUUnicodeCharRange=( (72960,72966), (72968,72969), (72971,73014), (73018,73018), (73020,73021), (73023,73031), (73040,73049) ); const PUCUUnicodeIgnoreCaseScriptBlocks139:array[0..1] of TPUCUUnicodeCharRange=( (94177,94177), (110960,111355) ); const PUCUUnicodeIgnoreCaseScriptBlocks140:array[0..0] of TPUCUUnicodeCharRange=( (72272,72354) ); const PUCUUnicodeIgnoreCaseScriptBlocks141:array[0..0] of TPUCUUnicodeCharRange=( (72192,72263) ); const PUCUUnicodeIgnoreCaseScriptBlocks142:array[0..0] of TPUCUUnicodeCharRange=( (71680,71739) ); const PUCUUnicodeIgnoreCaseScriptBlocks143:array[0..5] of TPUCUUnicodeCharRange=( (73056,73061), (73063,73064), (73066,73102), (73104,73105), (73107,73112), (73120,73129) ); const PUCUUnicodeIgnoreCaseScriptBlocks144:array[0..0] of TPUCUUnicodeCharRange=( (73440,73464) ); const PUCUUnicodeIgnoreCaseScriptBlocks145:array[0..0] of TPUCUUnicodeCharRange=( (93760,93850) ); const PUCUUnicodeIgnoreCaseScriptBlocks146:array[0..1] of TPUCUUnicodeCharRange=( (68864,68903), (68912,68921) ); const PUCUUnicodeIgnoreCaseScriptBlocks147:array[0..0] of TPUCUUnicodeCharRange=( (69424,69465) ); const PUCUUnicodeIgnoreCaseScriptBlocks148:array[0..0] of TPUCUUnicodeCharRange=( (69376,69415) ); const PUCUUnicodeIgnoreCaseScriptBlocks149:array[0..0] of TPUCUUnicodeCharRange=( (69600,69622) ); const PUCUUnicodeIgnoreCaseScriptBlocks150:array[0..2] of TPUCUUnicodeCharRange=( (72096,72103), (72106,72151), (72154,72164) ); const PUCUUnicodeIgnoreCaseScriptBlocks151:array[0..3] of TPUCUUnicodeCharRange=( (123136,123180), (123184,123197), (123200,123209), (123214,123215) ); const PUCUUnicodeIgnoreCaseScriptBlocks152:array[0..1] of TPUCUUnicodeCharRange=( (123584,123641), (123647,123647) ); const PUCUUnicodeIgnoreCaseScriptBlocks153:array[0..0] of TPUCUUnicodeCharRange=( (69552,69579) ); const PUCUUnicodeIgnoreCaseScriptBlocks154:array[0..7] of TPUCUUnicodeCharRange=( (71936,71942), (71945,71945), (71948,71955), (71957,71958), (71960,71989), (71991,71992), (71995,72006), (72016,72025) ); const PUCUUnicodeIgnoreCaseScriptBlocks155:array[0..1] of TPUCUUnicodeCharRange=( (94180,94180), (101120,101589) ); const PUCUUnicodeIgnoreCaseScriptBlocks156:array[0..2] of TPUCUUnicodeCharRange=( (69248,69289), (69291,69293), (69296,69297) ); const PUCUUnicodeIgnoreCaseScriptBlocks157:array[0..0] of TPUCUUnicodeCharRange=( (77712,77810) ); const PUCUUnicodeIgnoreCaseScriptBlocks158:array[0..0] of TPUCUUnicodeCharRange=( (69488,69513) ); const PUCUUnicodeIgnoreCaseScriptBlocks159:array[0..1] of TPUCUUnicodeCharRange=( (92784,92862), (92864,92873) ); const PUCUUnicodeIgnoreCaseScriptBlocks160:array[0..0] of TPUCUUnicodeCharRange=( (123536,123566) ); const PUCUUnicodeIgnoreCaseScriptBlocks161:array[0..7] of TPUCUUnicodeCharRange=( (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004) ); const PUCUUnicodeIgnoreCaseScriptBlocks162:array[0..2] of TPUCUUnicodeCharRange=( (73472,73488), (73490,73530), (73534,73561) ); const PUCUUnicodeIgnoreCaseScriptBlocks163:array[0..0] of TPUCUUnicodeCharRange=( (124112,124153) ); const PUCUUnicodeIgnoreCaseScriptBlocksData:array[0..163] of pointer=( @PUCUUnicodeIgnoreCaseScriptBlocks0, @PUCUUnicodeIgnoreCaseScriptBlocks1, @PUCUUnicodeIgnoreCaseScriptBlocks2, @PUCUUnicodeIgnoreCaseScriptBlocks3, @PUCUUnicodeIgnoreCaseScriptBlocks4, @PUCUUnicodeIgnoreCaseScriptBlocks5, @PUCUUnicodeIgnoreCaseScriptBlocks6, @PUCUUnicodeIgnoreCaseScriptBlocks7, @PUCUUnicodeIgnoreCaseScriptBlocks8, @PUCUUnicodeIgnoreCaseScriptBlocks9, @PUCUUnicodeIgnoreCaseScriptBlocks10, @PUCUUnicodeIgnoreCaseScriptBlocks11, @PUCUUnicodeIgnoreCaseScriptBlocks12, @PUCUUnicodeIgnoreCaseScriptBlocks13, @PUCUUnicodeIgnoreCaseScriptBlocks14, @PUCUUnicodeIgnoreCaseScriptBlocks15, @PUCUUnicodeIgnoreCaseScriptBlocks16, @PUCUUnicodeIgnoreCaseScriptBlocks17, @PUCUUnicodeIgnoreCaseScriptBlocks18, @PUCUUnicodeIgnoreCaseScriptBlocks19, @PUCUUnicodeIgnoreCaseScriptBlocks20, @PUCUUnicodeIgnoreCaseScriptBlocks21, @PUCUUnicodeIgnoreCaseScriptBlocks22, @PUCUUnicodeIgnoreCaseScriptBlocks23, @PUCUUnicodeIgnoreCaseScriptBlocks24, @PUCUUnicodeIgnoreCaseScriptBlocks25, @PUCUUnicodeIgnoreCaseScriptBlocks26, @PUCUUnicodeIgnoreCaseScriptBlocks27, @PUCUUnicodeIgnoreCaseScriptBlocks28, @PUCUUnicodeIgnoreCaseScriptBlocks29, @PUCUUnicodeIgnoreCaseScriptBlocks30, @PUCUUnicodeIgnoreCaseScriptBlocks31, @PUCUUnicodeIgnoreCaseScriptBlocks32, @PUCUUnicodeIgnoreCaseScriptBlocks33, @PUCUUnicodeIgnoreCaseScriptBlocks34, @PUCUUnicodeIgnoreCaseScriptBlocks35, @PUCUUnicodeIgnoreCaseScriptBlocks36, @PUCUUnicodeIgnoreCaseScriptBlocks37, @PUCUUnicodeIgnoreCaseScriptBlocks38, @PUCUUnicodeIgnoreCaseScriptBlocks39, @PUCUUnicodeIgnoreCaseScriptBlocks40, @PUCUUnicodeIgnoreCaseScriptBlocks41, @PUCUUnicodeIgnoreCaseScriptBlocks42, @PUCUUnicodeIgnoreCaseScriptBlocks43, @PUCUUnicodeIgnoreCaseScriptBlocks44, @PUCUUnicodeIgnoreCaseScriptBlocks45, @PUCUUnicodeIgnoreCaseScriptBlocks46, @PUCUUnicodeIgnoreCaseScriptBlocks47, @PUCUUnicodeIgnoreCaseScriptBlocks48, @PUCUUnicodeIgnoreCaseScriptBlocks49, @PUCUUnicodeIgnoreCaseScriptBlocks50, @PUCUUnicodeIgnoreCaseScriptBlocks51, @PUCUUnicodeIgnoreCaseScriptBlocks52, @PUCUUnicodeIgnoreCaseScriptBlocks53, @PUCUUnicodeIgnoreCaseScriptBlocks54, @PUCUUnicodeIgnoreCaseScriptBlocks55, @PUCUUnicodeIgnoreCaseScriptBlocks56, @PUCUUnicodeIgnoreCaseScriptBlocks57, @PUCUUnicodeIgnoreCaseScriptBlocks58, @PUCUUnicodeIgnoreCaseScriptBlocks59, @PUCUUnicodeIgnoreCaseScriptBlocks60, @PUCUUnicodeIgnoreCaseScriptBlocks61, @PUCUUnicodeIgnoreCaseScriptBlocks62, @PUCUUnicodeIgnoreCaseScriptBlocks63, @PUCUUnicodeIgnoreCaseScriptBlocks64, @PUCUUnicodeIgnoreCaseScriptBlocks65, @PUCUUnicodeIgnoreCaseScriptBlocks66, @PUCUUnicodeIgnoreCaseScriptBlocks67, @PUCUUnicodeIgnoreCaseScriptBlocks68, @PUCUUnicodeIgnoreCaseScriptBlocks69, @PUCUUnicodeIgnoreCaseScriptBlocks70, @PUCUUnicodeIgnoreCaseScriptBlocks71, @PUCUUnicodeIgnoreCaseScriptBlocks72, @PUCUUnicodeIgnoreCaseScriptBlocks73, @PUCUUnicodeIgnoreCaseScriptBlocks74, @PUCUUnicodeIgnoreCaseScriptBlocks75, @PUCUUnicodeIgnoreCaseScriptBlocks76, @PUCUUnicodeIgnoreCaseScriptBlocks77, @PUCUUnicodeIgnoreCaseScriptBlocks78, @PUCUUnicodeIgnoreCaseScriptBlocks79, @PUCUUnicodeIgnoreCaseScriptBlocks80, @PUCUUnicodeIgnoreCaseScriptBlocks81, @PUCUUnicodeIgnoreCaseScriptBlocks82, @PUCUUnicodeIgnoreCaseScriptBlocks83, @PUCUUnicodeIgnoreCaseScriptBlocks84, @PUCUUnicodeIgnoreCaseScriptBlocks85, @PUCUUnicodeIgnoreCaseScriptBlocks86, @PUCUUnicodeIgnoreCaseScriptBlocks87, @PUCUUnicodeIgnoreCaseScriptBlocks88, @PUCUUnicodeIgnoreCaseScriptBlocks89, @PUCUUnicodeIgnoreCaseScriptBlocks90, @PUCUUnicodeIgnoreCaseScriptBlocks91, @PUCUUnicodeIgnoreCaseScriptBlocks92, @PUCUUnicodeIgnoreCaseScriptBlocks93, @PUCUUnicodeIgnoreCaseScriptBlocks94, @PUCUUnicodeIgnoreCaseScriptBlocks95, @PUCUUnicodeIgnoreCaseScriptBlocks96, @PUCUUnicodeIgnoreCaseScriptBlocks97, @PUCUUnicodeIgnoreCaseScriptBlocks98, @PUCUUnicodeIgnoreCaseScriptBlocks99, @PUCUUnicodeIgnoreCaseScriptBlocks100, @PUCUUnicodeIgnoreCaseScriptBlocks101, @PUCUUnicodeIgnoreCaseScriptBlocks102, @PUCUUnicodeIgnoreCaseScriptBlocks103, @PUCUUnicodeIgnoreCaseScriptBlocks104, @PUCUUnicodeIgnoreCaseScriptBlocks105, @PUCUUnicodeIgnoreCaseScriptBlocks106, @PUCUUnicodeIgnoreCaseScriptBlocks107, @PUCUUnicodeIgnoreCaseScriptBlocks108, @PUCUUnicodeIgnoreCaseScriptBlocks109, @PUCUUnicodeIgnoreCaseScriptBlocks110, @PUCUUnicodeIgnoreCaseScriptBlocks111, @PUCUUnicodeIgnoreCaseScriptBlocks112, @PUCUUnicodeIgnoreCaseScriptBlocks113, @PUCUUnicodeIgnoreCaseScriptBlocks114, @PUCUUnicodeIgnoreCaseScriptBlocks115, @PUCUUnicodeIgnoreCaseScriptBlocks116, @PUCUUnicodeIgnoreCaseScriptBlocks117, @PUCUUnicodeIgnoreCaseScriptBlocks118, @PUCUUnicodeIgnoreCaseScriptBlocks119, @PUCUUnicodeIgnoreCaseScriptBlocks120, @PUCUUnicodeIgnoreCaseScriptBlocks121, @PUCUUnicodeIgnoreCaseScriptBlocks122, @PUCUUnicodeIgnoreCaseScriptBlocks123, @PUCUUnicodeIgnoreCaseScriptBlocks124, @PUCUUnicodeIgnoreCaseScriptBlocks125, @PUCUUnicodeIgnoreCaseScriptBlocks126, @PUCUUnicodeIgnoreCaseScriptBlocks127, @PUCUUnicodeIgnoreCaseScriptBlocks128, @PUCUUnicodeIgnoreCaseScriptBlocks129, @PUCUUnicodeIgnoreCaseScriptBlocks130, @PUCUUnicodeIgnoreCaseScriptBlocks131, @PUCUUnicodeIgnoreCaseScriptBlocks132, @PUCUUnicodeIgnoreCaseScriptBlocks133, @PUCUUnicodeIgnoreCaseScriptBlocks134, @PUCUUnicodeIgnoreCaseScriptBlocks135, @PUCUUnicodeIgnoreCaseScriptBlocks136, @PUCUUnicodeIgnoreCaseScriptBlocks137, @PUCUUnicodeIgnoreCaseScriptBlocks138, @PUCUUnicodeIgnoreCaseScriptBlocks139, @PUCUUnicodeIgnoreCaseScriptBlocks140, @PUCUUnicodeIgnoreCaseScriptBlocks141, @PUCUUnicodeIgnoreCaseScriptBlocks142, @PUCUUnicodeIgnoreCaseScriptBlocks143, @PUCUUnicodeIgnoreCaseScriptBlocks144, @PUCUUnicodeIgnoreCaseScriptBlocks145, @PUCUUnicodeIgnoreCaseScriptBlocks146, @PUCUUnicodeIgnoreCaseScriptBlocks147, @PUCUUnicodeIgnoreCaseScriptBlocks148, @PUCUUnicodeIgnoreCaseScriptBlocks149, @PUCUUnicodeIgnoreCaseScriptBlocks150, @PUCUUnicodeIgnoreCaseScriptBlocks151, @PUCUUnicodeIgnoreCaseScriptBlocks152, @PUCUUnicodeIgnoreCaseScriptBlocks153, @PUCUUnicodeIgnoreCaseScriptBlocks154, @PUCUUnicodeIgnoreCaseScriptBlocks155, @PUCUUnicodeIgnoreCaseScriptBlocks156, @PUCUUnicodeIgnoreCaseScriptBlocks157, @PUCUUnicodeIgnoreCaseScriptBlocks158, @PUCUUnicodeIgnoreCaseScriptBlocks159, @PUCUUnicodeIgnoreCaseScriptBlocks160, @PUCUUnicodeIgnoreCaseScriptBlocks161, @PUCUUnicodeIgnoreCaseScriptBlocks162, @PUCUUnicodeIgnoreCaseScriptBlocks163 ); const PUCUUnicodeIgnoreCaseScriptBlocksCounts:array[0..163] of longint=( 705, 174, 39, 36, 10, 4, 9, 58, 4, 1, 5, 14, 16, 14, 14, 18, 13, 13, 7, 13, 2, 11, 7, 3, 10, 14, 36, 3, 3, 1, 2, 4, 6, 6, 14, 3, 21, 2, 2, 1, 1, 30, 2, 1, 1, 3, 5, 2, 7, 2, 1, 2, 6, 1, 2, 3, 4, 6, 3, 1, 2, 8, 2, 4, 2, 1, 2, 2, 3, 1, 1, 2, 2, 2, 1, 1, 2, 4, 5, 2, 2, 1, 2, 2, 2, 3, 3, 2, 1, 2, 2, 1, 2, 2, 3, 2, 2, 3, 1, 3, 1, 2, 2, 2, 2, 5, 1, 15, 5, 2, 3, 1, 2, 2, 2, 3, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 3, 1, 3, 5, 3, 3, 3, 4, 3, 2, 2, 4, 7, 2, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 4, 2, 1, 8, 2, 3, 1, 1, 2, 1, 8, 3, 1 ); const PUCUCountUnicodeBlockBlocks=326; const PUCUUnicodeBlockBlocks0:array[0..0] of TPUCUUnicodeCharRange=( (0,127) ); const PUCUUnicodeBlockBlocks1:array[0..0] of TPUCUUnicodeCharRange=( (128,255) ); const PUCUUnicodeBlockBlocks2:array[0..0] of TPUCUUnicodeCharRange=( (256,383) ); const PUCUUnicodeBlockBlocks3:array[0..0] of TPUCUUnicodeCharRange=( (384,591) ); const PUCUUnicodeBlockBlocks4:array[0..0] of TPUCUUnicodeCharRange=( (592,687) ); const PUCUUnicodeBlockBlocks5:array[0..0] of TPUCUUnicodeCharRange=( (688,767) ); const PUCUUnicodeBlockBlocks6:array[0..0] of TPUCUUnicodeCharRange=( (768,879) ); const PUCUUnicodeBlockBlocks7:array[0..0] of TPUCUUnicodeCharRange=( (880,1023) ); const PUCUUnicodeBlockBlocks8:array[0..0] of TPUCUUnicodeCharRange=( (1024,1279) ); const PUCUUnicodeBlockBlocks9:array[0..0] of TPUCUUnicodeCharRange=( (1280,1327) ); const PUCUUnicodeBlockBlocks10:array[0..0] of TPUCUUnicodeCharRange=( (1328,1423) ); const PUCUUnicodeBlockBlocks11:array[0..0] of TPUCUUnicodeCharRange=( (1424,1535) ); const PUCUUnicodeBlockBlocks12:array[0..0] of TPUCUUnicodeCharRange=( (1536,1791) ); const PUCUUnicodeBlockBlocks13:array[0..0] of TPUCUUnicodeCharRange=( (1792,1871) ); const PUCUUnicodeBlockBlocks14:array[0..0] of TPUCUUnicodeCharRange=( (1872,1919) ); const PUCUUnicodeBlockBlocks15:array[0..0] of TPUCUUnicodeCharRange=( (1920,1983) ); const PUCUUnicodeBlockBlocks16:array[0..0] of TPUCUUnicodeCharRange=( (1984,2047) ); const PUCUUnicodeBlockBlocks17:array[0..0] of TPUCUUnicodeCharRange=( (2048,2111) ); const PUCUUnicodeBlockBlocks18:array[0..0] of TPUCUUnicodeCharRange=( (2112,2143) ); const PUCUUnicodeBlockBlocks19:array[0..0] of TPUCUUnicodeCharRange=( (2144,2159) ); const PUCUUnicodeBlockBlocks20:array[0..0] of TPUCUUnicodeCharRange=( (2160,2207) ); const PUCUUnicodeBlockBlocks21:array[0..0] of TPUCUUnicodeCharRange=( (2208,2303) ); const PUCUUnicodeBlockBlocks22:array[0..0] of TPUCUUnicodeCharRange=( (2304,2431) ); const PUCUUnicodeBlockBlocks23:array[0..0] of TPUCUUnicodeCharRange=( (2432,2559) ); const PUCUUnicodeBlockBlocks24:array[0..0] of TPUCUUnicodeCharRange=( (2560,2687) ); const PUCUUnicodeBlockBlocks25:array[0..0] of TPUCUUnicodeCharRange=( (2688,2815) ); const PUCUUnicodeBlockBlocks26:array[0..0] of TPUCUUnicodeCharRange=( (2816,2943) ); const PUCUUnicodeBlockBlocks27:array[0..0] of TPUCUUnicodeCharRange=( (2944,3071) ); const PUCUUnicodeBlockBlocks28:array[0..0] of TPUCUUnicodeCharRange=( (3072,3199) ); const PUCUUnicodeBlockBlocks29:array[0..0] of TPUCUUnicodeCharRange=( (3200,3327) ); const PUCUUnicodeBlockBlocks30:array[0..0] of TPUCUUnicodeCharRange=( (3328,3455) ); const PUCUUnicodeBlockBlocks31:array[0..0] of TPUCUUnicodeCharRange=( (3456,3583) ); const PUCUUnicodeBlockBlocks32:array[0..0] of TPUCUUnicodeCharRange=( (3584,3711) ); const PUCUUnicodeBlockBlocks33:array[0..0] of TPUCUUnicodeCharRange=( (3712,3839) ); const PUCUUnicodeBlockBlocks34:array[0..0] of TPUCUUnicodeCharRange=( (3840,4095) ); const PUCUUnicodeBlockBlocks35:array[0..0] of TPUCUUnicodeCharRange=( (4096,4255) ); const PUCUUnicodeBlockBlocks36:array[0..0] of TPUCUUnicodeCharRange=( (4256,4351) ); const PUCUUnicodeBlockBlocks37:array[0..0] of TPUCUUnicodeCharRange=( (4352,4607) ); const PUCUUnicodeBlockBlocks38:array[0..0] of TPUCUUnicodeCharRange=( (4608,4991) ); const PUCUUnicodeBlockBlocks39:array[0..0] of TPUCUUnicodeCharRange=( (4992,5023) ); const PUCUUnicodeBlockBlocks40:array[0..0] of TPUCUUnicodeCharRange=( (5024,5119) ); const PUCUUnicodeBlockBlocks41:array[0..0] of TPUCUUnicodeCharRange=( (5120,5759) ); const PUCUUnicodeBlockBlocks42:array[0..0] of TPUCUUnicodeCharRange=( (5760,5791) ); const PUCUUnicodeBlockBlocks43:array[0..0] of TPUCUUnicodeCharRange=( (5792,5887) ); const PUCUUnicodeBlockBlocks44:array[0..0] of TPUCUUnicodeCharRange=( (5888,5919) ); const PUCUUnicodeBlockBlocks45:array[0..0] of TPUCUUnicodeCharRange=( (5920,5951) ); const PUCUUnicodeBlockBlocks46:array[0..0] of TPUCUUnicodeCharRange=( (5952,5983) ); const PUCUUnicodeBlockBlocks47:array[0..0] of TPUCUUnicodeCharRange=( (5984,6015) ); const PUCUUnicodeBlockBlocks48:array[0..0] of TPUCUUnicodeCharRange=( (6016,6143) ); const PUCUUnicodeBlockBlocks49:array[0..0] of TPUCUUnicodeCharRange=( (6144,6319) ); const PUCUUnicodeBlockBlocks50:array[0..0] of TPUCUUnicodeCharRange=( (6320,6399) ); const PUCUUnicodeBlockBlocks51:array[0..0] of TPUCUUnicodeCharRange=( (6400,6479) ); const PUCUUnicodeBlockBlocks52:array[0..0] of TPUCUUnicodeCharRange=( (6480,6527) ); const PUCUUnicodeBlockBlocks53:array[0..0] of TPUCUUnicodeCharRange=( (6528,6623) ); const PUCUUnicodeBlockBlocks54:array[0..0] of TPUCUUnicodeCharRange=( (6624,6655) ); const PUCUUnicodeBlockBlocks55:array[0..0] of TPUCUUnicodeCharRange=( (6656,6687) ); const PUCUUnicodeBlockBlocks56:array[0..0] of TPUCUUnicodeCharRange=( (6688,6831) ); const PUCUUnicodeBlockBlocks57:array[0..0] of TPUCUUnicodeCharRange=( (6832,6911) ); const PUCUUnicodeBlockBlocks58:array[0..0] of TPUCUUnicodeCharRange=( (6912,7039) ); const PUCUUnicodeBlockBlocks59:array[0..0] of TPUCUUnicodeCharRange=( (7040,7103) ); const PUCUUnicodeBlockBlocks60:array[0..0] of TPUCUUnicodeCharRange=( (7104,7167) ); const PUCUUnicodeBlockBlocks61:array[0..0] of TPUCUUnicodeCharRange=( (7168,7247) ); const PUCUUnicodeBlockBlocks62:array[0..0] of TPUCUUnicodeCharRange=( (7248,7295) ); const PUCUUnicodeBlockBlocks63:array[0..0] of TPUCUUnicodeCharRange=( (7296,7311) ); const PUCUUnicodeBlockBlocks64:array[0..0] of TPUCUUnicodeCharRange=( (7312,7359) ); const PUCUUnicodeBlockBlocks65:array[0..0] of TPUCUUnicodeCharRange=( (7360,7375) ); const PUCUUnicodeBlockBlocks66:array[0..0] of TPUCUUnicodeCharRange=( (7376,7423) ); const PUCUUnicodeBlockBlocks67:array[0..0] of TPUCUUnicodeCharRange=( (7424,7551) ); const PUCUUnicodeBlockBlocks68:array[0..0] of TPUCUUnicodeCharRange=( (7552,7615) ); const PUCUUnicodeBlockBlocks69:array[0..0] of TPUCUUnicodeCharRange=( (7616,7679) ); const PUCUUnicodeBlockBlocks70:array[0..0] of TPUCUUnicodeCharRange=( (7680,7935) ); const PUCUUnicodeBlockBlocks71:array[0..0] of TPUCUUnicodeCharRange=( (7936,8191) ); const PUCUUnicodeBlockBlocks72:array[0..0] of TPUCUUnicodeCharRange=( (8192,8303) ); const PUCUUnicodeBlockBlocks73:array[0..0] of TPUCUUnicodeCharRange=( (8304,8351) ); const PUCUUnicodeBlockBlocks74:array[0..0] of TPUCUUnicodeCharRange=( (8352,8399) ); const PUCUUnicodeBlockBlocks75:array[0..0] of TPUCUUnicodeCharRange=( (8400,8447) ); const PUCUUnicodeBlockBlocks76:array[0..0] of TPUCUUnicodeCharRange=( (8448,8527) ); const PUCUUnicodeBlockBlocks77:array[0..0] of TPUCUUnicodeCharRange=( (8528,8591) ); const PUCUUnicodeBlockBlocks78:array[0..0] of TPUCUUnicodeCharRange=( (8592,8703) ); const PUCUUnicodeBlockBlocks79:array[0..0] of TPUCUUnicodeCharRange=( (8704,8959) ); const PUCUUnicodeBlockBlocks80:array[0..0] of TPUCUUnicodeCharRange=( (8960,9215) ); const PUCUUnicodeBlockBlocks81:array[0..0] of TPUCUUnicodeCharRange=( (9216,9279) ); const PUCUUnicodeBlockBlocks82:array[0..0] of TPUCUUnicodeCharRange=( (9280,9311) ); const PUCUUnicodeBlockBlocks83:array[0..0] of TPUCUUnicodeCharRange=( (9312,9471) ); const PUCUUnicodeBlockBlocks84:array[0..0] of TPUCUUnicodeCharRange=( (9472,9599) ); const PUCUUnicodeBlockBlocks85:array[0..0] of TPUCUUnicodeCharRange=( (9600,9631) ); const PUCUUnicodeBlockBlocks86:array[0..0] of TPUCUUnicodeCharRange=( (9632,9727) ); const PUCUUnicodeBlockBlocks87:array[0..0] of TPUCUUnicodeCharRange=( (9728,9983) ); const PUCUUnicodeBlockBlocks88:array[0..0] of TPUCUUnicodeCharRange=( (9984,10175) ); const PUCUUnicodeBlockBlocks89:array[0..0] of TPUCUUnicodeCharRange=( (10176,10223) ); const PUCUUnicodeBlockBlocks90:array[0..0] of TPUCUUnicodeCharRange=( (10224,10239) ); const PUCUUnicodeBlockBlocks91:array[0..0] of TPUCUUnicodeCharRange=( (10240,10495) ); const PUCUUnicodeBlockBlocks92:array[0..0] of TPUCUUnicodeCharRange=( (10496,10623) ); const PUCUUnicodeBlockBlocks93:array[0..0] of TPUCUUnicodeCharRange=( (10624,10751) ); const PUCUUnicodeBlockBlocks94:array[0..0] of TPUCUUnicodeCharRange=( (10752,11007) ); const PUCUUnicodeBlockBlocks95:array[0..0] of TPUCUUnicodeCharRange=( (11008,11263) ); const PUCUUnicodeBlockBlocks96:array[0..0] of TPUCUUnicodeCharRange=( (11264,11359) ); const PUCUUnicodeBlockBlocks97:array[0..0] of TPUCUUnicodeCharRange=( (11360,11391) ); const PUCUUnicodeBlockBlocks98:array[0..0] of TPUCUUnicodeCharRange=( (11392,11519) ); const PUCUUnicodeBlockBlocks99:array[0..0] of TPUCUUnicodeCharRange=( (11520,11567) ); const PUCUUnicodeBlockBlocks100:array[0..0] of TPUCUUnicodeCharRange=( (11568,11647) ); const PUCUUnicodeBlockBlocks101:array[0..0] of TPUCUUnicodeCharRange=( (11648,11743) ); const PUCUUnicodeBlockBlocks102:array[0..0] of TPUCUUnicodeCharRange=( (11744,11775) ); const PUCUUnicodeBlockBlocks103:array[0..0] of TPUCUUnicodeCharRange=( (11776,11903) ); const PUCUUnicodeBlockBlocks104:array[0..0] of TPUCUUnicodeCharRange=( (11904,12031) ); const PUCUUnicodeBlockBlocks105:array[0..0] of TPUCUUnicodeCharRange=( (12032,12255) ); const PUCUUnicodeBlockBlocks106:array[0..0] of TPUCUUnicodeCharRange=( (12272,12287) ); const PUCUUnicodeBlockBlocks107:array[0..0] of TPUCUUnicodeCharRange=( (12288,12351) ); const PUCUUnicodeBlockBlocks108:array[0..0] of TPUCUUnicodeCharRange=( (12352,12447) ); const PUCUUnicodeBlockBlocks109:array[0..0] of TPUCUUnicodeCharRange=( (12448,12543) ); const PUCUUnicodeBlockBlocks110:array[0..0] of TPUCUUnicodeCharRange=( (12544,12591) ); const PUCUUnicodeBlockBlocks111:array[0..0] of TPUCUUnicodeCharRange=( (12592,12687) ); const PUCUUnicodeBlockBlocks112:array[0..0] of TPUCUUnicodeCharRange=( (12688,12703) ); const PUCUUnicodeBlockBlocks113:array[0..0] of TPUCUUnicodeCharRange=( (12704,12735) ); const PUCUUnicodeBlockBlocks114:array[0..0] of TPUCUUnicodeCharRange=( (12736,12783) ); const PUCUUnicodeBlockBlocks115:array[0..0] of TPUCUUnicodeCharRange=( (12784,12799) ); const PUCUUnicodeBlockBlocks116:array[0..0] of TPUCUUnicodeCharRange=( (12800,13055) ); const PUCUUnicodeBlockBlocks117:array[0..0] of TPUCUUnicodeCharRange=( (13056,13311) ); const PUCUUnicodeBlockBlocks118:array[0..0] of TPUCUUnicodeCharRange=( (13312,19903) ); const PUCUUnicodeBlockBlocks119:array[0..0] of TPUCUUnicodeCharRange=( (19904,19967) ); const PUCUUnicodeBlockBlocks120:array[0..0] of TPUCUUnicodeCharRange=( (19968,40959) ); const PUCUUnicodeBlockBlocks121:array[0..0] of TPUCUUnicodeCharRange=( (40960,42127) ); const PUCUUnicodeBlockBlocks122:array[0..0] of TPUCUUnicodeCharRange=( (42128,42191) ); const PUCUUnicodeBlockBlocks123:array[0..0] of TPUCUUnicodeCharRange=( (42192,42239) ); const PUCUUnicodeBlockBlocks124:array[0..0] of TPUCUUnicodeCharRange=( (42240,42559) ); const PUCUUnicodeBlockBlocks125:array[0..0] of TPUCUUnicodeCharRange=( (42560,42655) ); const PUCUUnicodeBlockBlocks126:array[0..0] of TPUCUUnicodeCharRange=( (42656,42751) ); const PUCUUnicodeBlockBlocks127:array[0..0] of TPUCUUnicodeCharRange=( (42752,42783) ); const PUCUUnicodeBlockBlocks128:array[0..0] of TPUCUUnicodeCharRange=( (42784,43007) ); const PUCUUnicodeBlockBlocks129:array[0..0] of TPUCUUnicodeCharRange=( (43008,43055) ); const PUCUUnicodeBlockBlocks130:array[0..0] of TPUCUUnicodeCharRange=( (43056,43071) ); const PUCUUnicodeBlockBlocks131:array[0..0] of TPUCUUnicodeCharRange=( (43072,43135) ); const PUCUUnicodeBlockBlocks132:array[0..0] of TPUCUUnicodeCharRange=( (43136,43231) ); const PUCUUnicodeBlockBlocks133:array[0..0] of TPUCUUnicodeCharRange=( (43232,43263) ); const PUCUUnicodeBlockBlocks134:array[0..0] of TPUCUUnicodeCharRange=( (43264,43311) ); const PUCUUnicodeBlockBlocks135:array[0..0] of TPUCUUnicodeCharRange=( (43312,43359) ); const PUCUUnicodeBlockBlocks136:array[0..0] of TPUCUUnicodeCharRange=( (43360,43391) ); const PUCUUnicodeBlockBlocks137:array[0..0] of TPUCUUnicodeCharRange=( (43392,43487) ); const PUCUUnicodeBlockBlocks138:array[0..0] of TPUCUUnicodeCharRange=( (43488,43519) ); const PUCUUnicodeBlockBlocks139:array[0..0] of TPUCUUnicodeCharRange=( (43520,43615) ); const PUCUUnicodeBlockBlocks140:array[0..0] of TPUCUUnicodeCharRange=( (43616,43647) ); const PUCUUnicodeBlockBlocks141:array[0..0] of TPUCUUnicodeCharRange=( (43648,43743) ); const PUCUUnicodeBlockBlocks142:array[0..0] of TPUCUUnicodeCharRange=( (43744,43775) ); const PUCUUnicodeBlockBlocks143:array[0..0] of TPUCUUnicodeCharRange=( (43776,43823) ); const PUCUUnicodeBlockBlocks144:array[0..0] of TPUCUUnicodeCharRange=( (43824,43887) ); const PUCUUnicodeBlockBlocks145:array[0..0] of TPUCUUnicodeCharRange=( (43888,43967) ); const PUCUUnicodeBlockBlocks146:array[0..0] of TPUCUUnicodeCharRange=( (43968,44031) ); const PUCUUnicodeBlockBlocks147:array[0..0] of TPUCUUnicodeCharRange=( (44032,55215) ); const PUCUUnicodeBlockBlocks148:array[0..0] of TPUCUUnicodeCharRange=( (55216,55295) ); const PUCUUnicodeBlockBlocks149:array[0..0] of TPUCUUnicodeCharRange=( (55296,56191) ); const PUCUUnicodeBlockBlocks150:array[0..0] of TPUCUUnicodeCharRange=( (56192,56319) ); const PUCUUnicodeBlockBlocks151:array[0..0] of TPUCUUnicodeCharRange=( (56320,57343) ); const PUCUUnicodeBlockBlocks152:array[0..0] of TPUCUUnicodeCharRange=( (57344,63743) ); const PUCUUnicodeBlockBlocks153:array[0..0] of TPUCUUnicodeCharRange=( (63744,64255) ); const PUCUUnicodeBlockBlocks154:array[0..0] of TPUCUUnicodeCharRange=( (64256,64335) ); const PUCUUnicodeBlockBlocks155:array[0..0] of TPUCUUnicodeCharRange=( (64336,65023) ); const PUCUUnicodeBlockBlocks156:array[0..0] of TPUCUUnicodeCharRange=( (65024,65039) ); const PUCUUnicodeBlockBlocks157:array[0..0] of TPUCUUnicodeCharRange=( (65040,65055) ); const PUCUUnicodeBlockBlocks158:array[0..0] of TPUCUUnicodeCharRange=( (65056,65071) ); const PUCUUnicodeBlockBlocks159:array[0..0] of TPUCUUnicodeCharRange=( (65072,65103) ); const PUCUUnicodeBlockBlocks160:array[0..0] of TPUCUUnicodeCharRange=( (65104,65135) ); const PUCUUnicodeBlockBlocks161:array[0..0] of TPUCUUnicodeCharRange=( (65136,65279) ); const PUCUUnicodeBlockBlocks162:array[0..0] of TPUCUUnicodeCharRange=( (65280,65519) ); const PUCUUnicodeBlockBlocks163:array[0..0] of TPUCUUnicodeCharRange=( (65520,65535) ); const PUCUUnicodeBlockBlocks164:array[0..0] of TPUCUUnicodeCharRange=( (65536,65663) ); const PUCUUnicodeBlockBlocks165:array[0..0] of TPUCUUnicodeCharRange=( (65664,65791) ); const PUCUUnicodeBlockBlocks166:array[0..0] of TPUCUUnicodeCharRange=( (65792,65855) ); const PUCUUnicodeBlockBlocks167:array[0..0] of TPUCUUnicodeCharRange=( (65856,65935) ); const PUCUUnicodeBlockBlocks168:array[0..0] of TPUCUUnicodeCharRange=( (65936,65999) ); const PUCUUnicodeBlockBlocks169:array[0..0] of TPUCUUnicodeCharRange=( (66000,66047) ); const PUCUUnicodeBlockBlocks170:array[0..0] of TPUCUUnicodeCharRange=( (66176,66207) ); const PUCUUnicodeBlockBlocks171:array[0..0] of TPUCUUnicodeCharRange=( (66208,66271) ); const PUCUUnicodeBlockBlocks172:array[0..0] of TPUCUUnicodeCharRange=( (66272,66303) ); const PUCUUnicodeBlockBlocks173:array[0..0] of TPUCUUnicodeCharRange=( (66304,66351) ); const PUCUUnicodeBlockBlocks174:array[0..0] of TPUCUUnicodeCharRange=( (66352,66383) ); const PUCUUnicodeBlockBlocks175:array[0..0] of TPUCUUnicodeCharRange=( (66384,66431) ); const PUCUUnicodeBlockBlocks176:array[0..0] of TPUCUUnicodeCharRange=( (66432,66463) ); const PUCUUnicodeBlockBlocks177:array[0..0] of TPUCUUnicodeCharRange=( (66464,66527) ); const PUCUUnicodeBlockBlocks178:array[0..0] of TPUCUUnicodeCharRange=( (66560,66639) ); const PUCUUnicodeBlockBlocks179:array[0..0] of TPUCUUnicodeCharRange=( (66640,66687) ); const PUCUUnicodeBlockBlocks180:array[0..0] of TPUCUUnicodeCharRange=( (66688,66735) ); const PUCUUnicodeBlockBlocks181:array[0..0] of TPUCUUnicodeCharRange=( (66736,66815) ); const PUCUUnicodeBlockBlocks182:array[0..0] of TPUCUUnicodeCharRange=( (66816,66863) ); const PUCUUnicodeBlockBlocks183:array[0..0] of TPUCUUnicodeCharRange=( (66864,66927) ); const PUCUUnicodeBlockBlocks184:array[0..0] of TPUCUUnicodeCharRange=( (66928,67007) ); const PUCUUnicodeBlockBlocks185:array[0..0] of TPUCUUnicodeCharRange=( (67072,67455) ); const PUCUUnicodeBlockBlocks186:array[0..0] of TPUCUUnicodeCharRange=( (67456,67519) ); const PUCUUnicodeBlockBlocks187:array[0..0] of TPUCUUnicodeCharRange=( (67584,67647) ); const PUCUUnicodeBlockBlocks188:array[0..0] of TPUCUUnicodeCharRange=( (67648,67679) ); const PUCUUnicodeBlockBlocks189:array[0..0] of TPUCUUnicodeCharRange=( (67680,67711) ); const PUCUUnicodeBlockBlocks190:array[0..0] of TPUCUUnicodeCharRange=( (67712,67759) ); const PUCUUnicodeBlockBlocks191:array[0..0] of TPUCUUnicodeCharRange=( (67808,67839) ); const PUCUUnicodeBlockBlocks192:array[0..0] of TPUCUUnicodeCharRange=( (67840,67871) ); const PUCUUnicodeBlockBlocks193:array[0..0] of TPUCUUnicodeCharRange=( (67872,67903) ); const PUCUUnicodeBlockBlocks194:array[0..0] of TPUCUUnicodeCharRange=( (67968,67999) ); const PUCUUnicodeBlockBlocks195:array[0..0] of TPUCUUnicodeCharRange=( (68000,68095) ); const PUCUUnicodeBlockBlocks196:array[0..0] of TPUCUUnicodeCharRange=( (68096,68191) ); const PUCUUnicodeBlockBlocks197:array[0..0] of TPUCUUnicodeCharRange=( (68192,68223) ); const PUCUUnicodeBlockBlocks198:array[0..0] of TPUCUUnicodeCharRange=( (68224,68255) ); const PUCUUnicodeBlockBlocks199:array[0..0] of TPUCUUnicodeCharRange=( (68288,68351) ); const PUCUUnicodeBlockBlocks200:array[0..0] of TPUCUUnicodeCharRange=( (68352,68415) ); const PUCUUnicodeBlockBlocks201:array[0..0] of TPUCUUnicodeCharRange=( (68416,68447) ); const PUCUUnicodeBlockBlocks202:array[0..0] of TPUCUUnicodeCharRange=( (68448,68479) ); const PUCUUnicodeBlockBlocks203:array[0..0] of TPUCUUnicodeCharRange=( (68480,68527) ); const PUCUUnicodeBlockBlocks204:array[0..0] of TPUCUUnicodeCharRange=( (68608,68687) ); const PUCUUnicodeBlockBlocks205:array[0..0] of TPUCUUnicodeCharRange=( (68736,68863) ); const PUCUUnicodeBlockBlocks206:array[0..0] of TPUCUUnicodeCharRange=( (68864,68927) ); const PUCUUnicodeBlockBlocks207:array[0..0] of TPUCUUnicodeCharRange=( (69216,69247) ); const PUCUUnicodeBlockBlocks208:array[0..0] of TPUCUUnicodeCharRange=( (69248,69311) ); const PUCUUnicodeBlockBlocks209:array[0..0] of TPUCUUnicodeCharRange=( (69312,69375) ); const PUCUUnicodeBlockBlocks210:array[0..0] of TPUCUUnicodeCharRange=( (69376,69423) ); const PUCUUnicodeBlockBlocks211:array[0..0] of TPUCUUnicodeCharRange=( (69424,69487) ); const PUCUUnicodeBlockBlocks212:array[0..0] of TPUCUUnicodeCharRange=( (69488,69551) ); const PUCUUnicodeBlockBlocks213:array[0..0] of TPUCUUnicodeCharRange=( (69552,69599) ); const PUCUUnicodeBlockBlocks214:array[0..0] of TPUCUUnicodeCharRange=( (69600,69631) ); const PUCUUnicodeBlockBlocks215:array[0..0] of TPUCUUnicodeCharRange=( (69632,69759) ); const PUCUUnicodeBlockBlocks216:array[0..0] of TPUCUUnicodeCharRange=( (69760,69839) ); const PUCUUnicodeBlockBlocks217:array[0..0] of TPUCUUnicodeCharRange=( (69840,69887) ); const PUCUUnicodeBlockBlocks218:array[0..0] of TPUCUUnicodeCharRange=( (69888,69967) ); const PUCUUnicodeBlockBlocks219:array[0..0] of TPUCUUnicodeCharRange=( (69968,70015) ); const PUCUUnicodeBlockBlocks220:array[0..0] of TPUCUUnicodeCharRange=( (70016,70111) ); const PUCUUnicodeBlockBlocks221:array[0..0] of TPUCUUnicodeCharRange=( (70112,70143) ); const PUCUUnicodeBlockBlocks222:array[0..0] of TPUCUUnicodeCharRange=( (70144,70223) ); const PUCUUnicodeBlockBlocks223:array[0..0] of TPUCUUnicodeCharRange=( (70272,70319) ); const PUCUUnicodeBlockBlocks224:array[0..0] of TPUCUUnicodeCharRange=( (70320,70399) ); const PUCUUnicodeBlockBlocks225:array[0..0] of TPUCUUnicodeCharRange=( (70400,70527) ); const PUCUUnicodeBlockBlocks226:array[0..0] of TPUCUUnicodeCharRange=( (70656,70783) ); const PUCUUnicodeBlockBlocks227:array[0..0] of TPUCUUnicodeCharRange=( (70784,70879) ); const PUCUUnicodeBlockBlocks228:array[0..0] of TPUCUUnicodeCharRange=( (71040,71167) ); const PUCUUnicodeBlockBlocks229:array[0..0] of TPUCUUnicodeCharRange=( (71168,71263) ); const PUCUUnicodeBlockBlocks230:array[0..0] of TPUCUUnicodeCharRange=( (71264,71295) ); const PUCUUnicodeBlockBlocks231:array[0..0] of TPUCUUnicodeCharRange=( (71296,71375) ); const PUCUUnicodeBlockBlocks232:array[0..0] of TPUCUUnicodeCharRange=( (71424,71503) ); const PUCUUnicodeBlockBlocks233:array[0..0] of TPUCUUnicodeCharRange=( (71680,71759) ); const PUCUUnicodeBlockBlocks234:array[0..0] of TPUCUUnicodeCharRange=( (71840,71935) ); const PUCUUnicodeBlockBlocks235:array[0..0] of TPUCUUnicodeCharRange=( (71936,72031) ); const PUCUUnicodeBlockBlocks236:array[0..0] of TPUCUUnicodeCharRange=( (72096,72191) ); const PUCUUnicodeBlockBlocks237:array[0..0] of TPUCUUnicodeCharRange=( (72192,72271) ); const PUCUUnicodeBlockBlocks238:array[0..0] of TPUCUUnicodeCharRange=( (72272,72367) ); const PUCUUnicodeBlockBlocks239:array[0..0] of TPUCUUnicodeCharRange=( (72368,72383) ); const PUCUUnicodeBlockBlocks240:array[0..0] of TPUCUUnicodeCharRange=( (72384,72447) ); const PUCUUnicodeBlockBlocks241:array[0..0] of TPUCUUnicodeCharRange=( (72448,72543) ); const PUCUUnicodeBlockBlocks242:array[0..0] of TPUCUUnicodeCharRange=( (72704,72815) ); const PUCUUnicodeBlockBlocks243:array[0..0] of TPUCUUnicodeCharRange=( (72816,72895) ); const PUCUUnicodeBlockBlocks244:array[0..0] of TPUCUUnicodeCharRange=( (72960,73055) ); const PUCUUnicodeBlockBlocks245:array[0..0] of TPUCUUnicodeCharRange=( (73056,73135) ); const PUCUUnicodeBlockBlocks246:array[0..0] of TPUCUUnicodeCharRange=( (73440,73471) ); const PUCUUnicodeBlockBlocks247:array[0..0] of TPUCUUnicodeCharRange=( (73472,73567) ); const PUCUUnicodeBlockBlocks248:array[0..0] of TPUCUUnicodeCharRange=( (73648,73663) ); const PUCUUnicodeBlockBlocks249:array[0..0] of TPUCUUnicodeCharRange=( (73664,73727) ); const PUCUUnicodeBlockBlocks250:array[0..0] of TPUCUUnicodeCharRange=( (73728,74751) ); const PUCUUnicodeBlockBlocks251:array[0..0] of TPUCUUnicodeCharRange=( (74752,74879) ); const PUCUUnicodeBlockBlocks252:array[0..0] of TPUCUUnicodeCharRange=( (74880,75087) ); const PUCUUnicodeBlockBlocks253:array[0..0] of TPUCUUnicodeCharRange=( (77712,77823) ); const PUCUUnicodeBlockBlocks254:array[0..0] of TPUCUUnicodeCharRange=( (77824,78895) ); const PUCUUnicodeBlockBlocks255:array[0..0] of TPUCUUnicodeCharRange=( (78896,78943) ); const PUCUUnicodeBlockBlocks256:array[0..0] of TPUCUUnicodeCharRange=( (82944,83583) ); const PUCUUnicodeBlockBlocks257:array[0..0] of TPUCUUnicodeCharRange=( (92160,92735) ); const PUCUUnicodeBlockBlocks258:array[0..0] of TPUCUUnicodeCharRange=( (92736,92783) ); const PUCUUnicodeBlockBlocks259:array[0..0] of TPUCUUnicodeCharRange=( (92784,92879) ); const PUCUUnicodeBlockBlocks260:array[0..0] of TPUCUUnicodeCharRange=( (92880,92927) ); const PUCUUnicodeBlockBlocks261:array[0..0] of TPUCUUnicodeCharRange=( (92928,93071) ); const PUCUUnicodeBlockBlocks262:array[0..0] of TPUCUUnicodeCharRange=( (93760,93855) ); const PUCUUnicodeBlockBlocks263:array[0..0] of TPUCUUnicodeCharRange=( (93952,94111) ); const PUCUUnicodeBlockBlocks264:array[0..0] of TPUCUUnicodeCharRange=( (94176,94207) ); const PUCUUnicodeBlockBlocks265:array[0..0] of TPUCUUnicodeCharRange=( (94208,100351) ); const PUCUUnicodeBlockBlocks266:array[0..0] of TPUCUUnicodeCharRange=( (100352,101119) ); const PUCUUnicodeBlockBlocks267:array[0..0] of TPUCUUnicodeCharRange=( (101120,101631) ); const PUCUUnicodeBlockBlocks268:array[0..0] of TPUCUUnicodeCharRange=( (101632,101759) ); const PUCUUnicodeBlockBlocks269:array[0..0] of TPUCUUnicodeCharRange=( (110576,110591) ); const PUCUUnicodeBlockBlocks270:array[0..0] of TPUCUUnicodeCharRange=( (110592,110847) ); const PUCUUnicodeBlockBlocks271:array[0..0] of TPUCUUnicodeCharRange=( (110848,110895) ); const PUCUUnicodeBlockBlocks272:array[0..0] of TPUCUUnicodeCharRange=( (110896,110959) ); const PUCUUnicodeBlockBlocks273:array[0..0] of TPUCUUnicodeCharRange=( (110960,111359) ); const PUCUUnicodeBlockBlocks274:array[0..0] of TPUCUUnicodeCharRange=( (113664,113823) ); const PUCUUnicodeBlockBlocks275:array[0..0] of TPUCUUnicodeCharRange=( (113824,113839) ); const PUCUUnicodeBlockBlocks276:array[0..0] of TPUCUUnicodeCharRange=( (118528,118735) ); const PUCUUnicodeBlockBlocks277:array[0..0] of TPUCUUnicodeCharRange=( (118784,119039) ); const PUCUUnicodeBlockBlocks278:array[0..0] of TPUCUUnicodeCharRange=( (119040,119295) ); const PUCUUnicodeBlockBlocks279:array[0..0] of TPUCUUnicodeCharRange=( (119296,119375) ); const PUCUUnicodeBlockBlocks280:array[0..0] of TPUCUUnicodeCharRange=( (119488,119519) ); const PUCUUnicodeBlockBlocks281:array[0..0] of TPUCUUnicodeCharRange=( (119520,119551) ); const PUCUUnicodeBlockBlocks282:array[0..0] of TPUCUUnicodeCharRange=( (119552,119647) ); const PUCUUnicodeBlockBlocks283:array[0..0] of TPUCUUnicodeCharRange=( (119648,119679) ); const PUCUUnicodeBlockBlocks284:array[0..0] of TPUCUUnicodeCharRange=( (119808,120831) ); const PUCUUnicodeBlockBlocks285:array[0..0] of TPUCUUnicodeCharRange=( (120832,121519) ); const PUCUUnicodeBlockBlocks286:array[0..0] of TPUCUUnicodeCharRange=( (122624,122879) ); const PUCUUnicodeBlockBlocks287:array[0..0] of TPUCUUnicodeCharRange=( (122880,122927) ); const PUCUUnicodeBlockBlocks288:array[0..0] of TPUCUUnicodeCharRange=( (122928,123023) ); const PUCUUnicodeBlockBlocks289:array[0..0] of TPUCUUnicodeCharRange=( (123136,123215) ); const PUCUUnicodeBlockBlocks290:array[0..0] of TPUCUUnicodeCharRange=( (123536,123583) ); const PUCUUnicodeBlockBlocks291:array[0..0] of TPUCUUnicodeCharRange=( (123584,123647) ); const PUCUUnicodeBlockBlocks292:array[0..0] of TPUCUUnicodeCharRange=( (124112,124159) ); const PUCUUnicodeBlockBlocks293:array[0..0] of TPUCUUnicodeCharRange=( (124896,124927) ); const PUCUUnicodeBlockBlocks294:array[0..0] of TPUCUUnicodeCharRange=( (124928,125151) ); const PUCUUnicodeBlockBlocks295:array[0..0] of TPUCUUnicodeCharRange=( (125184,125279) ); const PUCUUnicodeBlockBlocks296:array[0..0] of TPUCUUnicodeCharRange=( (126064,126143) ); const PUCUUnicodeBlockBlocks297:array[0..0] of TPUCUUnicodeCharRange=( (126208,126287) ); const PUCUUnicodeBlockBlocks298:array[0..0] of TPUCUUnicodeCharRange=( (126464,126719) ); const PUCUUnicodeBlockBlocks299:array[0..0] of TPUCUUnicodeCharRange=( (126976,127023) ); const PUCUUnicodeBlockBlocks300:array[0..0] of TPUCUUnicodeCharRange=( (127024,127135) ); const PUCUUnicodeBlockBlocks301:array[0..0] of TPUCUUnicodeCharRange=( (127136,127231) ); const PUCUUnicodeBlockBlocks302:array[0..0] of TPUCUUnicodeCharRange=( (127232,127487) ); const PUCUUnicodeBlockBlocks303:array[0..0] of TPUCUUnicodeCharRange=( (127488,127743) ); const PUCUUnicodeBlockBlocks304:array[0..0] of TPUCUUnicodeCharRange=( (127744,128511) ); const PUCUUnicodeBlockBlocks305:array[0..0] of TPUCUUnicodeCharRange=( (128512,128591) ); const PUCUUnicodeBlockBlocks306:array[0..0] of TPUCUUnicodeCharRange=( (128592,128639) ); const PUCUUnicodeBlockBlocks307:array[0..0] of TPUCUUnicodeCharRange=( (128640,128767) ); const PUCUUnicodeBlockBlocks308:array[0..0] of TPUCUUnicodeCharRange=( (128768,128895) ); const PUCUUnicodeBlockBlocks309:array[0..0] of TPUCUUnicodeCharRange=( (128896,129023) ); const PUCUUnicodeBlockBlocks310:array[0..0] of TPUCUUnicodeCharRange=( (129024,129279) ); const PUCUUnicodeBlockBlocks311:array[0..0] of TPUCUUnicodeCharRange=( (129280,129535) ); const PUCUUnicodeBlockBlocks312:array[0..0] of TPUCUUnicodeCharRange=( (129536,129647) ); const PUCUUnicodeBlockBlocks313:array[0..0] of TPUCUUnicodeCharRange=( (129648,129791) ); const PUCUUnicodeBlockBlocks314:array[0..0] of TPUCUUnicodeCharRange=( (129792,130047) ); const PUCUUnicodeBlockBlocks315:array[0..0] of TPUCUUnicodeCharRange=( (131072,173791) ); const PUCUUnicodeBlockBlocks316:array[0..0] of TPUCUUnicodeCharRange=( (173824,177983) ); const PUCUUnicodeBlockBlocks317:array[0..0] of TPUCUUnicodeCharRange=( (177984,178207) ); const PUCUUnicodeBlockBlocks318:array[0..0] of TPUCUUnicodeCharRange=( (178208,183983) ); const PUCUUnicodeBlockBlocks319:array[0..0] of TPUCUUnicodeCharRange=( (183984,191471) ); const PUCUUnicodeBlockBlocks320:array[0..0] of TPUCUUnicodeCharRange=( (194560,195103) ); const PUCUUnicodeBlockBlocks321:array[0..0] of TPUCUUnicodeCharRange=( (196608,201551) ); const PUCUUnicodeBlockBlocks322:array[0..0] of TPUCUUnicodeCharRange=( (201552,205743) ); const PUCUUnicodeBlockBlocks323:array[0..0] of TPUCUUnicodeCharRange=( (917504,917631) ); const PUCUUnicodeBlockBlocks324:array[0..0] of TPUCUUnicodeCharRange=( (917760,917999) ); const PUCUUnicodeBlockBlocks325:array[0..0] of TPUCUUnicodeCharRange=( (983040,1048575) ); const PUCUUnicodeBlockBlocks326:array[0..0] of TPUCUUnicodeCharRange=( (1048576,1114111) ); const PUCUUnicodeBlockBlocksData:array[0..326] of pointer=( @PUCUUnicodeBlockBlocks0, @PUCUUnicodeBlockBlocks1, @PUCUUnicodeBlockBlocks2, @PUCUUnicodeBlockBlocks3, @PUCUUnicodeBlockBlocks4, @PUCUUnicodeBlockBlocks5, @PUCUUnicodeBlockBlocks6, @PUCUUnicodeBlockBlocks7, @PUCUUnicodeBlockBlocks8, @PUCUUnicodeBlockBlocks9, @PUCUUnicodeBlockBlocks10, @PUCUUnicodeBlockBlocks11, @PUCUUnicodeBlockBlocks12, @PUCUUnicodeBlockBlocks13, @PUCUUnicodeBlockBlocks14, @PUCUUnicodeBlockBlocks15, @PUCUUnicodeBlockBlocks16, @PUCUUnicodeBlockBlocks17, @PUCUUnicodeBlockBlocks18, @PUCUUnicodeBlockBlocks19, @PUCUUnicodeBlockBlocks20, @PUCUUnicodeBlockBlocks21, @PUCUUnicodeBlockBlocks22, @PUCUUnicodeBlockBlocks23, @PUCUUnicodeBlockBlocks24, @PUCUUnicodeBlockBlocks25, @PUCUUnicodeBlockBlocks26, @PUCUUnicodeBlockBlocks27, @PUCUUnicodeBlockBlocks28, @PUCUUnicodeBlockBlocks29, @PUCUUnicodeBlockBlocks30, @PUCUUnicodeBlockBlocks31, @PUCUUnicodeBlockBlocks32, @PUCUUnicodeBlockBlocks33, @PUCUUnicodeBlockBlocks34, @PUCUUnicodeBlockBlocks35, @PUCUUnicodeBlockBlocks36, @PUCUUnicodeBlockBlocks37, @PUCUUnicodeBlockBlocks38, @PUCUUnicodeBlockBlocks39, @PUCUUnicodeBlockBlocks40, @PUCUUnicodeBlockBlocks41, @PUCUUnicodeBlockBlocks42, @PUCUUnicodeBlockBlocks43, @PUCUUnicodeBlockBlocks44, @PUCUUnicodeBlockBlocks45, @PUCUUnicodeBlockBlocks46, @PUCUUnicodeBlockBlocks47, @PUCUUnicodeBlockBlocks48, @PUCUUnicodeBlockBlocks49, @PUCUUnicodeBlockBlocks50, @PUCUUnicodeBlockBlocks51, @PUCUUnicodeBlockBlocks52, @PUCUUnicodeBlockBlocks53, @PUCUUnicodeBlockBlocks54, @PUCUUnicodeBlockBlocks55, @PUCUUnicodeBlockBlocks56, @PUCUUnicodeBlockBlocks57, @PUCUUnicodeBlockBlocks58, @PUCUUnicodeBlockBlocks59, @PUCUUnicodeBlockBlocks60, @PUCUUnicodeBlockBlocks61, @PUCUUnicodeBlockBlocks62, @PUCUUnicodeBlockBlocks63, @PUCUUnicodeBlockBlocks64, @PUCUUnicodeBlockBlocks65, @PUCUUnicodeBlockBlocks66, @PUCUUnicodeBlockBlocks67, @PUCUUnicodeBlockBlocks68, @PUCUUnicodeBlockBlocks69, @PUCUUnicodeBlockBlocks70, @PUCUUnicodeBlockBlocks71, @PUCUUnicodeBlockBlocks72, @PUCUUnicodeBlockBlocks73, @PUCUUnicodeBlockBlocks74, @PUCUUnicodeBlockBlocks75, @PUCUUnicodeBlockBlocks76, @PUCUUnicodeBlockBlocks77, @PUCUUnicodeBlockBlocks78, @PUCUUnicodeBlockBlocks79, @PUCUUnicodeBlockBlocks80, @PUCUUnicodeBlockBlocks81, @PUCUUnicodeBlockBlocks82, @PUCUUnicodeBlockBlocks83, @PUCUUnicodeBlockBlocks84, @PUCUUnicodeBlockBlocks85, @PUCUUnicodeBlockBlocks86, @PUCUUnicodeBlockBlocks87, @PUCUUnicodeBlockBlocks88, @PUCUUnicodeBlockBlocks89, @PUCUUnicodeBlockBlocks90, @PUCUUnicodeBlockBlocks91, @PUCUUnicodeBlockBlocks92, @PUCUUnicodeBlockBlocks93, @PUCUUnicodeBlockBlocks94, @PUCUUnicodeBlockBlocks95, @PUCUUnicodeBlockBlocks96, @PUCUUnicodeBlockBlocks97, @PUCUUnicodeBlockBlocks98, @PUCUUnicodeBlockBlocks99, @PUCUUnicodeBlockBlocks100, @PUCUUnicodeBlockBlocks101, @PUCUUnicodeBlockBlocks102, @PUCUUnicodeBlockBlocks103, @PUCUUnicodeBlockBlocks104, @PUCUUnicodeBlockBlocks105, @PUCUUnicodeBlockBlocks106, @PUCUUnicodeBlockBlocks107, @PUCUUnicodeBlockBlocks108, @PUCUUnicodeBlockBlocks109, @PUCUUnicodeBlockBlocks110, @PUCUUnicodeBlockBlocks111, @PUCUUnicodeBlockBlocks112, @PUCUUnicodeBlockBlocks113, @PUCUUnicodeBlockBlocks114, @PUCUUnicodeBlockBlocks115, @PUCUUnicodeBlockBlocks116, @PUCUUnicodeBlockBlocks117, @PUCUUnicodeBlockBlocks118, @PUCUUnicodeBlockBlocks119, @PUCUUnicodeBlockBlocks120, @PUCUUnicodeBlockBlocks121, @PUCUUnicodeBlockBlocks122, @PUCUUnicodeBlockBlocks123, @PUCUUnicodeBlockBlocks124, @PUCUUnicodeBlockBlocks125, @PUCUUnicodeBlockBlocks126, @PUCUUnicodeBlockBlocks127, @PUCUUnicodeBlockBlocks128, @PUCUUnicodeBlockBlocks129, @PUCUUnicodeBlockBlocks130, @PUCUUnicodeBlockBlocks131, @PUCUUnicodeBlockBlocks132, @PUCUUnicodeBlockBlocks133, @PUCUUnicodeBlockBlocks134, @PUCUUnicodeBlockBlocks135, @PUCUUnicodeBlockBlocks136, @PUCUUnicodeBlockBlocks137, @PUCUUnicodeBlockBlocks138, @PUCUUnicodeBlockBlocks139, @PUCUUnicodeBlockBlocks140, @PUCUUnicodeBlockBlocks141, @PUCUUnicodeBlockBlocks142, @PUCUUnicodeBlockBlocks143, @PUCUUnicodeBlockBlocks144, @PUCUUnicodeBlockBlocks145, @PUCUUnicodeBlockBlocks146, @PUCUUnicodeBlockBlocks147, @PUCUUnicodeBlockBlocks148, @PUCUUnicodeBlockBlocks149, @PUCUUnicodeBlockBlocks150, @PUCUUnicodeBlockBlocks151, @PUCUUnicodeBlockBlocks152, @PUCUUnicodeBlockBlocks153, @PUCUUnicodeBlockBlocks154, @PUCUUnicodeBlockBlocks155, @PUCUUnicodeBlockBlocks156, @PUCUUnicodeBlockBlocks157, @PUCUUnicodeBlockBlocks158, @PUCUUnicodeBlockBlocks159, @PUCUUnicodeBlockBlocks160, @PUCUUnicodeBlockBlocks161, @PUCUUnicodeBlockBlocks162, @PUCUUnicodeBlockBlocks163, @PUCUUnicodeBlockBlocks164, @PUCUUnicodeBlockBlocks165, @PUCUUnicodeBlockBlocks166, @PUCUUnicodeBlockBlocks167, @PUCUUnicodeBlockBlocks168, @PUCUUnicodeBlockBlocks169, @PUCUUnicodeBlockBlocks170, @PUCUUnicodeBlockBlocks171, @PUCUUnicodeBlockBlocks172, @PUCUUnicodeBlockBlocks173, @PUCUUnicodeBlockBlocks174, @PUCUUnicodeBlockBlocks175, @PUCUUnicodeBlockBlocks176, @PUCUUnicodeBlockBlocks177, @PUCUUnicodeBlockBlocks178, @PUCUUnicodeBlockBlocks179, @PUCUUnicodeBlockBlocks180, @PUCUUnicodeBlockBlocks181, @PUCUUnicodeBlockBlocks182, @PUCUUnicodeBlockBlocks183, @PUCUUnicodeBlockBlocks184, @PUCUUnicodeBlockBlocks185, @PUCUUnicodeBlockBlocks186, @PUCUUnicodeBlockBlocks187, @PUCUUnicodeBlockBlocks188, @PUCUUnicodeBlockBlocks189, @PUCUUnicodeBlockBlocks190, @PUCUUnicodeBlockBlocks191, @PUCUUnicodeBlockBlocks192, @PUCUUnicodeBlockBlocks193, @PUCUUnicodeBlockBlocks194, @PUCUUnicodeBlockBlocks195, @PUCUUnicodeBlockBlocks196, @PUCUUnicodeBlockBlocks197, @PUCUUnicodeBlockBlocks198, @PUCUUnicodeBlockBlocks199, @PUCUUnicodeBlockBlocks200, @PUCUUnicodeBlockBlocks201, @PUCUUnicodeBlockBlocks202, @PUCUUnicodeBlockBlocks203, @PUCUUnicodeBlockBlocks204, @PUCUUnicodeBlockBlocks205, @PUCUUnicodeBlockBlocks206, @PUCUUnicodeBlockBlocks207, @PUCUUnicodeBlockBlocks208, @PUCUUnicodeBlockBlocks209, @PUCUUnicodeBlockBlocks210, @PUCUUnicodeBlockBlocks211, @PUCUUnicodeBlockBlocks212, @PUCUUnicodeBlockBlocks213, @PUCUUnicodeBlockBlocks214, @PUCUUnicodeBlockBlocks215, @PUCUUnicodeBlockBlocks216, @PUCUUnicodeBlockBlocks217, @PUCUUnicodeBlockBlocks218, @PUCUUnicodeBlockBlocks219, @PUCUUnicodeBlockBlocks220, @PUCUUnicodeBlockBlocks221, @PUCUUnicodeBlockBlocks222, @PUCUUnicodeBlockBlocks223, @PUCUUnicodeBlockBlocks224, @PUCUUnicodeBlockBlocks225, @PUCUUnicodeBlockBlocks226, @PUCUUnicodeBlockBlocks227, @PUCUUnicodeBlockBlocks228, @PUCUUnicodeBlockBlocks229, @PUCUUnicodeBlockBlocks230, @PUCUUnicodeBlockBlocks231, @PUCUUnicodeBlockBlocks232, @PUCUUnicodeBlockBlocks233, @PUCUUnicodeBlockBlocks234, @PUCUUnicodeBlockBlocks235, @PUCUUnicodeBlockBlocks236, @PUCUUnicodeBlockBlocks237, @PUCUUnicodeBlockBlocks238, @PUCUUnicodeBlockBlocks239, @PUCUUnicodeBlockBlocks240, @PUCUUnicodeBlockBlocks241, @PUCUUnicodeBlockBlocks242, @PUCUUnicodeBlockBlocks243, @PUCUUnicodeBlockBlocks244, @PUCUUnicodeBlockBlocks245, @PUCUUnicodeBlockBlocks246, @PUCUUnicodeBlockBlocks247, @PUCUUnicodeBlockBlocks248, @PUCUUnicodeBlockBlocks249, @PUCUUnicodeBlockBlocks250, @PUCUUnicodeBlockBlocks251, @PUCUUnicodeBlockBlocks252, @PUCUUnicodeBlockBlocks253, @PUCUUnicodeBlockBlocks254, @PUCUUnicodeBlockBlocks255, @PUCUUnicodeBlockBlocks256, @PUCUUnicodeBlockBlocks257, @PUCUUnicodeBlockBlocks258, @PUCUUnicodeBlockBlocks259, @PUCUUnicodeBlockBlocks260, @PUCUUnicodeBlockBlocks261, @PUCUUnicodeBlockBlocks262, @PUCUUnicodeBlockBlocks263, @PUCUUnicodeBlockBlocks264, @PUCUUnicodeBlockBlocks265, @PUCUUnicodeBlockBlocks266, @PUCUUnicodeBlockBlocks267, @PUCUUnicodeBlockBlocks268, @PUCUUnicodeBlockBlocks269, @PUCUUnicodeBlockBlocks270, @PUCUUnicodeBlockBlocks271, @PUCUUnicodeBlockBlocks272, @PUCUUnicodeBlockBlocks273, @PUCUUnicodeBlockBlocks274, @PUCUUnicodeBlockBlocks275, @PUCUUnicodeBlockBlocks276, @PUCUUnicodeBlockBlocks277, @PUCUUnicodeBlockBlocks278, @PUCUUnicodeBlockBlocks279, @PUCUUnicodeBlockBlocks280, @PUCUUnicodeBlockBlocks281, @PUCUUnicodeBlockBlocks282, @PUCUUnicodeBlockBlocks283, @PUCUUnicodeBlockBlocks284, @PUCUUnicodeBlockBlocks285, @PUCUUnicodeBlockBlocks286, @PUCUUnicodeBlockBlocks287, @PUCUUnicodeBlockBlocks288, @PUCUUnicodeBlockBlocks289, @PUCUUnicodeBlockBlocks290, @PUCUUnicodeBlockBlocks291, @PUCUUnicodeBlockBlocks292, @PUCUUnicodeBlockBlocks293, @PUCUUnicodeBlockBlocks294, @PUCUUnicodeBlockBlocks295, @PUCUUnicodeBlockBlocks296, @PUCUUnicodeBlockBlocks297, @PUCUUnicodeBlockBlocks298, @PUCUUnicodeBlockBlocks299, @PUCUUnicodeBlockBlocks300, @PUCUUnicodeBlockBlocks301, @PUCUUnicodeBlockBlocks302, @PUCUUnicodeBlockBlocks303, @PUCUUnicodeBlockBlocks304, @PUCUUnicodeBlockBlocks305, @PUCUUnicodeBlockBlocks306, @PUCUUnicodeBlockBlocks307, @PUCUUnicodeBlockBlocks308, @PUCUUnicodeBlockBlocks309, @PUCUUnicodeBlockBlocks310, @PUCUUnicodeBlockBlocks311, @PUCUUnicodeBlockBlocks312, @PUCUUnicodeBlockBlocks313, @PUCUUnicodeBlockBlocks314, @PUCUUnicodeBlockBlocks315, @PUCUUnicodeBlockBlocks316, @PUCUUnicodeBlockBlocks317, @PUCUUnicodeBlockBlocks318, @PUCUUnicodeBlockBlocks319, @PUCUUnicodeBlockBlocks320, @PUCUUnicodeBlockBlocks321, @PUCUUnicodeBlockBlocks322, @PUCUUnicodeBlockBlocks323, @PUCUUnicodeBlockBlocks324, @PUCUUnicodeBlockBlocks325, @PUCUUnicodeBlockBlocks326 ); const PUCUUnicodeBlockBlocksCounts:array[0..326] of longint=( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ); const PUCUCountUnicodeIgnoreCaseBlockBlocks=326; const PUCUUnicodeIgnoreCaseBlockBlocks0:array[0..0] of TPUCUUnicodeCharRange=( (0,127) ); const PUCUUnicodeIgnoreCaseBlockBlocks1:array[0..2] of TPUCUUnicodeCharRange=( (128,255), (376,376), (924,924) ); const PUCUUnicodeIgnoreCaseBlockBlocks2:array[0..3] of TPUCUUnicodeCharRange=( (73,73), (83,83), (105,105), (255,383) ); const PUCUUnicodeIgnoreCaseBlockBlocks3:array[0..16] of TPUCUUnicodeCharRange=( (384,591), (595,596), (598,599), (601,601), (603,603), (608,608), (611,611), (616,617), (623,623), (626,626), (629,629), (640,640), (643,643), (648,652), (658,658), (11365,11366), (11390,11391) ); const PUCUUnicodeIgnoreCaseBlockBlocks4:array[0..21] of TPUCUUnicodeCharRange=( (385,385), (390,390), (393,394), (399,400), (403,404), (406,407), (412,413), (415,415), (422,422), (425,425), (430,430), (433,434), (439,439), (580,581), (592,687), (11362,11362), (11364,11364), (11373,11376), (42893,42893), (42922,42926), (42928,42930), (42949,42949) ); const PUCUUnicodeIgnoreCaseBlockBlocks5:array[0..0] of TPUCUUnicodeCharRange=( (688,767) ); const PUCUUnicodeIgnoreCaseBlockBlocks6:array[0..1] of TPUCUUnicodeCharRange=( (768,879), (921,921) ); const PUCUUnicodeIgnoreCaseBlockBlocks7:array[0..0] of TPUCUUnicodeCharRange=( (880,1023) ); const PUCUUnicodeIgnoreCaseBlockBlocks8:array[0..0] of TPUCUUnicodeCharRange=( (1024,1279) ); const PUCUUnicodeIgnoreCaseBlockBlocks9:array[0..0] of TPUCUUnicodeCharRange=( (1280,1327) ); const PUCUUnicodeIgnoreCaseBlockBlocks10:array[0..0] of TPUCUUnicodeCharRange=( (1328,1423) ); const PUCUUnicodeIgnoreCaseBlockBlocks11:array[0..0] of TPUCUUnicodeCharRange=( (1424,1535) ); const PUCUUnicodeIgnoreCaseBlockBlocks12:array[0..0] of TPUCUUnicodeCharRange=( (1536,1791) ); const PUCUUnicodeIgnoreCaseBlockBlocks13:array[0..0] of TPUCUUnicodeCharRange=( (1792,1871) ); const PUCUUnicodeIgnoreCaseBlockBlocks14:array[0..0] of TPUCUUnicodeCharRange=( (1872,1919) ); const PUCUUnicodeIgnoreCaseBlockBlocks15:array[0..0] of TPUCUUnicodeCharRange=( (1920,1983) ); const PUCUUnicodeIgnoreCaseBlockBlocks16:array[0..0] of TPUCUUnicodeCharRange=( (1984,2047) ); const PUCUUnicodeIgnoreCaseBlockBlocks17:array[0..0] of TPUCUUnicodeCharRange=( (2048,2111) ); const PUCUUnicodeIgnoreCaseBlockBlocks18:array[0..0] of TPUCUUnicodeCharRange=( (2112,2143) ); const PUCUUnicodeIgnoreCaseBlockBlocks19:array[0..0] of TPUCUUnicodeCharRange=( (2144,2159) ); const PUCUUnicodeIgnoreCaseBlockBlocks20:array[0..0] of TPUCUUnicodeCharRange=( (2160,2207) ); const PUCUUnicodeIgnoreCaseBlockBlocks21:array[0..0] of TPUCUUnicodeCharRange=( (2208,2303) ); const PUCUUnicodeIgnoreCaseBlockBlocks22:array[0..0] of TPUCUUnicodeCharRange=( (2304,2431) ); const PUCUUnicodeIgnoreCaseBlockBlocks23:array[0..0] of TPUCUUnicodeCharRange=( (2432,2559) ); const PUCUUnicodeIgnoreCaseBlockBlocks24:array[0..0] of TPUCUUnicodeCharRange=( (2560,2687) ); const PUCUUnicodeIgnoreCaseBlockBlocks25:array[0..0] of TPUCUUnicodeCharRange=( (2688,2815) ); const PUCUUnicodeIgnoreCaseBlockBlocks26:array[0..0] of TPUCUUnicodeCharRange=( (2816,2943) ); const PUCUUnicodeIgnoreCaseBlockBlocks27:array[0..0] of TPUCUUnicodeCharRange=( (2944,3071) ); const PUCUUnicodeIgnoreCaseBlockBlocks28:array[0..0] of TPUCUUnicodeCharRange=( (3072,3199) ); const PUCUUnicodeIgnoreCaseBlockBlocks29:array[0..0] of TPUCUUnicodeCharRange=( (3200,3327) ); const PUCUUnicodeIgnoreCaseBlockBlocks30:array[0..0] of TPUCUUnicodeCharRange=( (3328,3455) ); const PUCUUnicodeIgnoreCaseBlockBlocks31:array[0..0] of TPUCUUnicodeCharRange=( (3456,3583) ); const PUCUUnicodeIgnoreCaseBlockBlocks32:array[0..0] of TPUCUUnicodeCharRange=( (3584,3711) ); const PUCUUnicodeIgnoreCaseBlockBlocks33:array[0..0] of TPUCUUnicodeCharRange=( (3712,3839) ); const PUCUUnicodeIgnoreCaseBlockBlocks34:array[0..0] of TPUCUUnicodeCharRange=( (3840,4095) ); const PUCUUnicodeIgnoreCaseBlockBlocks35:array[0..0] of TPUCUUnicodeCharRange=( (4096,4255) ); const PUCUUnicodeIgnoreCaseBlockBlocks36:array[0..5] of TPUCUUnicodeCharRange=( (4256,4351), (7312,7354), (7357,7359), (11520,11557), (11559,11559), (11565,11565) ); const PUCUUnicodeIgnoreCaseBlockBlocks37:array[0..0] of TPUCUUnicodeCharRange=( (4352,4607) ); const PUCUUnicodeIgnoreCaseBlockBlocks38:array[0..0] of TPUCUUnicodeCharRange=( (4608,4991) ); const PUCUUnicodeIgnoreCaseBlockBlocks39:array[0..0] of TPUCUUnicodeCharRange=( (4992,5023) ); const PUCUUnicodeIgnoreCaseBlockBlocks40:array[0..1] of TPUCUUnicodeCharRange=( (5024,5119), (43888,43967) ); const PUCUUnicodeIgnoreCaseBlockBlocks41:array[0..0] of TPUCUUnicodeCharRange=( (5120,5759) ); const PUCUUnicodeIgnoreCaseBlockBlocks42:array[0..0] of TPUCUUnicodeCharRange=( (5760,5791) ); const PUCUUnicodeIgnoreCaseBlockBlocks43:array[0..0] of TPUCUUnicodeCharRange=( (5792,5887) ); const PUCUUnicodeIgnoreCaseBlockBlocks44:array[0..0] of TPUCUUnicodeCharRange=( (5888,5919) ); const PUCUUnicodeIgnoreCaseBlockBlocks45:array[0..0] of TPUCUUnicodeCharRange=( (5920,5951) ); const PUCUUnicodeIgnoreCaseBlockBlocks46:array[0..0] of TPUCUUnicodeCharRange=( (5952,5983) ); const PUCUUnicodeIgnoreCaseBlockBlocks47:array[0..0] of TPUCUUnicodeCharRange=( (5984,6015) ); const PUCUUnicodeIgnoreCaseBlockBlocks48:array[0..0] of TPUCUUnicodeCharRange=( (6016,6143) ); const PUCUUnicodeIgnoreCaseBlockBlocks49:array[0..0] of TPUCUUnicodeCharRange=( (6144,6319) ); const PUCUUnicodeIgnoreCaseBlockBlocks50:array[0..0] of TPUCUUnicodeCharRange=( (6320,6399) ); const PUCUUnicodeIgnoreCaseBlockBlocks51:array[0..0] of TPUCUUnicodeCharRange=( (6400,6479) ); const PUCUUnicodeIgnoreCaseBlockBlocks52:array[0..0] of TPUCUUnicodeCharRange=( (6480,6527) ); const PUCUUnicodeIgnoreCaseBlockBlocks53:array[0..0] of TPUCUUnicodeCharRange=( (6528,6623) ); const PUCUUnicodeIgnoreCaseBlockBlocks54:array[0..0] of TPUCUUnicodeCharRange=( (6624,6655) ); const PUCUUnicodeIgnoreCaseBlockBlocks55:array[0..0] of TPUCUUnicodeCharRange=( (6656,6687) ); const PUCUUnicodeIgnoreCaseBlockBlocks56:array[0..0] of TPUCUUnicodeCharRange=( (6688,6831) ); const PUCUUnicodeIgnoreCaseBlockBlocks57:array[0..0] of TPUCUUnicodeCharRange=( (6832,6911) ); const PUCUUnicodeIgnoreCaseBlockBlocks58:array[0..0] of TPUCUUnicodeCharRange=( (6912,7039) ); const PUCUUnicodeIgnoreCaseBlockBlocks59:array[0..0] of TPUCUUnicodeCharRange=( (7040,7103) ); const PUCUUnicodeIgnoreCaseBlockBlocks60:array[0..0] of TPUCUUnicodeCharRange=( (7104,7167) ); const PUCUUnicodeIgnoreCaseBlockBlocks61:array[0..0] of TPUCUUnicodeCharRange=( (7168,7247) ); const PUCUUnicodeIgnoreCaseBlockBlocks62:array[0..0] of TPUCUUnicodeCharRange=( (7248,7295) ); const PUCUUnicodeIgnoreCaseBlockBlocks63:array[0..7] of TPUCUUnicodeCharRange=( (1042,1042), (1044,1044), (1054,1054), (1057,1058), (1066,1066), (1122,1122), (7296,7311), (42570,42570) ); const PUCUUnicodeIgnoreCaseBlockBlocks64:array[0..2] of TPUCUUnicodeCharRange=( (4304,4346), (4349,4351), (7312,7359) ); const PUCUUnicodeIgnoreCaseBlockBlocks65:array[0..0] of TPUCUUnicodeCharRange=( (7360,7375) ); const PUCUUnicodeIgnoreCaseBlockBlocks66:array[0..0] of TPUCUUnicodeCharRange=( (7376,7423) ); const PUCUUnicodeIgnoreCaseBlockBlocks67:array[0..2] of TPUCUUnicodeCharRange=( (7424,7551), (11363,11363), (42877,42877) ); const PUCUUnicodeIgnoreCaseBlockBlocks68:array[0..1] of TPUCUUnicodeCharRange=( (7552,7615), (42950,42950) ); const PUCUUnicodeIgnoreCaseBlockBlocks69:array[0..0] of TPUCUUnicodeCharRange=( (7616,7679) ); const PUCUUnicodeIgnoreCaseBlockBlocks70:array[0..1] of TPUCUUnicodeCharRange=( (223,223), (7680,7935) ); const PUCUUnicodeIgnoreCaseBlockBlocks71:array[0..1] of TPUCUUnicodeCharRange=( (921,921), (7936,8191) ); const PUCUUnicodeIgnoreCaseBlockBlocks72:array[0..0] of TPUCUUnicodeCharRange=( (8192,8303) ); const PUCUUnicodeIgnoreCaseBlockBlocks73:array[0..0] of TPUCUUnicodeCharRange=( (8304,8351) ); const PUCUUnicodeIgnoreCaseBlockBlocks74:array[0..0] of TPUCUUnicodeCharRange=( (8352,8399) ); const PUCUUnicodeIgnoreCaseBlockBlocks75:array[0..0] of TPUCUUnicodeCharRange=( (8400,8447) ); const PUCUUnicodeIgnoreCaseBlockBlocks76:array[0..3] of TPUCUUnicodeCharRange=( (107,107), (229,229), (969,969), (8448,8527) ); const PUCUUnicodeIgnoreCaseBlockBlocks77:array[0..0] of TPUCUUnicodeCharRange=( (8528,8591) ); const PUCUUnicodeIgnoreCaseBlockBlocks78:array[0..0] of TPUCUUnicodeCharRange=( (8592,8703) ); const PUCUUnicodeIgnoreCaseBlockBlocks79:array[0..0] of TPUCUUnicodeCharRange=( (8704,8959) ); const PUCUUnicodeIgnoreCaseBlockBlocks80:array[0..0] of TPUCUUnicodeCharRange=( (8960,9215) ); const PUCUUnicodeIgnoreCaseBlockBlocks81:array[0..0] of TPUCUUnicodeCharRange=( (9216,9279) ); const PUCUUnicodeIgnoreCaseBlockBlocks82:array[0..0] of TPUCUUnicodeCharRange=( (9280,9311) ); const PUCUUnicodeIgnoreCaseBlockBlocks83:array[0..0] of TPUCUUnicodeCharRange=( (9312,9471) ); const PUCUUnicodeIgnoreCaseBlockBlocks84:array[0..0] of TPUCUUnicodeCharRange=( (9472,9599) ); const PUCUUnicodeIgnoreCaseBlockBlocks85:array[0..0] of TPUCUUnicodeCharRange=( (9600,9631) ); const PUCUUnicodeIgnoreCaseBlockBlocks86:array[0..0] of TPUCUUnicodeCharRange=( (9632,9727) ); const PUCUUnicodeIgnoreCaseBlockBlocks87:array[0..0] of TPUCUUnicodeCharRange=( (9728,9983) ); const PUCUUnicodeIgnoreCaseBlockBlocks88:array[0..0] of TPUCUUnicodeCharRange=( (9984,10175) ); const PUCUUnicodeIgnoreCaseBlockBlocks89:array[0..0] of TPUCUUnicodeCharRange=( (10176,10223) ); const PUCUUnicodeIgnoreCaseBlockBlocks90:array[0..0] of TPUCUUnicodeCharRange=( (10224,10239) ); const PUCUUnicodeIgnoreCaseBlockBlocks91:array[0..0] of TPUCUUnicodeCharRange=( (10240,10495) ); const PUCUUnicodeIgnoreCaseBlockBlocks92:array[0..0] of TPUCUUnicodeCharRange=( (10496,10623) ); const PUCUUnicodeIgnoreCaseBlockBlocks93:array[0..0] of TPUCUUnicodeCharRange=( (10624,10751) ); const PUCUUnicodeIgnoreCaseBlockBlocks94:array[0..0] of TPUCUUnicodeCharRange=( (10752,11007) ); const PUCUUnicodeIgnoreCaseBlockBlocks95:array[0..0] of TPUCUUnicodeCharRange=( (11008,11263) ); const PUCUUnicodeIgnoreCaseBlockBlocks96:array[0..0] of TPUCUUnicodeCharRange=( (11264,11359) ); const PUCUUnicodeIgnoreCaseBlockBlocks97:array[0..7] of TPUCUUnicodeCharRange=( (570,570), (574,576), (592,594), (619,619), (625,625), (637,637), (7549,7549), (11360,11391) ); const PUCUUnicodeIgnoreCaseBlockBlocks98:array[0..0] of TPUCUUnicodeCharRange=( (11392,11519) ); const PUCUUnicodeIgnoreCaseBlockBlocks99:array[0..3] of TPUCUUnicodeCharRange=( (4256,4293), (4295,4295), (4301,4301), (11520,11567) ); const PUCUUnicodeIgnoreCaseBlockBlocks100:array[0..0] of TPUCUUnicodeCharRange=( (11568,11647) ); const PUCUUnicodeIgnoreCaseBlockBlocks101:array[0..0] of TPUCUUnicodeCharRange=( (11648,11743) ); const PUCUUnicodeIgnoreCaseBlockBlocks102:array[0..0] of TPUCUUnicodeCharRange=( (11744,11775) ); const PUCUUnicodeIgnoreCaseBlockBlocks103:array[0..0] of TPUCUUnicodeCharRange=( (11776,11903) ); const PUCUUnicodeIgnoreCaseBlockBlocks104:array[0..0] of TPUCUUnicodeCharRange=( (11904,12031) ); const PUCUUnicodeIgnoreCaseBlockBlocks105:array[0..0] of TPUCUUnicodeCharRange=( (12032,12255) ); const PUCUUnicodeIgnoreCaseBlockBlocks106:array[0..0] of TPUCUUnicodeCharRange=( (12272,12287) ); const PUCUUnicodeIgnoreCaseBlockBlocks107:array[0..0] of TPUCUUnicodeCharRange=( (12288,12351) ); const PUCUUnicodeIgnoreCaseBlockBlocks108:array[0..0] of TPUCUUnicodeCharRange=( (12352,12447) ); const PUCUUnicodeIgnoreCaseBlockBlocks109:array[0..0] of TPUCUUnicodeCharRange=( (12448,12543) ); const PUCUUnicodeIgnoreCaseBlockBlocks110:array[0..0] of TPUCUUnicodeCharRange=( (12544,12591) ); const PUCUUnicodeIgnoreCaseBlockBlocks111:array[0..0] of TPUCUUnicodeCharRange=( (12592,12687) ); const PUCUUnicodeIgnoreCaseBlockBlocks112:array[0..0] of TPUCUUnicodeCharRange=( (12688,12703) ); const PUCUUnicodeIgnoreCaseBlockBlocks113:array[0..0] of TPUCUUnicodeCharRange=( (12704,12735) ); const PUCUUnicodeIgnoreCaseBlockBlocks114:array[0..0] of TPUCUUnicodeCharRange=( (12736,12783) ); const PUCUUnicodeIgnoreCaseBlockBlocks115:array[0..0] of TPUCUUnicodeCharRange=( (12784,12799) ); const PUCUUnicodeIgnoreCaseBlockBlocks116:array[0..0] of TPUCUUnicodeCharRange=( (12800,13055) ); const PUCUUnicodeIgnoreCaseBlockBlocks117:array[0..0] of TPUCUUnicodeCharRange=( (13056,13311) ); const PUCUUnicodeIgnoreCaseBlockBlocks118:array[0..0] of TPUCUUnicodeCharRange=( (13312,19903) ); const PUCUUnicodeIgnoreCaseBlockBlocks119:array[0..0] of TPUCUUnicodeCharRange=( (19904,19967) ); const PUCUUnicodeIgnoreCaseBlockBlocks120:array[0..0] of TPUCUUnicodeCharRange=( (19968,40959) ); const PUCUUnicodeIgnoreCaseBlockBlocks121:array[0..0] of TPUCUUnicodeCharRange=( (40960,42127) ); const PUCUUnicodeIgnoreCaseBlockBlocks122:array[0..0] of TPUCUUnicodeCharRange=( (42128,42191) ); const PUCUUnicodeIgnoreCaseBlockBlocks123:array[0..0] of TPUCUUnicodeCharRange=( (42192,42239) ); const PUCUUnicodeIgnoreCaseBlockBlocks124:array[0..0] of TPUCUUnicodeCharRange=( (42240,42559) ); const PUCUUnicodeIgnoreCaseBlockBlocks125:array[0..0] of TPUCUUnicodeCharRange=( (42560,42655) ); const PUCUUnicodeIgnoreCaseBlockBlocks126:array[0..0] of TPUCUUnicodeCharRange=( (42656,42751) ); const PUCUUnicodeIgnoreCaseBlockBlocks127:array[0..0] of TPUCUUnicodeCharRange=( (42752,42783) ); const PUCUUnicodeIgnoreCaseBlockBlocks128:array[0..11] of TPUCUUnicodeCharRange=( (604,604), (609,609), (613,614), (618,618), (620,620), (642,642), (647,647), (669,670), (7545,7545), (7566,7566), (42784,43007), (43859,43859) ); const PUCUUnicodeIgnoreCaseBlockBlocks129:array[0..0] of TPUCUUnicodeCharRange=( (43008,43055) ); const PUCUUnicodeIgnoreCaseBlockBlocks130:array[0..0] of TPUCUUnicodeCharRange=( (43056,43071) ); const PUCUUnicodeIgnoreCaseBlockBlocks131:array[0..0] of TPUCUUnicodeCharRange=( (43072,43135) ); const PUCUUnicodeIgnoreCaseBlockBlocks132:array[0..0] of TPUCUUnicodeCharRange=( (43136,43231) ); const PUCUUnicodeIgnoreCaseBlockBlocks133:array[0..0] of TPUCUUnicodeCharRange=( (43232,43263) ); const PUCUUnicodeIgnoreCaseBlockBlocks134:array[0..0] of TPUCUUnicodeCharRange=( (43264,43311) ); const PUCUUnicodeIgnoreCaseBlockBlocks135:array[0..0] of TPUCUUnicodeCharRange=( (43312,43359) ); const PUCUUnicodeIgnoreCaseBlockBlocks136:array[0..0] of TPUCUUnicodeCharRange=( (43360,43391) ); const PUCUUnicodeIgnoreCaseBlockBlocks137:array[0..0] of TPUCUUnicodeCharRange=( (43392,43487) ); const PUCUUnicodeIgnoreCaseBlockBlocks138:array[0..0] of TPUCUUnicodeCharRange=( (43488,43519) ); const PUCUUnicodeIgnoreCaseBlockBlocks139:array[0..0] of TPUCUUnicodeCharRange=( (43520,43615) ); const PUCUUnicodeIgnoreCaseBlockBlocks140:array[0..0] of TPUCUUnicodeCharRange=( (43616,43647) ); const PUCUUnicodeIgnoreCaseBlockBlocks141:array[0..0] of TPUCUUnicodeCharRange=( (43648,43743) ); const PUCUUnicodeIgnoreCaseBlockBlocks142:array[0..0] of TPUCUUnicodeCharRange=( (43744,43775) ); const PUCUUnicodeIgnoreCaseBlockBlocks143:array[0..0] of TPUCUUnicodeCharRange=( (43776,43823) ); const PUCUUnicodeIgnoreCaseBlockBlocks144:array[0..1] of TPUCUUnicodeCharRange=( (42931,42931), (43824,43887) ); const PUCUUnicodeIgnoreCaseBlockBlocks145:array[0..1] of TPUCUUnicodeCharRange=( (5024,5103), (43888,43967) ); const PUCUUnicodeIgnoreCaseBlockBlocks146:array[0..0] of TPUCUUnicodeCharRange=( (43968,44031) ); const PUCUUnicodeIgnoreCaseBlockBlocks147:array[0..0] of TPUCUUnicodeCharRange=( (44032,55215) ); const PUCUUnicodeIgnoreCaseBlockBlocks148:array[0..0] of TPUCUUnicodeCharRange=( (55216,55295) ); const PUCUUnicodeIgnoreCaseBlockBlocks149:array[0..0] of TPUCUUnicodeCharRange=( (55296,56191) ); const PUCUUnicodeIgnoreCaseBlockBlocks150:array[0..0] of TPUCUUnicodeCharRange=( (56192,56319) ); const PUCUUnicodeIgnoreCaseBlockBlocks151:array[0..0] of TPUCUUnicodeCharRange=( (56320,57343) ); const PUCUUnicodeIgnoreCaseBlockBlocks152:array[0..0] of TPUCUUnicodeCharRange=( (57344,63743) ); const PUCUUnicodeIgnoreCaseBlockBlocks153:array[0..0] of TPUCUUnicodeCharRange=( (63744,64255) ); const PUCUUnicodeIgnoreCaseBlockBlocks154:array[0..0] of TPUCUUnicodeCharRange=( (64256,64335) ); const PUCUUnicodeIgnoreCaseBlockBlocks155:array[0..0] of TPUCUUnicodeCharRange=( (64336,65023) ); const PUCUUnicodeIgnoreCaseBlockBlocks156:array[0..0] of TPUCUUnicodeCharRange=( (65024,65039) ); const PUCUUnicodeIgnoreCaseBlockBlocks157:array[0..0] of TPUCUUnicodeCharRange=( (65040,65055) ); const PUCUUnicodeIgnoreCaseBlockBlocks158:array[0..0] of TPUCUUnicodeCharRange=( (65056,65071) ); const PUCUUnicodeIgnoreCaseBlockBlocks159:array[0..0] of TPUCUUnicodeCharRange=( (65072,65103) ); const PUCUUnicodeIgnoreCaseBlockBlocks160:array[0..0] of TPUCUUnicodeCharRange=( (65104,65135) ); const PUCUUnicodeIgnoreCaseBlockBlocks161:array[0..0] of TPUCUUnicodeCharRange=( (65136,65279) ); const PUCUUnicodeIgnoreCaseBlockBlocks162:array[0..0] of TPUCUUnicodeCharRange=( (65280,65519) ); const PUCUUnicodeIgnoreCaseBlockBlocks163:array[0..0] of TPUCUUnicodeCharRange=( (65520,65535) ); const PUCUUnicodeIgnoreCaseBlockBlocks164:array[0..0] of TPUCUUnicodeCharRange=( (65536,65663) ); const PUCUUnicodeIgnoreCaseBlockBlocks165:array[0..0] of TPUCUUnicodeCharRange=( (65664,65791) ); const PUCUUnicodeIgnoreCaseBlockBlocks166:array[0..0] of TPUCUUnicodeCharRange=( (65792,65855) ); const PUCUUnicodeIgnoreCaseBlockBlocks167:array[0..0] of TPUCUUnicodeCharRange=( (65856,65935) ); const PUCUUnicodeIgnoreCaseBlockBlocks168:array[0..0] of TPUCUUnicodeCharRange=( (65936,65999) ); const PUCUUnicodeIgnoreCaseBlockBlocks169:array[0..0] of TPUCUUnicodeCharRange=( (66000,66047) ); const PUCUUnicodeIgnoreCaseBlockBlocks170:array[0..0] of TPUCUUnicodeCharRange=( (66176,66207) ); const PUCUUnicodeIgnoreCaseBlockBlocks171:array[0..0] of TPUCUUnicodeCharRange=( (66208,66271) ); const PUCUUnicodeIgnoreCaseBlockBlocks172:array[0..0] of TPUCUUnicodeCharRange=( (66272,66303) ); const PUCUUnicodeIgnoreCaseBlockBlocks173:array[0..0] of TPUCUUnicodeCharRange=( (66304,66351) ); const PUCUUnicodeIgnoreCaseBlockBlocks174:array[0..0] of TPUCUUnicodeCharRange=( (66352,66383) ); const PUCUUnicodeIgnoreCaseBlockBlocks175:array[0..0] of TPUCUUnicodeCharRange=( (66384,66431) ); const PUCUUnicodeIgnoreCaseBlockBlocks176:array[0..0] of TPUCUUnicodeCharRange=( (66432,66463) ); const PUCUUnicodeIgnoreCaseBlockBlocks177:array[0..0] of TPUCUUnicodeCharRange=( (66464,66527) ); const PUCUUnicodeIgnoreCaseBlockBlocks178:array[0..0] of TPUCUUnicodeCharRange=( (66560,66639) ); const PUCUUnicodeIgnoreCaseBlockBlocks179:array[0..0] of TPUCUUnicodeCharRange=( (66640,66687) ); const PUCUUnicodeIgnoreCaseBlockBlocks180:array[0..0] of TPUCUUnicodeCharRange=( (66688,66735) ); const PUCUUnicodeIgnoreCaseBlockBlocks181:array[0..0] of TPUCUUnicodeCharRange=( (66736,66815) ); const PUCUUnicodeIgnoreCaseBlockBlocks182:array[0..0] of TPUCUUnicodeCharRange=( (66816,66863) ); const PUCUUnicodeIgnoreCaseBlockBlocks183:array[0..0] of TPUCUUnicodeCharRange=( (66864,66927) ); const PUCUUnicodeIgnoreCaseBlockBlocks184:array[0..0] of TPUCUUnicodeCharRange=( (66928,67007) ); const PUCUUnicodeIgnoreCaseBlockBlocks185:array[0..0] of TPUCUUnicodeCharRange=( (67072,67455) ); const PUCUUnicodeIgnoreCaseBlockBlocks186:array[0..0] of TPUCUUnicodeCharRange=( (67456,67519) ); const PUCUUnicodeIgnoreCaseBlockBlocks187:array[0..0] of TPUCUUnicodeCharRange=( (67584,67647) ); const PUCUUnicodeIgnoreCaseBlockBlocks188:array[0..0] of TPUCUUnicodeCharRange=( (67648,67679) ); const PUCUUnicodeIgnoreCaseBlockBlocks189:array[0..0] of TPUCUUnicodeCharRange=( (67680,67711) ); const PUCUUnicodeIgnoreCaseBlockBlocks190:array[0..0] of TPUCUUnicodeCharRange=( (67712,67759) ); const PUCUUnicodeIgnoreCaseBlockBlocks191:array[0..0] of TPUCUUnicodeCharRange=( (67808,67839) ); const PUCUUnicodeIgnoreCaseBlockBlocks192:array[0..0] of TPUCUUnicodeCharRange=( (67840,67871) ); const PUCUUnicodeIgnoreCaseBlockBlocks193:array[0..0] of TPUCUUnicodeCharRange=( (67872,67903) ); const PUCUUnicodeIgnoreCaseBlockBlocks194:array[0..0] of TPUCUUnicodeCharRange=( (67968,67999) ); const PUCUUnicodeIgnoreCaseBlockBlocks195:array[0..0] of TPUCUUnicodeCharRange=( (68000,68095) ); const PUCUUnicodeIgnoreCaseBlockBlocks196:array[0..0] of TPUCUUnicodeCharRange=( (68096,68191) ); const PUCUUnicodeIgnoreCaseBlockBlocks197:array[0..0] of TPUCUUnicodeCharRange=( (68192,68223) ); const PUCUUnicodeIgnoreCaseBlockBlocks198:array[0..0] of TPUCUUnicodeCharRange=( (68224,68255) ); const PUCUUnicodeIgnoreCaseBlockBlocks199:array[0..0] of TPUCUUnicodeCharRange=( (68288,68351) ); const PUCUUnicodeIgnoreCaseBlockBlocks200:array[0..0] of TPUCUUnicodeCharRange=( (68352,68415) ); const PUCUUnicodeIgnoreCaseBlockBlocks201:array[0..0] of TPUCUUnicodeCharRange=( (68416,68447) ); const PUCUUnicodeIgnoreCaseBlockBlocks202:array[0..0] of TPUCUUnicodeCharRange=( (68448,68479) ); const PUCUUnicodeIgnoreCaseBlockBlocks203:array[0..0] of TPUCUUnicodeCharRange=( (68480,68527) ); const PUCUUnicodeIgnoreCaseBlockBlocks204:array[0..0] of TPUCUUnicodeCharRange=( (68608,68687) ); const PUCUUnicodeIgnoreCaseBlockBlocks205:array[0..0] of TPUCUUnicodeCharRange=( (68736,68863) ); const PUCUUnicodeIgnoreCaseBlockBlocks206:array[0..0] of TPUCUUnicodeCharRange=( (68864,68927) ); const PUCUUnicodeIgnoreCaseBlockBlocks207:array[0..0] of TPUCUUnicodeCharRange=( (69216,69247) ); const PUCUUnicodeIgnoreCaseBlockBlocks208:array[0..0] of TPUCUUnicodeCharRange=( (69248,69311) ); const PUCUUnicodeIgnoreCaseBlockBlocks209:array[0..0] of TPUCUUnicodeCharRange=( (69312,69375) ); const PUCUUnicodeIgnoreCaseBlockBlocks210:array[0..0] of TPUCUUnicodeCharRange=( (69376,69423) ); const PUCUUnicodeIgnoreCaseBlockBlocks211:array[0..0] of TPUCUUnicodeCharRange=( (69424,69487) ); const PUCUUnicodeIgnoreCaseBlockBlocks212:array[0..0] of TPUCUUnicodeCharRange=( (69488,69551) ); const PUCUUnicodeIgnoreCaseBlockBlocks213:array[0..0] of TPUCUUnicodeCharRange=( (69552,69599) ); const PUCUUnicodeIgnoreCaseBlockBlocks214:array[0..0] of TPUCUUnicodeCharRange=( (69600,69631) ); const PUCUUnicodeIgnoreCaseBlockBlocks215:array[0..0] of TPUCUUnicodeCharRange=( (69632,69759) ); const PUCUUnicodeIgnoreCaseBlockBlocks216:array[0..0] of TPUCUUnicodeCharRange=( (69760,69839) ); const PUCUUnicodeIgnoreCaseBlockBlocks217:array[0..0] of TPUCUUnicodeCharRange=( (69840,69887) ); const PUCUUnicodeIgnoreCaseBlockBlocks218:array[0..0] of TPUCUUnicodeCharRange=( (69888,69967) ); const PUCUUnicodeIgnoreCaseBlockBlocks219:array[0..0] of TPUCUUnicodeCharRange=( (69968,70015) ); const PUCUUnicodeIgnoreCaseBlockBlocks220:array[0..0] of TPUCUUnicodeCharRange=( (70016,70111) ); const PUCUUnicodeIgnoreCaseBlockBlocks221:array[0..0] of TPUCUUnicodeCharRange=( (70112,70143) ); const PUCUUnicodeIgnoreCaseBlockBlocks222:array[0..0] of TPUCUUnicodeCharRange=( (70144,70223) ); const PUCUUnicodeIgnoreCaseBlockBlocks223:array[0..0] of TPUCUUnicodeCharRange=( (70272,70319) ); const PUCUUnicodeIgnoreCaseBlockBlocks224:array[0..0] of TPUCUUnicodeCharRange=( (70320,70399) ); const PUCUUnicodeIgnoreCaseBlockBlocks225:array[0..0] of TPUCUUnicodeCharRange=( (70400,70527) ); const PUCUUnicodeIgnoreCaseBlockBlocks226:array[0..0] of TPUCUUnicodeCharRange=( (70656,70783) ); const PUCUUnicodeIgnoreCaseBlockBlocks227:array[0..0] of TPUCUUnicodeCharRange=( (70784,70879) ); const PUCUUnicodeIgnoreCaseBlockBlocks228:array[0..0] of TPUCUUnicodeCharRange=( (71040,71167) ); const PUCUUnicodeIgnoreCaseBlockBlocks229:array[0..0] of TPUCUUnicodeCharRange=( (71168,71263) ); const PUCUUnicodeIgnoreCaseBlockBlocks230:array[0..0] of TPUCUUnicodeCharRange=( (71264,71295) ); const PUCUUnicodeIgnoreCaseBlockBlocks231:array[0..0] of TPUCUUnicodeCharRange=( (71296,71375) ); const PUCUUnicodeIgnoreCaseBlockBlocks232:array[0..0] of TPUCUUnicodeCharRange=( (71424,71503) ); const PUCUUnicodeIgnoreCaseBlockBlocks233:array[0..0] of TPUCUUnicodeCharRange=( (71680,71759) ); const PUCUUnicodeIgnoreCaseBlockBlocks234:array[0..0] of TPUCUUnicodeCharRange=( (71840,71935) ); const PUCUUnicodeIgnoreCaseBlockBlocks235:array[0..0] of TPUCUUnicodeCharRange=( (71936,72031) ); const PUCUUnicodeIgnoreCaseBlockBlocks236:array[0..0] of TPUCUUnicodeCharRange=( (72096,72191) ); const PUCUUnicodeIgnoreCaseBlockBlocks237:array[0..0] of TPUCUUnicodeCharRange=( (72192,72271) ); const PUCUUnicodeIgnoreCaseBlockBlocks238:array[0..0] of TPUCUUnicodeCharRange=( (72272,72367) ); const PUCUUnicodeIgnoreCaseBlockBlocks239:array[0..0] of TPUCUUnicodeCharRange=( (72368,72383) ); const PUCUUnicodeIgnoreCaseBlockBlocks240:array[0..0] of TPUCUUnicodeCharRange=( (72384,72447) ); const PUCUUnicodeIgnoreCaseBlockBlocks241:array[0..0] of TPUCUUnicodeCharRange=( (72448,72543) ); const PUCUUnicodeIgnoreCaseBlockBlocks242:array[0..0] of TPUCUUnicodeCharRange=( (72704,72815) ); const PUCUUnicodeIgnoreCaseBlockBlocks243:array[0..0] of TPUCUUnicodeCharRange=( (72816,72895) ); const PUCUUnicodeIgnoreCaseBlockBlocks244:array[0..0] of TPUCUUnicodeCharRange=( (72960,73055) ); const PUCUUnicodeIgnoreCaseBlockBlocks245:array[0..0] of TPUCUUnicodeCharRange=( (73056,73135) ); const PUCUUnicodeIgnoreCaseBlockBlocks246:array[0..0] of TPUCUUnicodeCharRange=( (73440,73471) ); const PUCUUnicodeIgnoreCaseBlockBlocks247:array[0..0] of TPUCUUnicodeCharRange=( (73472,73567) ); const PUCUUnicodeIgnoreCaseBlockBlocks248:array[0..0] of TPUCUUnicodeCharRange=( (73648,73663) ); const PUCUUnicodeIgnoreCaseBlockBlocks249:array[0..0] of TPUCUUnicodeCharRange=( (73664,73727) ); const PUCUUnicodeIgnoreCaseBlockBlocks250:array[0..0] of TPUCUUnicodeCharRange=( (73728,74751) ); const PUCUUnicodeIgnoreCaseBlockBlocks251:array[0..0] of TPUCUUnicodeCharRange=( (74752,74879) ); const PUCUUnicodeIgnoreCaseBlockBlocks252:array[0..0] of TPUCUUnicodeCharRange=( (74880,75087) ); const PUCUUnicodeIgnoreCaseBlockBlocks253:array[0..0] of TPUCUUnicodeCharRange=( (77712,77823) ); const PUCUUnicodeIgnoreCaseBlockBlocks254:array[0..0] of TPUCUUnicodeCharRange=( (77824,78895) ); const PUCUUnicodeIgnoreCaseBlockBlocks255:array[0..0] of TPUCUUnicodeCharRange=( (78896,78943) ); const PUCUUnicodeIgnoreCaseBlockBlocks256:array[0..0] of TPUCUUnicodeCharRange=( (82944,83583) ); const PUCUUnicodeIgnoreCaseBlockBlocks257:array[0..0] of TPUCUUnicodeCharRange=( (92160,92735) ); const PUCUUnicodeIgnoreCaseBlockBlocks258:array[0..0] of TPUCUUnicodeCharRange=( (92736,92783) ); const PUCUUnicodeIgnoreCaseBlockBlocks259:array[0..0] of TPUCUUnicodeCharRange=( (92784,92879) ); const PUCUUnicodeIgnoreCaseBlockBlocks260:array[0..0] of TPUCUUnicodeCharRange=( (92880,92927) ); const PUCUUnicodeIgnoreCaseBlockBlocks261:array[0..0] of TPUCUUnicodeCharRange=( (92928,93071) ); const PUCUUnicodeIgnoreCaseBlockBlocks262:array[0..0] of TPUCUUnicodeCharRange=( (93760,93855) ); const PUCUUnicodeIgnoreCaseBlockBlocks263:array[0..0] of TPUCUUnicodeCharRange=( (93952,94111) ); const PUCUUnicodeIgnoreCaseBlockBlocks264:array[0..0] of TPUCUUnicodeCharRange=( (94176,94207) ); const PUCUUnicodeIgnoreCaseBlockBlocks265:array[0..0] of TPUCUUnicodeCharRange=( (94208,100351) ); const PUCUUnicodeIgnoreCaseBlockBlocks266:array[0..0] of TPUCUUnicodeCharRange=( (100352,101119) ); const PUCUUnicodeIgnoreCaseBlockBlocks267:array[0..0] of TPUCUUnicodeCharRange=( (101120,101631) ); const PUCUUnicodeIgnoreCaseBlockBlocks268:array[0..0] of TPUCUUnicodeCharRange=( (101632,101759) ); const PUCUUnicodeIgnoreCaseBlockBlocks269:array[0..0] of TPUCUUnicodeCharRange=( (110576,110591) ); const PUCUUnicodeIgnoreCaseBlockBlocks270:array[0..0] of TPUCUUnicodeCharRange=( (110592,110847) ); const PUCUUnicodeIgnoreCaseBlockBlocks271:array[0..0] of TPUCUUnicodeCharRange=( (110848,110895) ); const PUCUUnicodeIgnoreCaseBlockBlocks272:array[0..0] of TPUCUUnicodeCharRange=( (110896,110959) ); const PUCUUnicodeIgnoreCaseBlockBlocks273:array[0..0] of TPUCUUnicodeCharRange=( (110960,111359) ); const PUCUUnicodeIgnoreCaseBlockBlocks274:array[0..0] of TPUCUUnicodeCharRange=( (113664,113823) ); const PUCUUnicodeIgnoreCaseBlockBlocks275:array[0..0] of TPUCUUnicodeCharRange=( (113824,113839) ); const PUCUUnicodeIgnoreCaseBlockBlocks276:array[0..0] of TPUCUUnicodeCharRange=( (118528,118735) ); const PUCUUnicodeIgnoreCaseBlockBlocks277:array[0..0] of TPUCUUnicodeCharRange=( (118784,119039) ); const PUCUUnicodeIgnoreCaseBlockBlocks278:array[0..0] of TPUCUUnicodeCharRange=( (119040,119295) ); const PUCUUnicodeIgnoreCaseBlockBlocks279:array[0..0] of TPUCUUnicodeCharRange=( (119296,119375) ); const PUCUUnicodeIgnoreCaseBlockBlocks280:array[0..0] of TPUCUUnicodeCharRange=( (119488,119519) ); const PUCUUnicodeIgnoreCaseBlockBlocks281:array[0..0] of TPUCUUnicodeCharRange=( (119520,119551) ); const PUCUUnicodeIgnoreCaseBlockBlocks282:array[0..0] of TPUCUUnicodeCharRange=( (119552,119647) ); const PUCUUnicodeIgnoreCaseBlockBlocks283:array[0..0] of TPUCUUnicodeCharRange=( (119648,119679) ); const PUCUUnicodeIgnoreCaseBlockBlocks284:array[0..0] of TPUCUUnicodeCharRange=( (119808,120831) ); const PUCUUnicodeIgnoreCaseBlockBlocks285:array[0..0] of TPUCUUnicodeCharRange=( (120832,121519) ); const PUCUUnicodeIgnoreCaseBlockBlocks286:array[0..0] of TPUCUUnicodeCharRange=( (122624,122879) ); const PUCUUnicodeIgnoreCaseBlockBlocks287:array[0..0] of TPUCUUnicodeCharRange=( (122880,122927) ); const PUCUUnicodeIgnoreCaseBlockBlocks288:array[0..0] of TPUCUUnicodeCharRange=( (122928,123023) ); const PUCUUnicodeIgnoreCaseBlockBlocks289:array[0..0] of TPUCUUnicodeCharRange=( (123136,123215) ); const PUCUUnicodeIgnoreCaseBlockBlocks290:array[0..0] of TPUCUUnicodeCharRange=( (123536,123583) ); const PUCUUnicodeIgnoreCaseBlockBlocks291:array[0..0] of TPUCUUnicodeCharRange=( (123584,123647) ); const PUCUUnicodeIgnoreCaseBlockBlocks292:array[0..0] of TPUCUUnicodeCharRange=( (124112,124159) ); const PUCUUnicodeIgnoreCaseBlockBlocks293:array[0..0] of TPUCUUnicodeCharRange=( (124896,124927) ); const PUCUUnicodeIgnoreCaseBlockBlocks294:array[0..0] of TPUCUUnicodeCharRange=( (124928,125151) ); const PUCUUnicodeIgnoreCaseBlockBlocks295:array[0..0] of TPUCUUnicodeCharRange=( (125184,125279) ); const PUCUUnicodeIgnoreCaseBlockBlocks296:array[0..0] of TPUCUUnicodeCharRange=( (126064,126143) ); const PUCUUnicodeIgnoreCaseBlockBlocks297:array[0..0] of TPUCUUnicodeCharRange=( (126208,126287) ); const PUCUUnicodeIgnoreCaseBlockBlocks298:array[0..0] of TPUCUUnicodeCharRange=( (126464,126719) ); const PUCUUnicodeIgnoreCaseBlockBlocks299:array[0..0] of TPUCUUnicodeCharRange=( (126976,127023) ); const PUCUUnicodeIgnoreCaseBlockBlocks300:array[0..0] of TPUCUUnicodeCharRange=( (127024,127135) ); const PUCUUnicodeIgnoreCaseBlockBlocks301:array[0..0] of TPUCUUnicodeCharRange=( (127136,127231) ); const PUCUUnicodeIgnoreCaseBlockBlocks302:array[0..0] of TPUCUUnicodeCharRange=( (127232,127487) ); const PUCUUnicodeIgnoreCaseBlockBlocks303:array[0..0] of TPUCUUnicodeCharRange=( (127488,127743) ); const PUCUUnicodeIgnoreCaseBlockBlocks304:array[0..0] of TPUCUUnicodeCharRange=( (127744,128511) ); const PUCUUnicodeIgnoreCaseBlockBlocks305:array[0..0] of TPUCUUnicodeCharRange=( (128512,128591) ); const PUCUUnicodeIgnoreCaseBlockBlocks306:array[0..0] of TPUCUUnicodeCharRange=( (128592,128639) ); const PUCUUnicodeIgnoreCaseBlockBlocks307:array[0..0] of TPUCUUnicodeCharRange=( (128640,128767) ); const PUCUUnicodeIgnoreCaseBlockBlocks308:array[0..0] of TPUCUUnicodeCharRange=( (128768,128895) ); const PUCUUnicodeIgnoreCaseBlockBlocks309:array[0..0] of TPUCUUnicodeCharRange=( (128896,129023) ); const PUCUUnicodeIgnoreCaseBlockBlocks310:array[0..0] of TPUCUUnicodeCharRange=( (129024,129279) ); const PUCUUnicodeIgnoreCaseBlockBlocks311:array[0..0] of TPUCUUnicodeCharRange=( (129280,129535) ); const PUCUUnicodeIgnoreCaseBlockBlocks312:array[0..0] of TPUCUUnicodeCharRange=( (129536,129647) ); const PUCUUnicodeIgnoreCaseBlockBlocks313:array[0..0] of TPUCUUnicodeCharRange=( (129648,129791) ); const PUCUUnicodeIgnoreCaseBlockBlocks314:array[0..0] of TPUCUUnicodeCharRange=( (129792,130047) ); const PUCUUnicodeIgnoreCaseBlockBlocks315:array[0..0] of TPUCUUnicodeCharRange=( (131072,173791) ); const PUCUUnicodeIgnoreCaseBlockBlocks316:array[0..0] of TPUCUUnicodeCharRange=( (173824,177983) ); const PUCUUnicodeIgnoreCaseBlockBlocks317:array[0..0] of TPUCUUnicodeCharRange=( (177984,178207) ); const PUCUUnicodeIgnoreCaseBlockBlocks318:array[0..0] of TPUCUUnicodeCharRange=( (178208,183983) ); const PUCUUnicodeIgnoreCaseBlockBlocks319:array[0..0] of TPUCUUnicodeCharRange=( (183984,191471) ); const PUCUUnicodeIgnoreCaseBlockBlocks320:array[0..0] of TPUCUUnicodeCharRange=( (194560,195103) ); const PUCUUnicodeIgnoreCaseBlockBlocks321:array[0..0] of TPUCUUnicodeCharRange=( (196608,201551) ); const PUCUUnicodeIgnoreCaseBlockBlocks322:array[0..0] of TPUCUUnicodeCharRange=( (201552,205743) ); const PUCUUnicodeIgnoreCaseBlockBlocks323:array[0..0] of TPUCUUnicodeCharRange=( (917504,917631) ); const PUCUUnicodeIgnoreCaseBlockBlocks324:array[0..0] of TPUCUUnicodeCharRange=( (917760,917999) ); const PUCUUnicodeIgnoreCaseBlockBlocks325:array[0..0] of TPUCUUnicodeCharRange=( (983040,1048575) ); const PUCUUnicodeIgnoreCaseBlockBlocks326:array[0..0] of TPUCUUnicodeCharRange=( (1048576,1114111) ); const PUCUUnicodeIgnoreCaseBlockBlocksData:array[0..326] of pointer=( @PUCUUnicodeIgnoreCaseBlockBlocks0, @PUCUUnicodeIgnoreCaseBlockBlocks1, @PUCUUnicodeIgnoreCaseBlockBlocks2, @PUCUUnicodeIgnoreCaseBlockBlocks3, @PUCUUnicodeIgnoreCaseBlockBlocks4, @PUCUUnicodeIgnoreCaseBlockBlocks5, @PUCUUnicodeIgnoreCaseBlockBlocks6, @PUCUUnicodeIgnoreCaseBlockBlocks7, @PUCUUnicodeIgnoreCaseBlockBlocks8, @PUCUUnicodeIgnoreCaseBlockBlocks9, @PUCUUnicodeIgnoreCaseBlockBlocks10, @PUCUUnicodeIgnoreCaseBlockBlocks11, @PUCUUnicodeIgnoreCaseBlockBlocks12, @PUCUUnicodeIgnoreCaseBlockBlocks13, @PUCUUnicodeIgnoreCaseBlockBlocks14, @PUCUUnicodeIgnoreCaseBlockBlocks15, @PUCUUnicodeIgnoreCaseBlockBlocks16, @PUCUUnicodeIgnoreCaseBlockBlocks17, @PUCUUnicodeIgnoreCaseBlockBlocks18, @PUCUUnicodeIgnoreCaseBlockBlocks19, @PUCUUnicodeIgnoreCaseBlockBlocks20, @PUCUUnicodeIgnoreCaseBlockBlocks21, @PUCUUnicodeIgnoreCaseBlockBlocks22, @PUCUUnicodeIgnoreCaseBlockBlocks23, @PUCUUnicodeIgnoreCaseBlockBlocks24, @PUCUUnicodeIgnoreCaseBlockBlocks25, @PUCUUnicodeIgnoreCaseBlockBlocks26, @PUCUUnicodeIgnoreCaseBlockBlocks27, @PUCUUnicodeIgnoreCaseBlockBlocks28, @PUCUUnicodeIgnoreCaseBlockBlocks29, @PUCUUnicodeIgnoreCaseBlockBlocks30, @PUCUUnicodeIgnoreCaseBlockBlocks31, @PUCUUnicodeIgnoreCaseBlockBlocks32, @PUCUUnicodeIgnoreCaseBlockBlocks33, @PUCUUnicodeIgnoreCaseBlockBlocks34, @PUCUUnicodeIgnoreCaseBlockBlocks35, @PUCUUnicodeIgnoreCaseBlockBlocks36, @PUCUUnicodeIgnoreCaseBlockBlocks37, @PUCUUnicodeIgnoreCaseBlockBlocks38, @PUCUUnicodeIgnoreCaseBlockBlocks39, @PUCUUnicodeIgnoreCaseBlockBlocks40, @PUCUUnicodeIgnoreCaseBlockBlocks41, @PUCUUnicodeIgnoreCaseBlockBlocks42, @PUCUUnicodeIgnoreCaseBlockBlocks43, @PUCUUnicodeIgnoreCaseBlockBlocks44, @PUCUUnicodeIgnoreCaseBlockBlocks45, @PUCUUnicodeIgnoreCaseBlockBlocks46, @PUCUUnicodeIgnoreCaseBlockBlocks47, @PUCUUnicodeIgnoreCaseBlockBlocks48, @PUCUUnicodeIgnoreCaseBlockBlocks49, @PUCUUnicodeIgnoreCaseBlockBlocks50, @PUCUUnicodeIgnoreCaseBlockBlocks51, @PUCUUnicodeIgnoreCaseBlockBlocks52, @PUCUUnicodeIgnoreCaseBlockBlocks53, @PUCUUnicodeIgnoreCaseBlockBlocks54, @PUCUUnicodeIgnoreCaseBlockBlocks55, @PUCUUnicodeIgnoreCaseBlockBlocks56, @PUCUUnicodeIgnoreCaseBlockBlocks57, @PUCUUnicodeIgnoreCaseBlockBlocks58, @PUCUUnicodeIgnoreCaseBlockBlocks59, @PUCUUnicodeIgnoreCaseBlockBlocks60, @PUCUUnicodeIgnoreCaseBlockBlocks61, @PUCUUnicodeIgnoreCaseBlockBlocks62, @PUCUUnicodeIgnoreCaseBlockBlocks63, @PUCUUnicodeIgnoreCaseBlockBlocks64, @PUCUUnicodeIgnoreCaseBlockBlocks65, @PUCUUnicodeIgnoreCaseBlockBlocks66, @PUCUUnicodeIgnoreCaseBlockBlocks67, @PUCUUnicodeIgnoreCaseBlockBlocks68, @PUCUUnicodeIgnoreCaseBlockBlocks69, @PUCUUnicodeIgnoreCaseBlockBlocks70, @PUCUUnicodeIgnoreCaseBlockBlocks71, @PUCUUnicodeIgnoreCaseBlockBlocks72, @PUCUUnicodeIgnoreCaseBlockBlocks73, @PUCUUnicodeIgnoreCaseBlockBlocks74, @PUCUUnicodeIgnoreCaseBlockBlocks75, @PUCUUnicodeIgnoreCaseBlockBlocks76, @PUCUUnicodeIgnoreCaseBlockBlocks77, @PUCUUnicodeIgnoreCaseBlockBlocks78, @PUCUUnicodeIgnoreCaseBlockBlocks79, @PUCUUnicodeIgnoreCaseBlockBlocks80, @PUCUUnicodeIgnoreCaseBlockBlocks81, @PUCUUnicodeIgnoreCaseBlockBlocks82, @PUCUUnicodeIgnoreCaseBlockBlocks83, @PUCUUnicodeIgnoreCaseBlockBlocks84, @PUCUUnicodeIgnoreCaseBlockBlocks85, @PUCUUnicodeIgnoreCaseBlockBlocks86, @PUCUUnicodeIgnoreCaseBlockBlocks87, @PUCUUnicodeIgnoreCaseBlockBlocks88, @PUCUUnicodeIgnoreCaseBlockBlocks89, @PUCUUnicodeIgnoreCaseBlockBlocks90, @PUCUUnicodeIgnoreCaseBlockBlocks91, @PUCUUnicodeIgnoreCaseBlockBlocks92, @PUCUUnicodeIgnoreCaseBlockBlocks93, @PUCUUnicodeIgnoreCaseBlockBlocks94, @PUCUUnicodeIgnoreCaseBlockBlocks95, @PUCUUnicodeIgnoreCaseBlockBlocks96, @PUCUUnicodeIgnoreCaseBlockBlocks97, @PUCUUnicodeIgnoreCaseBlockBlocks98, @PUCUUnicodeIgnoreCaseBlockBlocks99, @PUCUUnicodeIgnoreCaseBlockBlocks100, @PUCUUnicodeIgnoreCaseBlockBlocks101, @PUCUUnicodeIgnoreCaseBlockBlocks102, @PUCUUnicodeIgnoreCaseBlockBlocks103, @PUCUUnicodeIgnoreCaseBlockBlocks104, @PUCUUnicodeIgnoreCaseBlockBlocks105, @PUCUUnicodeIgnoreCaseBlockBlocks106, @PUCUUnicodeIgnoreCaseBlockBlocks107, @PUCUUnicodeIgnoreCaseBlockBlocks108, @PUCUUnicodeIgnoreCaseBlockBlocks109, @PUCUUnicodeIgnoreCaseBlockBlocks110, @PUCUUnicodeIgnoreCaseBlockBlocks111, @PUCUUnicodeIgnoreCaseBlockBlocks112, @PUCUUnicodeIgnoreCaseBlockBlocks113, @PUCUUnicodeIgnoreCaseBlockBlocks114, @PUCUUnicodeIgnoreCaseBlockBlocks115, @PUCUUnicodeIgnoreCaseBlockBlocks116, @PUCUUnicodeIgnoreCaseBlockBlocks117, @PUCUUnicodeIgnoreCaseBlockBlocks118, @PUCUUnicodeIgnoreCaseBlockBlocks119, @PUCUUnicodeIgnoreCaseBlockBlocks120, @PUCUUnicodeIgnoreCaseBlockBlocks121, @PUCUUnicodeIgnoreCaseBlockBlocks122, @PUCUUnicodeIgnoreCaseBlockBlocks123, @PUCUUnicodeIgnoreCaseBlockBlocks124, @PUCUUnicodeIgnoreCaseBlockBlocks125, @PUCUUnicodeIgnoreCaseBlockBlocks126, @PUCUUnicodeIgnoreCaseBlockBlocks127, @PUCUUnicodeIgnoreCaseBlockBlocks128, @PUCUUnicodeIgnoreCaseBlockBlocks129, @PUCUUnicodeIgnoreCaseBlockBlocks130, @PUCUUnicodeIgnoreCaseBlockBlocks131, @PUCUUnicodeIgnoreCaseBlockBlocks132, @PUCUUnicodeIgnoreCaseBlockBlocks133, @PUCUUnicodeIgnoreCaseBlockBlocks134, @PUCUUnicodeIgnoreCaseBlockBlocks135, @PUCUUnicodeIgnoreCaseBlockBlocks136, @PUCUUnicodeIgnoreCaseBlockBlocks137, @PUCUUnicodeIgnoreCaseBlockBlocks138, @PUCUUnicodeIgnoreCaseBlockBlocks139, @PUCUUnicodeIgnoreCaseBlockBlocks140, @PUCUUnicodeIgnoreCaseBlockBlocks141, @PUCUUnicodeIgnoreCaseBlockBlocks142, @PUCUUnicodeIgnoreCaseBlockBlocks143, @PUCUUnicodeIgnoreCaseBlockBlocks144, @PUCUUnicodeIgnoreCaseBlockBlocks145, @PUCUUnicodeIgnoreCaseBlockBlocks146, @PUCUUnicodeIgnoreCaseBlockBlocks147, @PUCUUnicodeIgnoreCaseBlockBlocks148, @PUCUUnicodeIgnoreCaseBlockBlocks149, @PUCUUnicodeIgnoreCaseBlockBlocks150, @PUCUUnicodeIgnoreCaseBlockBlocks151, @PUCUUnicodeIgnoreCaseBlockBlocks152, @PUCUUnicodeIgnoreCaseBlockBlocks153, @PUCUUnicodeIgnoreCaseBlockBlocks154, @PUCUUnicodeIgnoreCaseBlockBlocks155, @PUCUUnicodeIgnoreCaseBlockBlocks156, @PUCUUnicodeIgnoreCaseBlockBlocks157, @PUCUUnicodeIgnoreCaseBlockBlocks158, @PUCUUnicodeIgnoreCaseBlockBlocks159, @PUCUUnicodeIgnoreCaseBlockBlocks160, @PUCUUnicodeIgnoreCaseBlockBlocks161, @PUCUUnicodeIgnoreCaseBlockBlocks162, @PUCUUnicodeIgnoreCaseBlockBlocks163, @PUCUUnicodeIgnoreCaseBlockBlocks164, @PUCUUnicodeIgnoreCaseBlockBlocks165, @PUCUUnicodeIgnoreCaseBlockBlocks166, @PUCUUnicodeIgnoreCaseBlockBlocks167, @PUCUUnicodeIgnoreCaseBlockBlocks168, @PUCUUnicodeIgnoreCaseBlockBlocks169, @PUCUUnicodeIgnoreCaseBlockBlocks170, @PUCUUnicodeIgnoreCaseBlockBlocks171, @PUCUUnicodeIgnoreCaseBlockBlocks172, @PUCUUnicodeIgnoreCaseBlockBlocks173, @PUCUUnicodeIgnoreCaseBlockBlocks174, @PUCUUnicodeIgnoreCaseBlockBlocks175, @PUCUUnicodeIgnoreCaseBlockBlocks176, @PUCUUnicodeIgnoreCaseBlockBlocks177, @PUCUUnicodeIgnoreCaseBlockBlocks178, @PUCUUnicodeIgnoreCaseBlockBlocks179, @PUCUUnicodeIgnoreCaseBlockBlocks180, @PUCUUnicodeIgnoreCaseBlockBlocks181, @PUCUUnicodeIgnoreCaseBlockBlocks182, @PUCUUnicodeIgnoreCaseBlockBlocks183, @PUCUUnicodeIgnoreCaseBlockBlocks184, @PUCUUnicodeIgnoreCaseBlockBlocks185, @PUCUUnicodeIgnoreCaseBlockBlocks186, @PUCUUnicodeIgnoreCaseBlockBlocks187, @PUCUUnicodeIgnoreCaseBlockBlocks188, @PUCUUnicodeIgnoreCaseBlockBlocks189, @PUCUUnicodeIgnoreCaseBlockBlocks190, @PUCUUnicodeIgnoreCaseBlockBlocks191, @PUCUUnicodeIgnoreCaseBlockBlocks192, @PUCUUnicodeIgnoreCaseBlockBlocks193, @PUCUUnicodeIgnoreCaseBlockBlocks194, @PUCUUnicodeIgnoreCaseBlockBlocks195, @PUCUUnicodeIgnoreCaseBlockBlocks196, @PUCUUnicodeIgnoreCaseBlockBlocks197, @PUCUUnicodeIgnoreCaseBlockBlocks198, @PUCUUnicodeIgnoreCaseBlockBlocks199, @PUCUUnicodeIgnoreCaseBlockBlocks200, @PUCUUnicodeIgnoreCaseBlockBlocks201, @PUCUUnicodeIgnoreCaseBlockBlocks202, @PUCUUnicodeIgnoreCaseBlockBlocks203, @PUCUUnicodeIgnoreCaseBlockBlocks204, @PUCUUnicodeIgnoreCaseBlockBlocks205, @PUCUUnicodeIgnoreCaseBlockBlocks206, @PUCUUnicodeIgnoreCaseBlockBlocks207, @PUCUUnicodeIgnoreCaseBlockBlocks208, @PUCUUnicodeIgnoreCaseBlockBlocks209, @PUCUUnicodeIgnoreCaseBlockBlocks210, @PUCUUnicodeIgnoreCaseBlockBlocks211, @PUCUUnicodeIgnoreCaseBlockBlocks212, @PUCUUnicodeIgnoreCaseBlockBlocks213, @PUCUUnicodeIgnoreCaseBlockBlocks214, @PUCUUnicodeIgnoreCaseBlockBlocks215, @PUCUUnicodeIgnoreCaseBlockBlocks216, @PUCUUnicodeIgnoreCaseBlockBlocks217, @PUCUUnicodeIgnoreCaseBlockBlocks218, @PUCUUnicodeIgnoreCaseBlockBlocks219, @PUCUUnicodeIgnoreCaseBlockBlocks220, @PUCUUnicodeIgnoreCaseBlockBlocks221, @PUCUUnicodeIgnoreCaseBlockBlocks222, @PUCUUnicodeIgnoreCaseBlockBlocks223, @PUCUUnicodeIgnoreCaseBlockBlocks224, @PUCUUnicodeIgnoreCaseBlockBlocks225, @PUCUUnicodeIgnoreCaseBlockBlocks226, @PUCUUnicodeIgnoreCaseBlockBlocks227, @PUCUUnicodeIgnoreCaseBlockBlocks228, @PUCUUnicodeIgnoreCaseBlockBlocks229, @PUCUUnicodeIgnoreCaseBlockBlocks230, @PUCUUnicodeIgnoreCaseBlockBlocks231, @PUCUUnicodeIgnoreCaseBlockBlocks232, @PUCUUnicodeIgnoreCaseBlockBlocks233, @PUCUUnicodeIgnoreCaseBlockBlocks234, @PUCUUnicodeIgnoreCaseBlockBlocks235, @PUCUUnicodeIgnoreCaseBlockBlocks236, @PUCUUnicodeIgnoreCaseBlockBlocks237, @PUCUUnicodeIgnoreCaseBlockBlocks238, @PUCUUnicodeIgnoreCaseBlockBlocks239, @PUCUUnicodeIgnoreCaseBlockBlocks240, @PUCUUnicodeIgnoreCaseBlockBlocks241, @PUCUUnicodeIgnoreCaseBlockBlocks242, @PUCUUnicodeIgnoreCaseBlockBlocks243, @PUCUUnicodeIgnoreCaseBlockBlocks244, @PUCUUnicodeIgnoreCaseBlockBlocks245, @PUCUUnicodeIgnoreCaseBlockBlocks246, @PUCUUnicodeIgnoreCaseBlockBlocks247, @PUCUUnicodeIgnoreCaseBlockBlocks248, @PUCUUnicodeIgnoreCaseBlockBlocks249, @PUCUUnicodeIgnoreCaseBlockBlocks250, @PUCUUnicodeIgnoreCaseBlockBlocks251, @PUCUUnicodeIgnoreCaseBlockBlocks252, @PUCUUnicodeIgnoreCaseBlockBlocks253, @PUCUUnicodeIgnoreCaseBlockBlocks254, @PUCUUnicodeIgnoreCaseBlockBlocks255, @PUCUUnicodeIgnoreCaseBlockBlocks256, @PUCUUnicodeIgnoreCaseBlockBlocks257, @PUCUUnicodeIgnoreCaseBlockBlocks258, @PUCUUnicodeIgnoreCaseBlockBlocks259, @PUCUUnicodeIgnoreCaseBlockBlocks260, @PUCUUnicodeIgnoreCaseBlockBlocks261, @PUCUUnicodeIgnoreCaseBlockBlocks262, @PUCUUnicodeIgnoreCaseBlockBlocks263, @PUCUUnicodeIgnoreCaseBlockBlocks264, @PUCUUnicodeIgnoreCaseBlockBlocks265, @PUCUUnicodeIgnoreCaseBlockBlocks266, @PUCUUnicodeIgnoreCaseBlockBlocks267, @PUCUUnicodeIgnoreCaseBlockBlocks268, @PUCUUnicodeIgnoreCaseBlockBlocks269, @PUCUUnicodeIgnoreCaseBlockBlocks270, @PUCUUnicodeIgnoreCaseBlockBlocks271, @PUCUUnicodeIgnoreCaseBlockBlocks272, @PUCUUnicodeIgnoreCaseBlockBlocks273, @PUCUUnicodeIgnoreCaseBlockBlocks274, @PUCUUnicodeIgnoreCaseBlockBlocks275, @PUCUUnicodeIgnoreCaseBlockBlocks276, @PUCUUnicodeIgnoreCaseBlockBlocks277, @PUCUUnicodeIgnoreCaseBlockBlocks278, @PUCUUnicodeIgnoreCaseBlockBlocks279, @PUCUUnicodeIgnoreCaseBlockBlocks280, @PUCUUnicodeIgnoreCaseBlockBlocks281, @PUCUUnicodeIgnoreCaseBlockBlocks282, @PUCUUnicodeIgnoreCaseBlockBlocks283, @PUCUUnicodeIgnoreCaseBlockBlocks284, @PUCUUnicodeIgnoreCaseBlockBlocks285, @PUCUUnicodeIgnoreCaseBlockBlocks286, @PUCUUnicodeIgnoreCaseBlockBlocks287, @PUCUUnicodeIgnoreCaseBlockBlocks288, @PUCUUnicodeIgnoreCaseBlockBlocks289, @PUCUUnicodeIgnoreCaseBlockBlocks290, @PUCUUnicodeIgnoreCaseBlockBlocks291, @PUCUUnicodeIgnoreCaseBlockBlocks292, @PUCUUnicodeIgnoreCaseBlockBlocks293, @PUCUUnicodeIgnoreCaseBlockBlocks294, @PUCUUnicodeIgnoreCaseBlockBlocks295, @PUCUUnicodeIgnoreCaseBlockBlocks296, @PUCUUnicodeIgnoreCaseBlockBlocks297, @PUCUUnicodeIgnoreCaseBlockBlocks298, @PUCUUnicodeIgnoreCaseBlockBlocks299, @PUCUUnicodeIgnoreCaseBlockBlocks300, @PUCUUnicodeIgnoreCaseBlockBlocks301, @PUCUUnicodeIgnoreCaseBlockBlocks302, @PUCUUnicodeIgnoreCaseBlockBlocks303, @PUCUUnicodeIgnoreCaseBlockBlocks304, @PUCUUnicodeIgnoreCaseBlockBlocks305, @PUCUUnicodeIgnoreCaseBlockBlocks306, @PUCUUnicodeIgnoreCaseBlockBlocks307, @PUCUUnicodeIgnoreCaseBlockBlocks308, @PUCUUnicodeIgnoreCaseBlockBlocks309, @PUCUUnicodeIgnoreCaseBlockBlocks310, @PUCUUnicodeIgnoreCaseBlockBlocks311, @PUCUUnicodeIgnoreCaseBlockBlocks312, @PUCUUnicodeIgnoreCaseBlockBlocks313, @PUCUUnicodeIgnoreCaseBlockBlocks314, @PUCUUnicodeIgnoreCaseBlockBlocks315, @PUCUUnicodeIgnoreCaseBlockBlocks316, @PUCUUnicodeIgnoreCaseBlockBlocks317, @PUCUUnicodeIgnoreCaseBlockBlocks318, @PUCUUnicodeIgnoreCaseBlockBlocks319, @PUCUUnicodeIgnoreCaseBlockBlocks320, @PUCUUnicodeIgnoreCaseBlockBlocks321, @PUCUUnicodeIgnoreCaseBlockBlocks322, @PUCUUnicodeIgnoreCaseBlockBlocks323, @PUCUUnicodeIgnoreCaseBlockBlocks324, @PUCUUnicodeIgnoreCaseBlockBlocks325, @PUCUUnicodeIgnoreCaseBlockBlocks326 ); const PUCUUnicodeIgnoreCaseBlockBlocksCounts:array[0..326] of longint=( 1, 3, 4, 17, 22, 1, 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, 6, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 3, 1, 1, 3, 2, 1, 2, 2, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ); const PUCUCountUnicodeAdditionalBlocks=3; const PUCUUnicodeAdditionalBlocks0:array[0..161] of TPUCUUnicodeCharRange=( (45,59), (65,91), (95,123), (183,184), (192,306), (308,319), (321,452), (461,497), (500,502), (506,536), (592,681), (699,706), (720,722), (768,838), (864,866), (902,983), (986,1012), (1025,1159), (1168,1221), (1223,1225), (1227,1229), (1232,1260), (1262,1270), (1272,1274), (1329,1367), (1369,1370), (1377,1415), (1425,1477), (1488,1515), (1520,1523), (1569,1595), (1600,1619), (1632,1642), (1648,1720), (1722,1774), (1776,1786), (2305,2362), (2364,2382), (2385,2389), (2392,2404), (2406,2416), (2433,2445), (2447,2449), (2451,2483), (2486,2490), (2492,2501), (2503,2505), (2507,2510), (2519,2520), (2524,2532), (2534,2546), (2562,2563), (2565,2571), (2575,2577), (2579,2618), (2620,2627), (2631,2633), (2635,2638), (2649,2655), (2662,2677), (2689,2746), (2748,2766), (2784,2785), (2790,2800), (2817,2829), (2831,2833), (2835,2868), (2870,2874), (2876,2884), (2887,2889), (2891,2894), (2902,2904), (2908,2914), (2918,2928), (2946,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3006,3011), (3014,3022), (3031,3032), (3047,3056), (3073,3130), (3134,3150), (3157,3159), (3168,3170), (3174,3184), (3202,3258), (3262,3278), (3285,3287), (3294,3298), (3302,3312), (3330,3386), (3390,3396), (3398,3406), (3415,3416), (3424,3426), (3430,3440), (3585,3643), (3648,3674), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3774), (3776,3790), (3792,3802), (3864,3866), (3872,3882), (3893,3898), (3902,3946), (3953,3980), (3984,4014), (4017,4026), (4256,4294), (4304,4343), (4352,4371), (4412,4417), (4428,4433), (4436,4438), (4441,4442), (4447,4458), (4461,4463), (4466,4470), (4510,4511), (4520,4521), (4523,4524), (4526,4528), (4535,4547), (4587,4588), (4592,4593), (4601,4602), (7680,7836), (7840,7930), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8127), (8130,8141), (8144,8148), (8150,8156), (8160,8173), (8178,8189), (8400,8413), (8417,8418), (8486,8487), (8490,8492), (8494,8495), (8576,8579), (12293,12296), (12321,12342), (12353,12437), (12441,12443), (12445,12447), (12449,12543), (12549,12589), (19968,40870), (44032,55204) ); const PUCUUnicodeAdditionalBlocks1:array[0..19] of TPUCUUnicodeCharRange=( (48,58), (1632,1642), (1776,1786), (2406,2416), (2534,2544), (2662,2672), (2790,2800), (2918,2928), (3047,3056), (3174,3184), (3302,3312), (3430,3440), (3664,3674), (3792,3802), (3872,3882), (4160,4170), (4969,4978), (6112,6122), (6160,6170), (65296,65306) ); const PUCUUnicodeAdditionalBlocks2:array[0..116] of TPUCUUnicodeCharRange=( (58,59), (65,91), (95,123), (192,306), (308,319), (321,452), (461,497), (500,502), (506,536), (592,681), (699,706), (902,983), (986,1012), (1025,1154), (1168,1221), (1223,1225), (1227,1229), (1232,1260), (1262,1270), (1272,1274), (1329,1367), (1369,1370), (1377,1415), (1488,1515), (1520,1523), (1569,1595), (1601,1611), (1649,1720), (1722,1750), (1765,1767), (2309,2362), (2365,2366), (2392,2402), (2437,2445), (2447,2449), (2451,2483), (2486,2490), (2524,2530), (2544,2546), (2565,2571), (2575,2577), (2579,2618), (2649,2655), (2674,2677), (2693,2746), (2749,2750), (2784,2785), (2821,2829), (2831,2833), (2835,2868), (2870,2874), (2877,2878), (2908,2914), (2949,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3077,3130), (3168,3170), (3205,3258), (3294,3298), (3333,3386), (3424,3426), (3585,3636), (3648,3654), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3764), (3773,3774), (3776,3781), (3904,3946), (4256,4294), (4304,4343), (4352,4371), (4412,4417), (4428,4433), (4436,4438), (4441,4442), (4447,4458), (4461,4463), (4466,4470), (4510,4511), (4520,4521), (4523,4524), (4526,4528), (4535,4547), (4587,4588), (4592,4593), (4601,4602), (7680,7836), (7840,7930), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8127), (8130,8141), (8144,8148), (8150,8156), (8160,8173), (8178,8189), (8486,8487), (8490,8492), (8494,8495), (8576,8579), (12295,12296), (12321,12330), (12353,12437), (12449,12539), (12549,12589), (19968,40870), (44032,55204) ); const PUCUUnicodeAdditionalBlocks3:array[0..238] of TPUCUUnicodeCharRange=( (36,37), (43,44), (48,58), (60,63), (65,91), (94,127), (162,564), (592,686), (688,751), (768,848), (864,880), (884,886), (890,891), (900,1015), (1024,1270), (1272,1274), (1280,1296), (1329,1367), (1369,1370), (1377,1416), (1425,1477), (1488,1515), (1520,1523), (1569,1595), (1600,1622), (1632,1642), (1646,1774), (1776,1791), (1808,1837), (1840,1867), (1920,1970), (2305,2362), (2364,2382), (2384,2389), (2392,2404), (2406,2416), (2433,2445), (2447,2449), (2451,2483), (2486,2490), (2492,2501), (2503,2505), (2507,2510), (2519,2520), (2524,2532), (2534,2555), (2562,2563), (2565,2571), (2575,2577), (2579,2618), (2620,2627), (2631,2633), (2635,2638), (2649,2655), (2662,2677), (2689,2746), (2748,2766), (2768,2769), (2784,2785), (2790,2800), (2817,2829), (2831,2833), (2835,2868), (2870,2874), (2876,2884), (2887,2889), (2891,2894), (2902,2904), (2908,2914), (2918,2929), (2946,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3006,3011), (3014,3022), (3031,3032), (3047,3059), (3073,3130), (3134,3150), (3157,3159), (3168,3170), (3174,3184), (3202,3258), (3262,3278), (3285,3287), (3294,3298), (3302,3312), (3330,3386), (3390,3396), (3398,3406), (3415,3416), (3424,3426), (3430,3440), (3458,3479), (3482,3518), (3520,3527), (3530,3531), (3535,3552), (3570,3572), (3585,3643), (3647,3674), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3774), (3776,3790), (3792,3802), (3804,3806), (3840,3844), (3859,3898), (3902,3947), (3953,3980), (3984,4045), (4047,4048), (4096,4147), (4150,4154), (4160,4170), (4176,4186), (4256,4294), (4304,4345), (4352,4442), (4447,4515), (4520,4602), (4608,4686), (4688,4702), (4704,4750), (4752,4790), (4792,4806), (4808,4886), (4888,4955), (4969,4989), (5024,5109), (5121,5741), (5743,5751), (5761,5787), (5792,5867), (5870,5873), (5888,5909), (5920,5941), (5952,5972), (5984,6004), (6016,6100), (6103,6104), (6107,6109), (6112,6122), (6155,6158), (6160,6170), (6176,6264), (6272,6314), (7680,7836), (7840,7930), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8148), (8150,8176), (8178,8191), (8260,8261), (8274,8275), (8304,8306), (8308,8317), (8319,8333), (8352,8370), (8400,8427), (8448,8507), (8509,8524), (8531,8580), (8592,9001), (9003,9140), (9143,9167), (9216,9255), (9280,9291), (9312,9748), (9750,9854), (9856,9866), (9985,9994), (9996,10067), (10070,10079), (10081,10088), (10102,10133), (10136,10175), (10192,10214), (10224,10627), (10649,10712), (10716,10748), (10750,11008), (11904,12020), (12032,12246), (12272,12284), (12292,12296), (12306,12308), (12320,12439), (12441,12544), (12549,12589), (12593,12728), (12784,12829), (12832,12868), (12881,12924), (12927,13004), (13008,13175), (13179,13278), (13280,19894), (19968,40870), (40960,42125), (42128,42183), (44032,55204), (63744,64046), (64048,64107), (64256,64263), (64275,64280), (64285,64434), (64467,64830), (64848,64912), (64914,64968), (65008,65021), (65024,65040), (65056,65060), (65122,65127), (65129,65130), (65136,65277), (65284,65285), (65291,65292), (65296,65306), (65308,65311), (65313,65339), (65342,65375), (65382,65471), (65474,65480), (65482,65488), (65490,65496), (65498,65501), (65504,65519), (65532,65534) ); const PUCUUnicodeAdditionalBlocksData:array[0..3] of pointer=( @PUCUUnicodeAdditionalBlocks0, @PUCUUnicodeAdditionalBlocks1, @PUCUUnicodeAdditionalBlocks2, @PUCUUnicodeAdditionalBlocks3 ); const PUCUUnicodeAdditionalBlocksCounts:array[0..3] of longint=( 162, 20, 117, 239 ); const PUCUCountUnicodeIgnoreCaseAdditionalBlocks=3; const PUCUUnicodeIgnoreCaseAdditionalBlocks0:array[0..169] of TPUCUUnicodeCharRange=( (45,59), (65,91), (95,123), (183,184), (192,452), (454,454), (461,497), (499,503), (506,537), (544,544), (573,573), (579,581), (592,681), (699,706), (720,722), (768,838), (864,866), (895,895), (902,983), (986,1012), (1017,1017), (1024,1159), (1168,1275), (1329,1367), (1369,1370), (1377,1415), (1425,1477), (1488,1515), (1520,1523), (1569,1595), (1600,1619), (1632,1642), (1648,1720), (1722,1774), (1776,1786), (2305,2362), (2364,2382), (2385,2389), (2392,2404), (2406,2416), (2433,2445), (2447,2449), (2451,2483), (2486,2490), (2492,2501), (2503,2505), (2507,2510), (2519,2520), (2524,2532), (2534,2546), (2562,2563), (2565,2571), (2575,2577), (2579,2618), (2620,2627), (2631,2633), (2635,2638), (2649,2655), (2662,2677), (2689,2746), (2748,2766), (2784,2785), (2790,2800), (2817,2829), (2831,2833), (2835,2868), (2870,2874), (2876,2884), (2887,2889), (2891,2894), (2902,2904), (2908,2914), (2918,2928), (2946,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3006,3011), (3014,3022), (3031,3032), (3047,3056), (3073,3130), (3134,3150), (3157,3159), (3168,3170), (3174,3184), (3202,3258), (3262,3278), (3285,3287), (3294,3298), (3302,3312), (3330,3386), (3390,3396), (3398,3406), (3415,3416), (3424,3426), (3430,3440), (3585,3643), (3648,3674), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3774), (3776,3790), (3792,3802), (3864,3866), (3872,3882), (3893,3898), (3902,3946), (3953,3980), (3984,4014), (4017,4026), (4256,4294), (4304,4343), (4352,4371), (4412,4417), (4428,4433), (4436,4438), (4441,4442), (4447,4458), (4461,4463), (4466,4470), (4510,4511), (4520,4521), (4523,4524), (4526,4528), (4535,4547), (4587,4588), (4592,4593), (4601,4602), (7312,7351), (7680,7836), (7840,7931), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8127), (8130,8141), (8144,8148), (8150,8156), (8160,8173), (8178,8189), (8400,8413), (8417,8418), (8486,8487), (8490,8492), (8494,8495), (8576,8580), (11362,11362), (11364,11364), (11373,11376), (11520,11557), (12293,12296), (12321,12342), (12353,12437), (12441,12443), (12445,12447), (12449,12543), (12549,12589), (19968,40870), (42893,42893), (42922,42926), (42928,42930), (42949,42949), (44032,55204) ); const PUCUUnicodeIgnoreCaseAdditionalBlocks1:array[0..19] of TPUCUUnicodeCharRange=( (48,58), (1632,1642), (1776,1786), (2406,2416), (2534,2544), (2662,2672), (2790,2800), (2918,2928), (3047,3056), (3174,3184), (3302,3312), (3430,3440), (3664,3674), (3792,3802), (3872,3882), (4160,4170), (4969,4978), (6112,6122), (6160,6170), (65296,65306) ); const PUCUUnicodeIgnoreCaseAdditionalBlocks2:array[0..124] of TPUCUUnicodeCharRange=( (58,59), (65,91), (95,123), (192,452), (454,454), (461,497), (499,503), (506,537), (544,544), (573,573), (579,581), (592,681), (699,706), (895,895), (902,983), (986,1012), (1017,1017), (1024,1154), (1168,1275), (1329,1367), (1369,1370), (1377,1415), (1488,1515), (1520,1523), (1569,1595), (1601,1611), (1649,1720), (1722,1750), (1765,1767), (2309,2362), (2365,2366), (2392,2402), (2437,2445), (2447,2449), (2451,2483), (2486,2490), (2524,2530), (2544,2546), (2565,2571), (2575,2577), (2579,2618), (2649,2655), (2674,2677), (2693,2746), (2749,2750), (2784,2785), (2821,2829), (2831,2833), (2835,2868), (2870,2874), (2877,2878), (2908,2914), (2949,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3077,3130), (3168,3170), (3205,3258), (3294,3298), (3333,3386), (3424,3426), (3585,3636), (3648,3654), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3764), (3773,3774), (3776,3781), (3904,3946), (4256,4294), (4304,4343), (4352,4371), (4412,4417), (4428,4433), (4436,4438), (4441,4442), (4447,4458), (4461,4463), (4466,4470), (4510,4511), (4520,4521), (4523,4524), (4526,4528), (4535,4547), (4587,4588), (4592,4593), (4601,4602), (7312,7351), (7680,7836), (7840,7931), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8127), (8130,8141), (8144,8148), (8150,8156), (8160,8173), (8178,8189), (8486,8487), (8490,8492), (8494,8495), (8576,8580), (11362,11362), (11364,11364), (11373,11376), (11520,11557), (12295,12296), (12321,12330), (12353,12437), (12449,12539), (12549,12589), (19968,40870), (42893,42893), (42922,42926), (42928,42930), (42949,42949), (44032,55204) ); const PUCUUnicodeIgnoreCaseAdditionalBlocks3:array[0..253] of TPUCUUnicodeCharRange=( (36,37), (43,44), (48,58), (60,63), (65,91), (94,127), (162,564), (573,573), (579,581), (592,686), (688,751), (768,848), (864,881), (884,887), (890,891), (895,895), (900,1017), (1021,1021), (1024,1275), (1280,1297), (1329,1367), (1369,1370), (1377,1416), (1425,1477), (1488,1515), (1520,1523), (1569,1595), (1600,1622), (1632,1642), (1646,1774), (1776,1791), (1808,1837), (1840,1867), (1920,1970), (2305,2362), (2364,2382), (2384,2389), (2392,2404), (2406,2416), (2433,2445), (2447,2449), (2451,2483), (2486,2490), (2492,2501), (2503,2505), (2507,2510), (2519,2520), (2524,2532), (2534,2555), (2562,2563), (2565,2571), (2575,2577), (2579,2618), (2620,2627), (2631,2633), (2635,2638), (2649,2655), (2662,2677), (2689,2746), (2748,2766), (2768,2769), (2784,2785), (2790,2800), (2817,2829), (2831,2833), (2835,2868), (2870,2874), (2876,2884), (2887,2889), (2891,2894), (2902,2904), (2908,2914), (2918,2929), (2946,2955), (2958,2966), (2969,2976), (2979,2981), (2984,2987), (2990,3002), (3006,3011), (3014,3022), (3031,3032), (3047,3059), (3073,3130), (3134,3150), (3157,3159), (3168,3170), (3174,3184), (3202,3258), (3262,3278), (3285,3287), (3294,3298), (3302,3312), (3330,3386), (3390,3396), (3398,3406), (3415,3416), (3424,3426), (3430,3440), (3458,3479), (3482,3518), (3520,3527), (3530,3531), (3535,3552), (3570,3572), (3585,3643), (3647,3674), (3713,3717), (3719,3723), (3725,3726), (3732,3752), (3754,3774), (3776,3790), (3792,3802), (3804,3806), (3840,3844), (3859,3898), (3902,3947), (3953,3980), (3984,4045), (4047,4048), (4096,4147), (4150,4154), (4160,4170), (4176,4186), (4256,4294), (4304,4345), (4352,4442), (4447,4515), (4520,4602), (4608,4686), (4688,4702), (4704,4750), (4752,4790), (4792,4806), (4808,4886), (4888,4955), (4969,4989), (5024,5109), (5112,5117), (5121,5741), (5743,5751), (5761,5787), (5792,5867), (5870,5873), (5888,5909), (5920,5941), (5952,5972), (5984,6004), (6016,6100), (6103,6104), (6107,6109), (6112,6122), (6155,6158), (6160,6170), (6176,6264), (6272,6314), (7312,7353), (7680,7836), (7840,7931), (7936,7958), (7960,7966), (7968,8006), (8008,8014), (8016,8062), (8064,8148), (8150,8176), (8178,8191), (8260,8261), (8274,8275), (8304,8306), (8308,8317), (8319,8333), (8352,8370), (8400,8427), (8448,8507), (8509,8524), (8526,8526), (8531,8580), (8592,9001), (9003,9140), (9143,9167), (9216,9255), (9280,9291), (9312,9748), (9750,9854), (9856,9866), (9985,9994), (9996,10067), (10070,10079), (10081,10088), (10102,10133), (10136,10175), (10192,10214), (10224,10627), (10649,10712), (10716,10748), (10750,11008), (11362,11362), (11364,11364), (11373,11376), (11520,11557), (11904,12020), (12032,12246), (12272,12284), (12292,12296), (12306,12308), (12320,12439), (12441,12544), (12549,12589), (12593,12728), (12784,12829), (12832,12868), (12881,12924), (12927,13004), (13008,13175), (13179,13278), (13280,19894), (19968,40870), (40960,42125), (42128,42183), (42893,42893), (42922,42926), (42928,42930), (42949,42949), (43888,43967), (44032,55204), (63744,64046), (64048,64107), (64256,64263), (64275,64280), (64285,64434), (64467,64830), (64848,64912), (64914,64968), (65008,65021), (65024,65040), (65056,65060), (65122,65127), (65129,65130), (65136,65277), (65284,65285), (65291,65292), (65296,65306), (65308,65311), (65313,65339), (65342,65375), (65382,65471), (65474,65480), (65482,65488), (65490,65496), (65498,65501), (65504,65519), (65532,65534) ); const PUCUUnicodeIgnoreCaseAdditionalBlocksData:array[0..3] of pointer=( @PUCUUnicodeIgnoreCaseAdditionalBlocks0, @PUCUUnicodeIgnoreCaseAdditionalBlocks1, @PUCUUnicodeIgnoreCaseAdditionalBlocks2, @PUCUUnicodeIgnoreCaseAdditionalBlocks3 ); const PUCUUnicodeIgnoreCaseAdditionalBlocksCounts:array[0..3] of longint=( 170, 20, 125, 254 ); const PUCULowerUpperCaseUnicodeCharClassSize=141; PUCULowerUpperCaseUnicodeCharClass:array[0..140,0..1] of longword=( (65,90), (97,122), (181,181), (192,214), (216,222), (224,246), (248,311), (313,328), (330,396), (398,410), (412,425), (428,441), (444,445), (447,447), (452,495), (497,544), (546,563), (570,596), (598,599), (601,601), (603,604), (608,609), (611,611), (613,614), (616,620), (623,623), (625,626), (629,629), (637,637), (640,640), (642,643), (647,652), (658,658), (669,670), (837,837), (880,883), (886,887), (891,893), (895,895), (902,902), (904,906), (908,908), (910,911), (913,929), (931,943), (945,977), (981,1013), (1015,1019), (1021,1153), (1162,1327), (1329,1366), (1377,1414), (4256,4293), (4295,4295), (4301,4301), (4304,4346), (4349,4351), (5024,5109), (5112,5117), (7296,7304), (7312,7354), (7357,7359), (7545,7545), (7549,7549), (7566,7566), (7680,7829), (7835,7835), (7838,7838), (7840,7957), (7960,7965), (7968,8005), (8008,8013), (8017,8017), (8019,8019), (8021,8021), (8023,8023), (8025,8025), (8027,8027), (8029,8029), (8031,8061), (8064,8113), (8115,8115), (8120,8124), (8126,8126), (8131,8131), (8136,8140), (8144,8145), (8152,8155), (8160,8161), (8165,8165), (8168,8172), (8179,8179), (8184,8188), (8486,8486), (8490,8491), (8498,8498), (8526,8526), (8544,8575), (8579,8580), (9398,9449), (11264,11376), (11378,11379), (11381,11382), (11390,11491), (11499,11502), (11506,11507), (11520,11557), (11559,11559), (11565,11565), (42560,42605), (42624,42651), (42786,42799), (42802,42863), (42873,42887), (42891,42893), (42896,42900), (42902,42926), (42928,42954), (42960,42961), (42966,42969), (42997,42998), (43859,43859), (43888,43967), (65313,65338), (65345,65370), (66560,66639), (66736,66771), (66776,66811), (66928,66938), (66940,66954), (66956,66962), (66964,66965), (66967,66977), (66979,66993), (66995,67001), (67003,67004), (68736,68786), (68800,68850), (71840,71903), (93760,93823), (125184,125251) ); const PUCUUnicodeClassHashMapSeedSize=297; PUCUUnicodeClassHashMapValueSize=297; PUCUUnicodeClassHashMapSize=297; PUCUUnicodeClassHashMapSeedBits=16; PUCUUnicodeClassHashMapSeeds:array[0..296] of smallint=( -297, 3, -295, 0, 1, 0, 0, -292, -289, 0, -286, 0, 0, -285, -283, -282, 0, 0, -281, 1, -280, -279, -278, 0, -275, -273, 0, -272, 0, 1, 0, 2, -269, 0, 2, -265, 0, -262, 1, 0, 0, 0, 0, -260, 0, -257, 1, 1, -256, -255, -254, 1, 1, -251, -247, 0, -246, 1, -245, -243, -241, -236, 0, -235, 0, 1, -234, 0, 1, 0, 0, -233, 0, 0, 0, 0, 0, 1, -232, 0, -231, -229, 0, 1, -228, 1, 0, 1, 5, 1, -227, 0, 0, -224, 1, 1, 4, 1, -223, -218, -216, 2, 5, 1, 0, 1, -212, 1, -211, 0, 1, 2, 1, -210, 0, -205, 1, 3, -204, 1, -203, 1, -197, -181, -177, 2, 3, -176, 0, -165, -164, 1, -163, 0, 0, -162, -161, 13, 1, 0, -156, 0, -154, 0, 1, -152, 0, 0, -150, 1, 0, -143, 0, -136, 0, 0, 9, 0, 1, -134, 0, 0, 0, -131, -129, 3, 2, 3, 2, -127, 0, 0, -126, 2, -125, -123, -122, 0, 0, -121, 0, -120, 8, 0, -117, 0, 0, -116, -114, 0, 0, 0, 5, 0, 0, 0, 3, 0, -113, 0, -112, 2, -109, 1, 2, 0, -106, -105, -104, 0, 0, 6, 0, 0, -101, -98, -95, 1, -90, 1, 11, 0, 0, 0, 0, 3, 0, 0, 1, -88, -86, 1, -85, 0, -82, -81, 1, -79, -75, 7, -70, 0, 29, 0, -69, -66, 3, -65, -60, -57, 0, -56, -52, -48, -47, -45, 0, 0, 1, -42, 0, -35, -33, 0, 0, 0, 0, 0, 0, -31, -29, 0, 0, -27, 5, -18, 0, 0, 4, 1, -17, 0, 0, -16, 0, -15, 4, 0, -13, 3, -12, 0, -9, 0, -7, 0, -1 ); PUCUUnicodeClassHashMapKeys:array[0..296] of TPUCURawByteString=( 'IsConnectorPunctuation', 'Me', 'InSpace_Separator', 'InLm', 'IsModifierLetter', 'CurrencySymbol', 'Pi', 'InSurrogate', 'Po', 'Currency_Symbol', 'InNumber', 'InPunctuation', 'Ps', 'Sc', 'IsLine_Separator', 'InOther_Number', 'OtherPunctuation', 'Cc', 'IsConnector_Punctuation', 'InDashPunctuation', 'IsLineSeparator', 'InTitlecase_Letter', 'InOther_Symbol', 'Sm', 'InOtherSymbol', 'So', 'IsTitlecase_Letter', 'InSk', 'Cf', 'IsSurrogate', 'OtherLetter', 'InZs', 'IsInitial_Punctuation', 'IsOpenPunctuation', 'IsFinal_Punctuation', 'InSc', 'Control', 'InNonSpacingMark', 'InMath_Symbol', 'IsM', 'IsL', 'Cs', 'InOther_Punctuation', 'OpenPunctuation', 'IsModifier_Letter', 'IsLetterNumber', 'InNd', 'Letter_Number', 'IsUppercase_Letter', 'IsSpacingCombiningMark', 'IsEnclosingMark', 'InZl', 'InInitial_Punctuation', 'Other_Symbol', 'Other', 'InS', 'InClosePunctuation', 'InTitlecaseLetter', 'IsZ', 'InP', 'MathSymbol', 'InCurrency_Symbol', 'LowercaseLetter', 'IsSeperator', 'IsDashPunctuation', 'InNo', 'IsParagraphSeparator', 'IsFinalPunctuation', 'InOtherNumber', 'InZp', 'IsNd', 'IsControl', 'InSpacing_Combining_Mark', 'DecimalDigitNumber', 'InN', 'InLine_Separator', 'InOtherLetter', 'Final_Punctuation', 'InM', 'IsMath_Symbol', 'InC', 'InParagraph_Separator', 'IsSymbol', 'Modifier_Symbol', 'InSo', 'InSm', 'Connector_Punctuation', 'OtherSymbol', 'IsNo', 'IsCurrency_Symbol', 'IsLo', 'IsNl', 'IsLm', 'ClosePunctuation', 'InOpenPunctuation', 'InClose_Punctuation', 'InOtherPunctuation', 'IsSk', 'InLowercase_Letter', 'Lo', 'IsClosePunctuation', 'IsNumber', 'IsOther_Punctuation', 'IsOther_Symbol', 'IsSc', 'InUppercase_Letter', 'InParagraphSeparator', 'Punctuation', 'IsDash_Punctuation', 'OtherNumber', 'IsOther_Letter', 'Non_Spacing_Mark', 'InFinal_Punctuation', 'IsPunctuation', 'Sk', 'IsFormat', 'InLo', 'InOpen_Punctuation', 'IsMathSymbol', 'InLl', 'IsPrivateUse', 'EnclosingMark', 'InDecimal_Digit_Number', 'IsOther', 'InLu', 'InMe', 'Initial_Punctuation', 'UppercaseLetter', 'Surrogate', 'Space_Separator', 'InMn', 'IsOpen_Punctuation', 'IsOtherLetter', 'IsLt', 'InLetterNumber', 'IsSpacing_Combining_Mark', 'Other_Punctuation', 'InPrivateUse', 'Decimal_Digit_Number', 'IsPrivate_Use', 'InL', 'IsSm', 'IsTitlecaseLetter', 'IsSo', 'InUnassigned', 'InitialPunctuation', 'IsCurrencySymbol', 'Nd', 'IsModifier_Symbol', 'Lu', 'IsSpaceSeparator', 'Lowercase_Letter', 'ParagraphSeparator', 'InConnectorPunctuation', 'InZ', 'SpaceSeparator', 'IsModifierSymbol', 'IsS', 'Symbol', 'Spacing_Combining_Mark', 'IsOtherSymbol', 'IsParagraph_Separator', 'InPc', 'InCurrencySymbol', 'InLetter_Number', 'InCo', 'Zs', 'InCn', 'InSpacingCombiningMark', 'Zp', 'IsCn', 'IsCo', 'Private_Use', 'Pe', 'Unassigned', 'InPf', 'Lm', 'InMc', 'IsCf', 'InPs', 'Zl', 'IsMe', 'LineSeparator', 'IsMc', 'IsLowercase_Letter', 'Titlecase_Letter', 'InSeperator', 'Uppercase_Letter', 'InEnclosing_Mark', 'Cn', 'IsZp', 'InInitialPunctuation', 'Dash_Punctuation', 'IsZs', 'IsZl', 'InLowercaseLetter', 'InPi', 'Co', 'TitlecaseLetter', 'IsCs', 'ConnectorPunctuation', 'Modifier_Letter', 'InPo', 'IsDecimalDigitNumber', 'InDecimalDigitNumber', 'IsSpace_Separator', 'InMark', 'FinalPunctuation', 'InNl', 'InCs', 'IsOther_Number', 'Mn', 'InConnector_Punctuation', 'InFormat', 'InSpaceSeparator', 'IsInitialPunctuation', 'InPrivate_Use', 'IsP', 'Number', 'Pf', 'InLineSeparator', 'IsLl', 'Open_Punctuation', 'IsN', 'InCc', 'InSymbol', 'Math_Symbol', 'IsMn', 'PrivateUse', 'InCf', 'IsC', 'SpacingCombiningMark', 'ModifierSymbol', 'Seperator', 'IsPs', 'InUppercaseLetter', 'Lt', 'Format', 'IsUnassigned', 'Mc', 'InOther', 'C', 'Mark', 'InLt', 'IsUppercaseLetter', 'DashPunctuation', 'InModifier_Symbol', 'IsDecimal_Digit_Number', 'IsPf', 'NonSpacingMark', 'LetterNumber', 'IsPc', 'Other_Number', 'IsPd', 'IsPe', 'Close_Punctuation', 'InEnclosingMark', 'InFinalPunctuation', 'Ll', 'IsPo', 'IsMark', 'IsPi', 'InDash_Punctuation', 'IsOtherPunctuation', 'IsCc', 'InPd', 'ModifierLetter', 'Paragraph_Separator', 'IsNon_Spacing_Mark', 'Enclosing_Mark', 'IsLetter_Number', 'Nl', 'IsEnclosing_Mark', 'Line_Separator', 'No', 'IsNonSpacingMark', 'InModifier_Letter', 'L', 'M', 'N', 'P', 'S', 'Other_Letter', 'InOther_Letter', 'InModifierLetter', 'IsOtherNumber', 'InMathSymbol', 'InControl', 'Z', 'IsLowercaseLetter', 'InPe', 'Pc', 'InNon_Spacing_Mark', 'IsLu', 'Pd', 'InModifierSymbol', 'IsClose_Punctuation' ); PUCUUnicodeClassHashMapValueBits=32; PUCUUnicodeClassHashMapValues:array[0..296] of longword=( 4194304, 128, 4096, 16, 16, 33554432, 268435456, 262144, 8388608, 33554432, 3584, 821559296, 1048576, 33554432, 8192, 2048, 8388608, 32768, 4194304, 524288, 8192, 8, 134217728, 16777216, 134217728, 134217728, 8, 67108864, 65536, 262144, 32, 4096, 268435456, 1048576, 536870912, 33554432, 32768, 64, 16777216, 448, 62, 262144, 8388608, 1048576, 16, 1024, 512, 1024, 2, 256, 128, 8192, 268435456, 134217728, 491521, 251658240, 2097152, 8, 28672, 821559296, 16777216, 33554432, 4, 28672, 524288, 2048, 16384, 536870912, 2048, 16384, 512, 32768, 256, 512, 3584, 8192, 32, 536870912, 448, 16777216, 491521, 16384, 251658240, 67108864, 134217728, 16777216, 4194304, 134217728, 2048, 33554432, 32, 1024, 16, 2097152, 1048576, 2097152, 8388608, 67108864, 4, 32, 2097152, 3584, 8388608, 134217728, 33554432, 2, 16384, 821559296, 524288, 2048, 32, 64, 536870912, 821559296, 67108864, 32768, 32, 1048576, 16777216, 4, 131072, 128, 512, 491521, 2, 128, 268435456, 2, 262144, 4096, 64, 1048576, 32, 8, 1024, 256, 8388608, 131072, 512, 131072, 62, 16777216, 8, 134217728, 1, 268435456, 33554432, 512, 67108864, 2, 4096, 4, 16384, 4194304, 28672, 4096, 67108864, 251658240, 251658240, 256, 134217728, 16384, 4194304, 33554432, 1024, 131072, 4096, 1, 256, 16384, 1, 131072, 131072, 2097152, 1, 536870912, 16, 256, 65536, 1048576, 8192, 128, 8192, 256, 4, 8, 28672, 2, 128, 1, 16384, 268435456, 524288, 4096, 8192, 4, 268435456, 131072, 8, 262144, 4194304, 16, 8388608, 512, 512, 4096, 448, 536870912, 1024, 262144, 2048, 64, 4194304, 32768, 4096, 268435456, 131072, 821559296, 3584, 536870912, 8192, 4, 1048576, 3584, 32768, 251658240, 16777216, 64, 131072, 65536, 491521, 256, 67108864, 28672, 1048576, 2, 8, 32768, 1, 256, 491521, 491521, 448, 8, 2, 524288, 67108864, 512, 536870912, 64, 1024, 4194304, 2048, 524288, 2097152, 2097152, 128, 536870912, 4, 8388608, 448, 268435456, 524288, 8388608, 32768, 524288, 16, 16384, 64, 128, 1024, 1024, 128, 8192, 2048, 64, 16, 62, 448, 3584, 821559296, 251658240, 32, 32, 16, 2048, 16777216, 32768, 28672, 4, 2097152, 4194304, 64, 2, 524288, 67108864, 2097152 ); const PUCUUnicodeScriptHashMapSeedSize=624; PUCUUnicodeScriptHashMapValueSize=624; PUCUUnicodeScriptHashMapSize=624; PUCUUnicodeScriptHashMapSeedBits=16; PUCUUnicodeScriptHashMapSeeds:array[0..623] of smallint=( 2, 1, 4, 0, 4, -624, 2, -620, 0, 2, 1, 0, 0, -619, -617, 1, -616, 0, 3, 2, -615, -614, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -607, -603, 0, -599, -595, 1, 0, 0, 0, 1, 0, 0, -592, 0, 1, -587, 0, 0, 0, 1, 0, 0, 1, -586, -583, 0, 0, 0, 0, 0, 0, -580, 0, 2, 0, -577, 2, 0, 3, 1, -575, -574, 4, -568, 0, 5, -566, -562, 1, -559, 0, -558, -556, 1, 0, 1, -555, 1, -552, -551, 0, 0, 1, -543, 1, 0, -541, 0, -540, -539, 4, 0, -538, -537, -527, 1, 1, 3, 3, -526, 0, 0, -519, -518, -517, 5, 0, 1, -516, 6, -515, -513, 0, -511, -510, -509, 0, -504, 0, -494, 0, -492, -491, 0, 0, 0, 3, -490, -489, 0, -486, 0, -485, 0, 2, 0, 0, 2, 3, 0, -482, -480, 3, -479, 0, -477, -476, 1, 2, 1, 0, -473, 2, -472, -471, -470, 2, -467, 0, 2, 1, -465, -463, 4, -460, 0, 1, 5, 0, 2, 0, 0, -458, -457, 0, 0, -453, -451, 0, 0, 0, -449, 0, 1, 0, 0, 0, -448, 0, -447, -440, 0, -437, 1, -434, -428, 9, 1, -423, 0, 2, -420, 4, 0, 0, 0, -418, 0, -415, 1, 0, -413, 0, -404, 1, -402, 1, 0, 1, 5, 0, -401, 3, -394, 2, 2, 0, -393, 0, 0, 1, -390, -389, -385, 4, -384, 0, 0, -383, 0, 0, -381, -380, 1, 0, 3, 0, 1, 1, 1, 1, -378, -376, 0, 0, 0, -375, -373, 2, -371, 1, 0, 0, -369, -358, -357, -356, 0, 7, 2, -350, -347, 1, -346, -344, 2, 0, -343, 0, 0, 0, 0, -340, -339, -330, 0, 2, -329, 2, 0, -328, 0, -327, 1, 4, 0, -325, 2, -323, 0, -322, 2, 0, -318, -315, 0, -313, -307, 1, -305, -303, -299, -294, -289, -281, -278, -275, 0, 0, 0, -273, 2, -272, -268, 0, 0, -267, -265, -264, 1, 0, -260, -256, 1, -255, 0, -254, 0, -253, 1, -249, -247, 0, 1, 0, 2, 0, -243, 2, 0, -242, -241, 0, 2, 0, 2, -239, -238, 0, 0, -237, -225, 0, 0, -224, -222, -218, 0, -215, 4, 0, 0, -213, -207, 4, 1, -206, -205, 0, -202, -200, -199, 1, -198, 0, -194, 0, 0, -192, 2, 1, -187, 0, 0, 0, 0, 0, 8, 0, -185, -183, 4, 0, 0, -182, 0, 12, 3, -177, -173, 0, 2, 0, 0, 1, 1, -171, 0, -170, 0, -166, -164, 9, 1, 0, 1, 1, -160, 0, -158, 0, 2, 1, -157, -156, 5, 0, 0, 2, 0, -153, 4, 8, 0, 0, 0, 0, 0, 0, 1, 1, 0, -151, -150, 1, 0, 0, -148, 0, -147, -146, 0, -143, -135, -131, 0, -130, -129, 0, -127, 0, 13, -125, -123, 1, 1, -122, -121, 0, 0, -120, 7, -117, 0, 1, 3, -109, -106, 0, -105, 1, 1, -104, -100, -99, -98, 1, -97, 5, -94, 1, 0, 2, 0, 2, -89, 0, -87, 3, -86, -85, 0, 1, 0, 0, -84, 0, -81, -78, -76, 0, -71, 7, 0, 0, -69, 0, -66, 6, 0, -64, 0, -61, 0, -54, 0, -53, -52, 14, 0, 1, -50, 1, 9, 0, 2, 0, 1, 0, 13, 15, -44, -43, -38, -37, 4, -36, -35, -33, -31, 0, 0, 1, 3, 0, -30, 2, 1, -27, 0, 11, -22, 2, 5, 0, 0, 0, -20, 0, 11, 0, 0, 0, 0, 0, 6, 0, -14, 0, 2, 0, 0, 0, -11, 0, 5, 0, 0, 0, 1, 0, 0, -10, -8, 0, 1, -5, 3, -2, 0, 4, 0 ); PUCUUnicodeScriptHashMapKeys:array[0..623] of TPUCURawByteString=( 'InCommon', 'DivesAkuru', 'Saurashtra', 'InKayahLi', 'InGurmukhi', 'IsTelugu', 'InMedefaidrin', 'InNabataean', 'Hiragana', 'InHatran', 'Elymaic', 'IsVai', 'IsSinhala', 'Gunjala_Gondi', 'IsMende_Kikakui', 'Multani', 'InOld_Turkic', 'SylotiNagri', 'IsMeroitic_Cursive', 'InKhitanSmallScript', 'Osage', 'Greek', 'IsSora_Sompeng', 'InTaiLe', 'InDevanagari', 'IsNag_Mundari', 'InKannada', 'InTirhuta', 'InKharoshthi', 'Duployan', 'InKhmer', 'InAvestan', 'IsOld_Hungarian', 'IsKayah_Li', 'CaucasianAlbanian', 'IsCaucasian_Albanian', 'IsBassaVah', 'InMalayalam', 'IsTangsa', 'InMendeKikakui', 'InNyiakeng_Puachue_Hmong', 'IsAnatolian_Hieroglyphs', 'OldPersian', 'InEgyptianHieroglyphs', 'New_Tai_Lue', 'InChorasmian', 'InOriya', 'IsNyiakengPuachueHmong', 'Inscriptional_Parthian', 'Avestan', 'InOldPersian', 'Linear_B', 'IsOldTurkic', 'IsOldPermic', 'InSoraSompeng', 'IsPhags_Pa', 'IsTakri', 'Oriya', 'Dogra', 'IsTangut', 'InOld_Uyghur', 'Nyiakeng_Puachue_Hmong', 'OlChiki', 'IsCyrillic', 'InNag_Mundari', 'IsSundanese', 'Kayah_Li', 'IsPalmyrene', 'Siddham', 'ZanabazarSquare', 'MeroiticHieroglyphs', 'InMeroitic_Hieroglyphs', 'IsSylotiNagri', 'InHiragana', 'InCaucasian_Albanian', 'Mro', 'Inherited', 'Common', 'IsMahajani', 'IsWarang_Citi', 'InModi', 'IsMedefaidrin', 'Tifinagh', 'InZanabazarSquare', 'IsDogra', 'IsElymaic', 'OldNorthArabian', 'NyiakengPuachueHmong', 'IsTifinagh', 'Wancho', 'InOld_North_Arabian', 'IsOldSouthArabian', 'InKawi', 'InBassaVah', 'Batak', 'IsBrahmi', 'Telugu', 'IsNko', 'InPhagsPa', 'IsMeeteiMayek', 'InYezidi', 'InHan', 'IsGothic', 'Pahawh_Hmong', 'IsCaucasianAlbanian', 'Old_Turkic', 'InPau_Cin_Hau', 'Nko', 'IsMeroiticCursive', 'InVithkuqi', 'IsToto', 'InNewa', 'IsMasaram_Gondi', 'InMultani', 'NagMundari', 'InAhom', 'IsHan', 'InPsalter_Pahlavi', 'Limbu', 'Gujarati', 'Egyptian_Hieroglyphs', 'Brahmi', 'IsDuployan', 'InSyriac', 'Hanifi_Rohingya', 'Linear_A', 'IsBassa_Vah', 'IsCanadianAboriginal', 'IsSharada', 'InSoyombo', 'Balinese', 'IsChakma', 'IsOldUyghur', 'IsOriya', 'IsLao', 'IsOl_Chiki', 'IsWancho', 'InMeroiticCursive', 'InBalinese', 'InOldPermic', 'Takri', 'IsLinear_B', 'Mandaic', 'IsTagbanwa', 'Adlam', 'OldTurkic', 'Osmanya', 'InPalmyrene', 'InGunjala_Gondi', 'IsTai_Le', 'IsZanabazarSquare', 'IsLydian', 'Rejang', 'InDives_Akuru', 'MasaramGondi', 'InCuneiform', 'Cherokee', 'Canadian_Aboriginal', 'InInscriptionalParthian', 'IsKannada', 'Chorasmian', 'Sinhala', 'OldPermic', 'IsKhudawadi', 'InMahajani', 'InNko', 'IsJavanese', 'IsOldHungarian', 'IsArmenian', 'CanadianAboriginal', 'Braille', 'InBamum', 'NewTaiLue', 'Hangul', 'InMiao', 'InOldItalic', 'InKayah_Li', 'IsThaana', 'Glagolitic', 'IsImperial_Aramaic', 'Vithkuqi', 'InOgham', 'IsOldItalic', 'IsModi', 'Georgian', 'PahawhHmong', 'InBopomofo', 'Lisu', 'Nag_Mundari', 'IsDives_Akuru', 'InThai', 'IsAdlam', 'Deseret', 'IsNew_Tai_Lue', 'Tangsa', 'Coptic', 'InWarang_Citi', 'InRunic', 'InArmenian', 'InOldSogdian', 'IsLimbu', 'InOldTurkic', 'Khudawadi', 'Bassa_Vah', 'Cuneiform', 'InMro', 'Zanabazar_Square', 'InMasaramGondi', 'Khitan_Small_Script', 'Pau_Cin_Hau', 'InGothic', 'IsMiao', 'TaiLe', 'IsRunic', 'Nabataean', 'InDuployan', 'InZanabazar_Square', 'IsHangul', 'Psalter_Pahlavi', 'InNew_Tai_Lue', 'TaiViet', 'IsCuneiform', 'IsAhom', 'InOsmanya', 'IsSiddham', 'Manichaean', 'Old_Permic', 'Vai', 'IsZanabazar_Square', 'IsCherokee', 'IsMalayalam', 'WarangCiti', 'InLimbu', 'Grantha', 'InMeeteiMayek', 'InNyiakengPuachueHmong', 'IsPahawh_Hmong', 'IsPhagsPa', 'IsNushu', 'IsInscriptionalParthian', 'InCyrillic', 'Tagalog', 'IsYi', 'InWarangCiti', 'Cypriot', 'IsNandinagari', 'IsArabic', 'IsTagalog', 'InGreek', 'InLisu', 'Ethiopic', 'InHanifi_Rohingya', 'InKatakana', 'InMakasar', 'IsPsalter_Pahlavi', 'Thaana', 'Masaram_Gondi', 'IsOld_North_Arabian', 'Javanese', 'Sundanese', 'InLycian', 'Latin', 'KhitanSmallScript', 'InNagMundari', 'IsOldNorthArabian', 'InCoptic', 'InOldHungarian', 'InCham', 'IsNewTaiLue', 'IsPsalterPahlavi', 'IsEgyptian_Hieroglyphs', 'IsOlChiki', 'IsTaiLe', 'IsMasaramGondi', 'IsBraille', 'IsLisu', 'Inscriptional_Pahlavi', 'InLinearB', 'InKaithi', 'InSylotiNagri', 'IsMandaic', 'IsHanunoo', 'Lepcha', 'IsUgaritic', 'Ugaritic', 'InscriptionalParthian', 'Malayalam', 'InLepcha', 'InDivesAkuru', 'MendeKikakui', 'Tai_Le', 'Cyrillic', 'OldHungarian', 'InLinearA', 'InOsage', 'Cham', 'IsKhmer', 'InTamil', 'IsOsmanya', 'Yezidi', 'IsSyriac', 'Marchen', 'InAnatolian_Hieroglyphs', 'Katakana', 'InTai_Viet', 'Toto', 'InOld_Sogdian', 'InAdlam', 'InImperial_Aramaic', 'Elbasan', 'IsManichaean', 'InTai_Le', 'IsTirhuta', 'Tirhuta', 'Hebrew', 'IsAnatolianHieroglyphs', 'Old_North_Arabian', 'IsPhoenician', 'InSaurashtra', 'Warang_Citi', 'InTangut', 'IsGrantha', 'IsKhitanSmallScript', 'Kaithi', 'InToto', 'IsLatin', 'IsCyproMinoan', 'Tai_Tham', 'Devanagari', 'InEgyptian_Hieroglyphs', 'Bhaiksuki', 'Lao', 'IsOld_Sogdian', 'IsPau_Cin_Hau', 'InTagbanwa', 'Cypro_Minoan', 'IsSignWriting', 'Old_Hungarian', 'InCanadianAboriginal', 'InMasaram_Gondi', 'InCarian', 'Tagbanwa', 'InThaana', 'InSyloti_Nagri', 'InTai_Tham', 'IsAvestan', 'IsThai', 'InCyproMinoan', 'GunjalaGondi', 'Syriac', 'InSiddham', 'IsOld_Italic', 'InOl_Chiki', 'InMongolian', 'InSamaritan', 'Mahajani', 'IsSoyombo', 'Lydian', 'IsGlagolitic', 'InNewTaiLue', 'InOlChiki', 'InMandaic', 'InDeseret', 'IsBuhid', 'InEthiopic', 'InBatak', 'InKhudawadi', 'Gurmukhi', 'LinearA', 'Tangut', 'IsOld_South_Arabian', 'IsCommon', 'InMeetei_Mayek', 'Anatolian_Hieroglyphs', 'InVai', 'IsTibetan', 'IsVithkuqi', 'SoraSompeng', 'IsImperialAramaic', 'InElymaic', 'InTagalog', 'InHanunoo', 'InNandinagari', 'InTakri', 'InMende_Kikakui', 'IsOld_Uyghur', 'InPhoenician', 'InNushu', 'InLao', 'IsCoptic', 'Phags_Pa', 'InTelugu', 'Ogham', 'IsOgham', 'IsBatak', 'IsKharoshthi', 'IsPauCinHau', 'IsBamum', 'IsNagMundari', 'InChakma', 'Old_Persian', 'IsKhojki', 'InOldSouthArabian', 'Hanunoo', 'IsDivesAkuru', 'IsInscriptional_Parthian', 'IsTai_Tham', 'InBhaiksuki', 'InLatin', 'InShavian', 'IsCham', 'IsGurmukhi', 'InLinear_A', 'IsCypriot', 'InLinear_B', 'IsGeorgian', 'Old_Sogdian', 'IsLepcha', 'Sogdian', 'IsElbasan', 'IsKayahLi', 'Medefaidrin', 'IsSogdian', 'IsKaithi', 'IsLinearB', 'IsOld_Permic', 'InManichaean', 'IsKatakana', 'Old_Italic', 'InMyanmar', 'InPahawhHmong', 'IsLinear_A', 'IsEgyptianHieroglyphs', 'InWancho', 'InInscriptionalPahlavi', 'InKhitan_Small_Script', 'InOldNorthArabian', 'EgyptianHieroglyphs', 'IsNyiakeng_Puachue_Hmong', 'Myanmar', 'InPauCinHau', 'IsDeseret', 'Kharoshthi', 'IsMro', 'Armenian', 'MeroiticCursive', 'InSogdian', 'Syloti_Nagri', 'InPahawh_Hmong', 'Runic', 'InBrahmi', 'Old_South_Arabian', 'KayahLi', 'InPsalterPahlavi', 'InArabic', 'IsInscriptionalPahlavi', 'Kawi', 'IsBalinese', 'IsKawi', 'AnatolianHieroglyphs', 'InMeroiticHieroglyphs', 'InAnatolianHieroglyphs', 'IsMeroitic_Hieroglyphs', 'IsTaiTham', 'IsOld_Persian', 'InImperialAramaic', 'IsPahawhHmong', 'InOld_Permic', 'IsNabataean', 'TaiTham', 'InCypro_Minoan', 'IsBengali', 'IsSyloti_Nagri', 'IsInherited', 'Kannada', 'Sora_Sompeng', 'Lycian', 'Palmyrene', 'Shavian', 'IsMeroiticHieroglyphs', 'IsWarangCiti', 'IsRejang', 'InTaiViet', 'InOld_Italic', 'IsKhitan_Small_Script', 'IsInscriptional_Pahlavi', 'ImperialAramaic', 'InBuginese', 'IsGunjalaGondi', 'Mongolian', 'InCypriot', 'OldSogdian', 'IsMyanmar', 'IsMakasar', 'SignWriting', 'InMeroitic_Cursive', 'InInscriptional_Parthian', 'IsBhaiksuki', 'IsOldSogdian', 'Mende_Kikakui', 'Buhid', 'Buginese', 'Chakma', 'OldSouthArabian', 'InTaiTham', 'Nushu', 'IsCanadian_Aboriginal', 'InGrantha', 'Khojki', 'InYi', 'IsYezidi', 'InTangsa', 'InJavanese', 'InKhojki', 'IsEthiopic', 'IsHiragana', 'IsOsage', 'HanifiRohingya', 'OldUyghur', 'InHanifiRohingya', 'InTibetan', 'Samaritan', 'IsMarchen', 'IsHanifiRohingya', 'InGunjalaGondi', 'IsHatran', 'InCaucasianAlbanian', 'IsLinearA', 'Imperial_Aramaic', 'InSundanese', 'Tamil', 'IsShavian', 'Old_Uyghur', 'IsBopomofo', 'InMarchen', 'IsCarian', 'IsSamaritan', 'IsHanifi_Rohingya', 'Dives_Akuru', 'InSharada', 'IsTamil', 'InUgaritic', 'InSora_Sompeng', 'InInscriptional_Pahlavi', 'InOld_Hungarian', 'Arabic', 'InGeorgian', 'InscriptionalPahlavi', 'Miao', 'IsOld_Turkic', 'Yi', 'InInherited', 'Meroitic_Hieroglyphs', 'InBengali', 'IsTai_Viet', 'Tai_Viet', 'IsHebrew', 'IsSaurashtra', 'Soyombo', 'IsSoraSompeng', 'InGujarati', 'IsMultani', 'Bopomofo', 'Carian', 'Khmer', 'InBuhid', 'IsNewa', 'InBraille', 'Caucasian_Albanian', 'MeeteiMayek', 'InBassa_Vah', 'InHangul', 'Meetei_Mayek', 'PauCinHau', 'IsOldPersian', 'InElbasan', 'Sharada', 'IsDevanagari', 'Ahom', 'Phoenician', 'IsLycian', 'PhagsPa', 'InTifinagh', 'Gothic', 'BassaVah', 'InPhags_Pa', 'IsMendeKikakui', 'IsCypro_Minoan', 'InOld_Persian', 'Meroitic_Cursive', 'Han', 'InCherokee', 'IsTaiViet', 'Bamum', 'CyproMinoan', 'Ol_Chiki', 'InCanadian_Aboriginal', 'PsalterPahlavi', 'Hatran', 'InGlagolitic', 'IsMeetei_Mayek', 'IsBuginese', 'Bengali', 'Thai', 'LinearB', 'IsGunjala_Gondi', 'OldItalic', 'IsGreek', 'InOld_South_Arabian', 'InHebrew', 'InRejang', 'IsMongolian', 'IsChorasmian', 'InOldUyghur', 'Tibetan', 'IsGujarati', 'Newa', 'Modi', 'Nandinagari', 'Makasar', 'InSinhala', 'InLydian', 'InSignWriting', 'InDogra' ); PUCUUnicodeScriptHashMapValueBits=8; PUCUUnicodeScriptHashMapValues:array[0..623] of byte=( 1, 154, 71, 72, 12, 16, 145, 117, 33, 128, 149, 70, 19, 143, 113, 129, 91, 59, 97, 155, 136, 3, 101, 47, 10, 163, 17, 124, 61, 105, 31, 80, 130, 72, 103, 103, 104, 18, 159, 113, 151, 127, 60, 81, 56, 153, 14, 151, 89, 80, 60, 48, 91, 120, 101, 65, 102, 14, 142, 137, 158, 151, 69, 4, 163, 67, 72, 118, 122, 141, 98, 98, 59, 33, 103, 115, 41, 1, 111, 125, 114, 145, 58, 141, 142, 149, 116, 151, 58, 152, 116, 88, 162, 104, 93, 94, 16, 66, 65, 86, 156, 36, 39, 108, 103, 91, 119, 66, 97, 161, 160, 135, 138, 129, 163, 126, 36, 121, 46, 13, 81, 94, 105, 8, 146, 110, 104, 28, 100, 140, 62, 96, 158, 14, 21, 69, 152, 97, 62, 120, 102, 48, 95, 45, 132, 91, 51, 118, 143, 47, 141, 76, 73, 154, 138, 63, 27, 28, 89, 17, 153, 19, 120, 123, 111, 66, 85, 130, 5, 28, 53, 84, 56, 25, 99, 38, 72, 9, 57, 87, 161, 29, 38, 114, 24, 108, 35, 83, 163, 154, 20, 132, 40, 56, 159, 55, 125, 30, 5, 148, 46, 91, 123, 104, 63, 115, 141, 138, 155, 119, 39, 99, 47, 30, 117, 105, 141, 25, 121, 56, 79, 63, 126, 51, 122, 112, 120, 70, 141, 27, 18, 125, 46, 107, 86, 151, 108, 65, 139, 89, 4, 42, 37, 125, 52, 150, 7, 42, 3, 83, 26, 146, 34, 144, 121, 9, 138, 116, 85, 67, 74, 2, 155, 163, 116, 55, 130, 77, 56, 121, 81, 69, 47, 138, 53, 83, 90, 48, 92, 59, 95, 43, 68, 49, 49, 89, 18, 68, 154, 113, 47, 4, 130, 110, 136, 77, 31, 15, 51, 156, 8, 134, 127, 34, 79, 160, 148, 132, 87, 106, 112, 47, 124, 124, 6, 127, 116, 64, 71, 125, 137, 107, 155, 92, 160, 2, 157, 78, 10, 81, 133, 21, 148, 119, 45, 157, 131, 130, 28, 138, 75, 45, 9, 59, 78, 80, 20, 157, 143, 8, 122, 38, 69, 32, 82, 111, 140, 76, 57, 56, 69, 95, 40, 44, 26, 93, 123, 12, 110, 137, 88, 1, 86, 127, 70, 22, 161, 101, 87, 149, 42, 43, 150, 102, 113, 158, 64, 139, 21, 55, 65, 16, 29, 29, 93, 61, 119, 84, 163, 96, 60, 109, 88, 43, 154, 89, 78, 133, 2, 50, 77, 12, 110, 52, 48, 24, 148, 68, 147, 106, 72, 145, 147, 92, 48, 120, 112, 34, 38, 23, 108, 110, 81, 152, 90, 155, 116, 81, 151, 23, 119, 40, 61, 115, 5, 97, 147, 59, 108, 30, 94, 88, 72, 121, 7, 90, 162, 62, 162, 127, 98, 127, 98, 78, 60, 87, 108, 120, 117, 78, 157, 11, 59, 41, 17, 101, 74, 118, 50, 98, 125, 73, 79, 38, 155, 90, 87, 54, 143, 32, 52, 148, 23, 144, 131, 97, 89, 133, 148, 113, 44, 54, 96, 88, 78, 139, 28, 107, 109, 37, 156, 159, 85, 109, 26, 33, 136, 146, 158, 146, 22, 82, 134, 146, 143, 128, 103, 110, 87, 67, 15, 50, 158, 35, 134, 75, 82, 146, 154, 100, 15, 49, 101, 90, 130, 7, 24, 90, 99, 91, 37, 41, 98, 11, 79, 79, 6, 71, 140, 101, 13, 129, 35, 75, 31, 44, 135, 53, 103, 86, 104, 25, 86, 119, 60, 106, 100, 10, 126, 64, 74, 65, 58, 39, 104, 65, 113, 157, 60, 97, 36, 27, 79, 84, 157, 69, 28, 121, 128, 57, 86, 54, 11, 20, 48, 143, 38, 3, 88, 6, 73, 32, 153, 158, 22, 13, 135, 114, 150, 144, 19, 76, 131, 142 ); const PUCUUnicodeBlockHashMapSeedSize=1614; PUCUUnicodeBlockHashMapValueSize=1614; PUCUUnicodeBlockHashMapSize=1614; PUCUUnicodeBlockHashMapSeedBits=16; PUCUUnicodeBlockHashMapSeeds:array[0..1613] of smallint=( 1, 1, -1613, -1610, 1, 0, 0, -1609, -1607, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1606, 0, 0, 0, 0, -1602, -1601, -1597, -1592, 0, 0, -1589, 0, 0, 0, 0, -1583, 2, 0, 0, -1582, -1576, -1573, 1, 0, 0, 3, 0, 2, 0, -1567, 0, 1, -1563, -1559, 0, -1558, -1556, 0, -1550, 0, -1548, -1544, -1540, -1539, 1, 0, -1537, 5, -1535, 1, -1533, -1531, -1530, 7, 0, 0, 1, 1, 2, 1, 3, 3, -1529, 0, -1528, 0, 0, -1526, 1, 2, -1525, -1520, -1519, -1511, 1, 0, 2, 1, 1, -1510, -1509, -1508, 0, -1506, -1505, 2, 0, 0, 1, -1504, 0, 1, -1499, -1497, -1496, 0, 0, 0, 0, 2, 0, 0, 0, -1493, 3, 0, 0, 0, -1490, -1488, 1, -1486, -1485, 0, 0, 4, 2, 1, -1483, -1481, 1, 3, 0, 0, 2, 0, -1478, -1475, -1474, -1471, 0, -1470, 3, -1466, -1462, -1461, -1453, 2, 0, -1452, -1444, 2, 0, 3, 2, 2, 1, 1, -1443, 2, 0, 0, 2, 1, -1440, 3, -1438, 0, -1433, 3, -1432, -1431, 0, 2, 0, 0, 0, 3, 0, 0, -1430, -1428, 1, 3, 0, 0, 0, -1424, -1420, 0, 0, 1, 0, -1417, -1416, 0, 3, -1414, -1413, 0, 0, -1410, 2, -1394, -1388, 2, 1, 0, 0, 0, -1387, 0, -1382, -1380, -1378, -1375, -1374, 2, 0, -1373, 0, -1370, 2, 0, 4, 0, -1369, 0, 0, 4, 1, 0, 0, 2, 0, 0, 0, -1366, 1, -1363, -1362, 1, 0, 1, 1, -1361, -1359, 0, 0, -1358, 0, 0, 0, -1357, -1356, 0, -1354, 1, 2, 1, -1353, -1351, 1, -1350, -1343, 1, 0, 0, -1342, 0, -1341, 0, -1334, 0, -1333, 2, 0, 0, 8, 0, 0, 1, 0, -1328, 1, 0, -1325, -1324, 6, 6, 0, -1323, 1, 0, 2, 0, 1, 1, -1322, -1321, 0, 2, 0, 1, -1319, -1318, 0, 0, -1317, 0, 0, -1316, 0, 1, -1309, 0, 1, 0, 1, -1306, -1302, -1301, 0, -1300, -1297, 0, 0, -1296, 2, 0, -1292, 0, 0, -1290, -1289, -1281, -1276, 0, 0, 0, 1, 2, -1275, 1, 0, 0, 1, 1, 0, 2, 2, 0, -1274, 0, 0, -1270, -1269, 4, 8, 1, 1, 1, -1268, 2, -1267, 0, 0, 0, 2, 0, 0, 0, 0, -1266, -1265, -1263, 0, -1261, 0, -1260, 0, -1256, -1254, 2, 1, 1, 6, 1, 1, 4, -1251, 10, 0, 0, -1247, 0, 1, 2, -1244, 1, 0, -1239, 3, -1233, -1231, 3, -1230, 0, 2, 1, -1229, -1223, 5, -1214, -1213, -1212, 3, 0, 6, 0, -1210, 1, 0, 0, 10, 0, 0, -1209, -1208, 0, -1205, 0, 0, -1203, 1, 1, 1, -1201, 3, 3, 3, 0, -1196, -1194, -1189, 0, 0, 5, 0, 0, 0, -1186, 0, 0, 0, 1, 2, -1184, -1182, 0, -1177, -1175, 1, 0, 0, -1174, -1170, -1169, 0, 0, -1167, -1165, -1164, 1, 3, 0, 1, -1162, 2, 0, 0, 3, -1161, -1160, -1159, 0, 1, 2, 0, 0, 0, 0, -1153, 0, -1149, -1148, 2, 0, -1141, 3, 0, 1, -1134, 1, 1, 0, 2, -1133, -1129, 6, -1125, 0, -1122, -1121, 0, 5, 0, -1117, -1115, 0, -1111, 0, -1109, -1106, -1103, 1, 1, 0, 2, -1102, -1101, 2, 5, 0, 1, 0, 0, 0, 1, 0, 0, 0, -1099, 0, -1098, 2, 1, 1, 1, 1, -1088, -1087, -1086, 1, 0, -1085, 0, -1081, 0, 0, -1079, -1078, 2, -1077, 0, 1, 1, 6, 4, 2, 2, 4, 12, 2, -1075, 0, -1069, -1066, 0, 0, -1064, 0, 0, 0, -1061, -1060, -1052, -1049, 0, 0, -1046, 2, -1045, -1041, 0, 1, 0, -1035, 4, -1033, 0, 0, -1031, -1013, 0, -1012, -1006, 0, 2, -1003, -1001, 0, 0, 2, 0, -999, 3, 3, -997, 0, -985, -975, 0, -969, 0, -968, -966, -964, 7, 0, -962, 0, 0, 6, -958, -956, 0, -954, 1, 0, 1, -948, -946, 3, -945, -939, 1, -938, 0, -935, -933, -930, 1, 0, -926, -920, -918, 0, 4, 3, -914, 1, -912, 3, 1, 0, 3, 3, 0, -909, 3, -908, 0, -907, 0, 0, 1, -904, 6, 0, 0, 0, -902, 0, -901, 0, -900, 0, 0, 1, -897, 0, -896, -893, -890, 0, 0, -889, 2, 2, -887, 0, -885, -879, -876, 0, 0, -873, 0, 0, 0, -868, 1, 0, 4, -865, -861, -858, 0, 0, 0, -857, -852, 0, -849, 0, -848, 0, -845, 0, 1, -843, 2, 3, 4, -840, 0, -839, 0, 1, 0, 0, 0, -834, 0, -832, 0, 0, 0, 0, 0, -830, 0, 3, 9, -829, 1, 0, 0, 9, 0, 2, -827, 1, 0, 0, -824, 1, 3, 0, 4, -822, -819, 5, 2, 0, 0, -817, -815, 0, 0, 0, -810, -808, 0, 0, -804, -793, 0, -790, 0, 0, 0, 3, -786, 1, 2, 0, 0, -783, -782, 0, 0, -781, -778, -777, -774, -771, -757, 0, 1, 3, 0, 2, -756, -753, -752, 0, 0, -750, 0, 11, 1, 10, -748, 4, 14, -747, 1, 0, 3, 0, -744, 0, 0, -741, 0, 0, -735, 0, 5, 0, -734, 0, 2, 0, -733, 0, 0, 0, 0, -732, -731, -729, -728, 0, -727, 0, 1, 0, -726, 5, 9, 0, -725, 0, -724, 0, 0, -720, 6, -719, 4, -716, 0, 6, 0, 4, -714, 2, 0, -713, 0, 0, 0, 0, -711, 0, 1, 9, 0, 0, 1, 2, 0, 2, -706, -698, 0, 0, 0, -695, 0, 0, -694, 5, -692, 0, -691, 1, 0, 0, -688, 4, 10, -682, -679, -676, 2, -674, -671, 0, -669, 0, 3, -668, 1, 1, -667, -665, 1, -663, 0, -660, 0, -659, -656, 0, 0, -653, -651, 0, 1, 0, -650, -647, 0, 0, 0, -646, -644, 0, -643, -642, -641, 3, 0, 0, 2, 0, 0, 0, 0, 7, 0, -638, 0, -632, 3, -631, 0, 3, -628, 0, -626, 0, -624, -621, 1, 0, 0, -616, 2, 0, 0, -613, 0, -611, 7, -609, 2, 0, 3, -601, -598, -595, 0, 0, 1, -594, 0, -591, 0, -586, 6, -584, -583, 0, 0, 3, 0, -581, 1, 2, 5, -575, -572, 0, 0, 0, -570, 1, -563, 0, 0, 3, 0, 0, -562, 1, 0, 1, 6, 2, 17, -561, 2, 0, -560, 0, 0, -556, 1, 0, 0, -553, -551, 1, 0, 0, -549, -547, 0, -544, -543, 8, -540, -538, 3, -536, -533, 0, 0, 0, 0, 0, 0, 9, 3, -532, 10, 0, 16, 0, -529, -527, 2, -524, -518, 1, 3, 0, -517, -516, -513, 2, 4, 3, 1, -512, -510, 1, -506, 0, 3, -504, 6, 3, -500, 6, -499, 0, 0, -498, -497, 0, -496, -491, 0, -490, 7, 3, 3, 0, 0, 0, 6, 5, -489, 0, 0, 0, -488, -486, 0, 3, 1, -485, 1, -474, 0, -468, 0, 2, 6, 0, 3, -466, 3, -464, 4, -463, 0, 0, 0, 0, 15, -462, 16, -458, -457, 0, 0, 0, 5, 0, -455, 0, 0, 0, 0, -446, -444, -443, 0, 0, 1, 0, 4, -438, -437, -436, 0, 0, -435, -429, 0, 2, -428, -427, -419, -416, -413, -412, 4, -409, -407, 0, 0, 5, -405, 1, 0, 1, -404, -403, -402, 1, 1, -399, -396, 2, 1, -395, -392, -391, -387, 4, 3, 1, 0, 2, 7, -386, -384, -383, 7, -379, -378, -376, 0, -374, 0, 1, -373, -368, 0, 0, 1, 0, -365, 2, 0, 4, -361, 1, 4, 0, 3, 0, -360, 0, -358, -357, 0, 0, -354, 0, -352, 0, 0, -349, -348, 4, 1, 0, -345, 0, 6, -343, 0, 0, 0, -341, 0, -340, 0, 2, 0, -338, 0, 8, -336, 0, 6, 0, -335, 2, 2, 0, 0, 0, -334, 0, 0, 3, 0, 0, 0, 11, -330, 3, 1, -327, -322, -321, 0, 1, -319, 0, 0, -312, 0, 0, 10, -307, 0, 0, -306, -305, 2, 0, -300, -297, -295, -292, -290, -283, -278, -277, -274, 0, -273, 12, -270, -269, 1, -268, 1, -265, 0, -262, 0, 6, 0, 0, 2, -253, 10, -248, 0, 0, -247, 1, -246, 0, -240, 0, 7, 10, 0, 1, -239, 2, 15, 1, -238, -237, 9, 4, 11, 0, -234, 0, -233, -231, 0, -228, -219, -217, -216, 0, 0, 0, 0, 0, 0, -215, -212, 6, 0, -209, 6, -207, 0, 0, 0, 0, -203, 0, 0, -199, 0, 6, 0, 1, 0, -196, 0, 1, -195, 1, 0, 1, 0, -194, 0, 0, -192, -189, -185, 0, 0, -184, 0, 2, 5, 0, 0, -180, -178, -176, 0, 0, 0, 0, 0, -175, 2, -170, 1, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, -169, 0, -168, 0, 0, -167, 6, -164, 4, -163, 0, -161, 1, 0, -160, 15, 0, 0, 0, -158, -156, 0, -150, -149, 0, 0, -148, 0, -146, 0, 0, 0, 0, 0, -145, 0, -143, 0, 0, 0, -132, 0, 0, 3, -131, 0, 3, 2, 8, 1, 1, 1, -130, -128, 0, 1, 0, 0, -127, -126, 0, -124, -122, 4, 1, 2, 19, 0, 0, -114, 0, 0, -113, 8, 0, -109, -105, -103, 0, 0, -102, 0, 0, -101, -94, -90, -89, -88, -87, 7, -83, 0, 0, 0, -82, 0, -79, -76, -75, 0, -73, -71, -70, 5, 0, 0, -69, -63, -62, -58, 5, -57, 8, -52, 1, 0, 6, 1, 8, 2, 0, 1, 2, 0, 13, 26, 0, 0, 0, 0, -51, -46, 3, -33, 0, -32, -30, 0, -26, 0, 3, 1, 4, 2, -20, -15, -10, -9, 2, 3, 2, 0, 0, -8, 1, 0, -5, -4, 0, -3, 4 ); PUCUUnicodeBlockHashMapKeys:array[0..1613] of TPUCURawByteString=( 'InDevanagariExtended', 'Siddham', 'InCyrillic_Extended-D', 'IsSmall_Kana_Extension', 'IsDevanagari_Extended-A', 'InBhaiksuki', 'IsArabic_Presentation_Forms-A', 'InSoraSompeng', 'Latin_Extended-F', 'Latin_Extended-E', 'CJKUnifiedIdeographsExtensionD', 'RumiNumeralSymbols', 'Khojki', 'CJKUnifiedIdeographsExtensionG', 'Latin_Extended-D', 'InNumber_Forms', 'KangxiRadicals', 'IsMakasar', 'InCJKUnifiedIdeographsExtensionF', 'Latin_Extended-C', 'IsSora_Sompeng', 'InCJKUnifiedIdeographsExtensionE', 'Bopomofo_Extended', 'InElbasan', 'UnifiedCanadianAboriginalSyllabicsExtended', 'Deseret', 'InArabicExtended-C', 'HangulSyllables', 'InSuperscripts_and_Subscripts', 'Yezidi', 'Supplementary_Private_Use_Area-A', 'IsNag_Mundari', 'ZanabazarSquare', 'IsDives_Akuru', 'CombiningDiacriticalMarksExtended', 'InLatin_Extended-C', 'IsCherokee_Supplement', 'InArabic_Extended-A', 'Tirhuta', 'Old_Turkic', 'IsPlaying_Cards', 'Buhid', 'EthiopicExtended-B', 'IsGunjala_Gondi', 'IsYiRadicals', 'Glagolitic', 'OlChiki', 'IsCurrency_Symbols', 'InWarang_Citi', 'InImperialAramaic', 'InPhonetic_Extensions_Supplement', 'Supplemental_Arrows-A', 'IsMeroitic_Hieroglyphs', 'IsNew_Tai_Lue', 'Znamenny_Musical_Notation', 'IsSupplementaryPrivateUseArea-A', 'Supplemental_Arrows-C', 'InCJK_Compatibility_Ideographs_Supplement', 'Syriac_Supplement', 'Syriac', 'InBlock_Elements', 'IsGurmukhi', 'InAncient_Greek_Numbers', 'IsCJK_Unified_Ideographs', 'InTai_Le', 'IsIdeographicSymbolsandPunctuation', 'IsPhags-pa', 'IsSoyombo', 'MendeKikakui', 'Wancho', 'IsHighPrivateUseSurrogates', 'IsCJK_Compatibility_Ideographs', 'InPrivate_Use_Area', 'Transport_and_Map_Symbols', 'YijingHexagramSymbols', 'InYijingHexagramSymbols', 'IsSundanese', 'Toto', 'Kaithi', 'InTaiTham', 'InPsalter_Pahlavi', 'IsMusical_Symbols', 'MeeteiMayek', 'Malayalam', 'IsCham', 'MeroiticHieroglyphs', 'InCombining_Diacritical_Marks', 'IsGreekandCoptic', 'Arabic_Supplement', 'InEgyptian_Hieroglyphs', 'IsKatakana_Phonetic_Extensions', 'IsCJKUnifiedIdeographsExtensionA', 'IsKaktovikNumerals', 'IsAncientGreekMusicalNotation', 'IsCJKUnifiedIdeographsExtensionD', 'InVariation_Selectors_Supplement', 'IsCJKUnifiedIdeographsExtensionF', 'InAdlam', 'IsNagMundari', 'Brahmi', 'Khmer', 'InGeneral_Punctuation', 'Lepcha', 'InSmallFormVariants', 'InVithkuqi', 'InBamum', 'CyrillicExtended-B', 'CyrillicExtended-C', 'Caucasian_Albanian', 'IsMasaram_Gondi', 'InLatin_Extended-A', 'IsArabic_Extended-A', 'Cherokee', 'InAegean_Numbers', 'CopticEpactNumbers', 'InLatin_Extended-D', 'InLatin_Extended-G', 'Ugaritic', 'IsMeroiticCursive', 'InBatak', 'IsCJK_Symbols_and_Punctuation', 'IsShorthandFormatControls', 'InShavian', 'Ottoman_Siyaq_Numbers', 'TransportandMapSymbols', 'InRumiNumeralSymbols', 'IsMiscellaneousMathematicalSymbols-B', 'InSpecials', 'InMusical_Symbols', 'TaiTham', 'InLatinExtended-C', 'InOldPermic', 'InCombining_Diacritical_Marks_for_Symbols', 'InPrivateUseArea', 'InCombiningDiacriticalMarksSupplement', 'IsIndic_Siyaq_Numbers', 'InAncientSymbols', 'InOld_Permic', 'IsIPAExtensions', 'Phonetic_Extensions', 'InLatinExtended-G', 'Mongolian_Supplement', 'InCombining_Diacritical_Marks_Extended', 'BopomofoExtended', 'InTamil', 'IsNandinagari', 'IsPsalter_Pahlavi', 'IsZanabazar_Square', 'IsOldPersian', 'IsPhoneticExtensions', 'InCyrillic_Extended-B', 'InCyrillic_Extended-C', 'IsOldPermic', 'IsCJK_Unified_Ideographs_Extension_D', 'IsOttomanSiyaqNumbers', 'SupplementalPunctuation', 'InKanaExtended-B', 'IsEnclosed_Alphanumeric_Supplement', 'InTaiViet', 'Georgian', 'InHangulCompatibilityJamo', 'IsLinear_B_Ideograms', 'InOptical_Character_Recognition', 'Meetei_Mayek', 'InEnclosed_CJK_Letters_and_Months', 'InKaithi', 'IsBraille_Patterns', 'Saurashtra', 'IsChess_Symbols', 'IsKhmer_Symbols', 'Cypriot_Syllabary', 'Multani', 'MyanmarExtended-B', 'IsIndicSiyaqNumbers', 'IsSyriac_Supplement', 'HighPrivateUseSurrogates', 'IsCJK_Unified_Ideographs_Extension_F', 'InNushu', 'InMeetei_Mayek_Extensions', 'IsHangul_Jamo', 'IsPhonetic_Extensions', 'IsGreek_Extended', 'IsMiscellaneousMathematicalSymbols-A', 'InSiddham', 'IsSaurashtra', 'InCJKUnifiedIdeographsExtensionD', 'IsNushu', 'InCJK_Compatibility_Forms', 'InBopomofoExtended', 'Chess_Symbols', 'InGeorgianSupplement', 'Hanunoo', 'IsMiscellaneous_Symbols', 'InLinear_B_Ideograms', 'Nandinagari', 'InInscriptionalPahlavi', 'IsEthiopicSupplement', 'InGeometricShapes', 'InHangulJamo', 'CombiningMarksforSymbols', 'IsAlphabetic_Presentation_Forms', 'IsOld_Italic', 'Geometric_Shapes', 'IsCounting_Rod_Numerals', 'ImperialAramaic', 'KanaSupplement', 'IsByzantine_Musical_Symbols', 'IsKangxiRadicals', 'IsSogdian', 'Miscellaneous_Mathematical_Symbols-B', 'Miscellaneous_Mathematical_Symbols-A', 'InOrnamentalDingbats', 'InSymbols_for_Legacy_Computing', 'IsHigh_Private_Use_Surrogates', 'InToto', 'InKhmer', 'InCommonIndicNumberForms', 'IsEnclosed_Alphanumerics', 'CJKCompatibility', 'InUnified_Canadian_Aboriginal_Syllabics', 'InCJK_Compatibility_Ideographs', 'InEthiopic_Extended', 'IsCombining_Diacritical_Marks_for_Symbols', 'AlphabeticPresentationForms', 'InLatinExtended-D', 'InLatinExtended-E', 'InCaucasianAlbanian', 'IsVedicExtensions', 'LatinExtended-A', 'Mro', 'InCuneiform', 'Tifinagh', 'InPhags-pa', 'IsTamilSupplement', 'LatinExtended-G', 'LatinExtended-F', 'IsGlagolitic_Supplement', 'InSora_Sompeng', 'IsHangul_Jamo_Extended-B', 'IsNKo', 'InCurrency_Symbols', 'IsTakri', 'InTangut_Supplement', 'InLatin_Extended-E', 'IsSundaneseSupplement', 'IsUnifiedCanadianAboriginalSyllabicsExtended-A', 'InEthiopicExtended-B', 'IsWarangCiti', 'Hangul_Jamo', 'InMongolianSupplement', 'IsTibetan', 'InDogra', 'CJKCompatibilityForms', 'InEgyptianHieroglyphFormatControls', 'Aegean_Numbers', 'EthiopicExtended', 'InMongolian_Supplement', 'InMyanmar', 'IsBatak', 'Marchen', 'IsCypriot_Syllabary', 'KaktovikNumerals', 'InBraillePatterns', 'Yijing_Hexagram_Symbols', 'InSupplementaryPrivateUseArea-A', 'InBopomofo', 'IsPhoenician', 'OldUyghur', 'InMathematical_Alphanumeric_Symbols', 'InSupplemental_Arrows-C', 'IsLatinExtended-C', 'IsLatinExtended-B', 'InSupplemental_Arrows-A', 'IsMyanmarExtended-A', 'InControl_Pictures', 'Meetei_Mayek_Extensions', 'Sogdian', 'IsCoptic', 'Supplemental_Mathematical_Operators', 'InTamilSupplement', 'Combining_Marks_for_Symbols', 'InSupplementalMathematicalOperators', 'IsMyanmarExtended-B', 'IsAlphabeticPresentationForms', 'IsCyrillic_Extended-A', 'IsThaana', 'IsLepcha', 'Sharada', 'IsOrnamentalDingbats', 'Variation_Selectors_Supplement', 'IsHanifiRohingya', 'Control_Pictures', 'InArrows', 'IsHangulJamoExtended-B', 'InIPA_Extensions', 'IsMahjong_Tiles', 'IsCJK_Compatibility_Forms', 'InSpacing_Modifier_Letters', 'IsSupplementalArrows-B', 'IsOld_Turkic', 'InCJKUnifiedIdeographsExtensionA', 'InGujarati', 'InCJKUnifiedIdeographsExtensionC', 'Kana_Extended-B', 'InSupplementalPunctuation', 'Old_North_Arabian', 'InAncientGreekNumbers', 'Inscriptional_Parthian', 'Enclosed_Ideographic_Supplement', 'IsTagbanwa', 'InCherokee', 'CypriotSyllabary', 'InSupplementalSymbolsandPictographs', 'IsElbasan', 'SyriacSupplement', 'InscriptionalParthian', 'InSupplementalArrows-A', 'LinearBIdeograms', 'IsKhudawadi', 'Kangxi_Radicals', 'IsCopticEpactNumbers', 'IsHatran', 'Limbu', 'InEgyptianHieroglyphs', 'IsCombiningDiacriticalMarks', 'IsMiscellaneousSymbolsandPictographs', 'AegeanNumbers', 'InMahjongTiles', 'Bassa_Vah', 'Khudawadi', 'InVariationSelectors', 'LatinExtended-E', 'Kawi', 'InOttoman_Siyaq_Numbers', 'InCoptic_Epact_Numbers', 'Elbasan', 'Chorasmian', 'IsOldTurkic', 'Myanmar_Extended-A', 'VedicExtensions', 'SmallKanaExtension', 'Tamil', 'GeorgianSupplement', 'IsTai_Xuan_Jing_Symbols', 'InThaana', 'Mayan_Numerals', 'InArabicPresentationForms-A', 'IsCombiningDiacriticalMarksSupplement', 'IsCJK_Compatibility', 'IsTaiTham', 'InArabic_Supplement', 'InLimbu', 'Rumi_Numeral_Symbols', 'InHanifi_Rohingya', 'IsHebrew', 'IsSupplementalPunctuation', 'IPA_Extensions', 'IsYi_Syllables', 'IsSpacing_Modifier_Letters', 'Specials', 'IsVariation_Selectors_Supplement', 'Osmanya', 'CJK_Compatibility_Forms', 'InVedicExtensions', 'IsMiao', 'InHangulJamoExtended-A', 'InHangulJamoExtended-B', 'InCuneiform_Numbers_and_Punctuation', 'InIdeographicSymbolsandPunctuation', 'InGreekExtended', 'IsCaucasian_Albanian', 'MathematicalAlphanumericSymbols', 'Devanagari', 'Tagalog', 'IsCombining_Diacritical_Marks', 'IsHiragana', 'InTangut_Components', 'IsTangsa', 'InSyloti_Nagri', 'IsMiscellaneous_Mathematical_Symbols-A', 'IsVertical_Forms', 'SupplementalMathematicalOperators', 'InOgham', 'SupplementalArrows-A', 'IsGeneralPunctuation', 'BassaVah', 'InKangxiRadicals', 'IsLycian', 'InKanaExtended-A', 'IsNyiakengPuachueHmong', 'Alchemical_Symbols', 'InManichaean', 'InEthiopic_Extended-B', 'IsCyrillic_Extended-D', 'CyrillicExtended-D', 'CyrillicExtended-A', 'IsControl_Pictures', 'Low_Surrogates', 'ArabicExtended-A', 'IsHalfwidth_and_Fullwidth_Forms', 'InMathematicalOperators', 'IsPahawhHmong', 'Halfwidth_and_Fullwidth_Forms', 'IsAncientGreekNumbers', 'IsYijing_Hexagram_Symbols', 'IsSiddham', 'IsModifierToneLetters', 'Oriya', 'Arabic_Mathematical_Alphabetic_Symbols', 'IsEarly_Dynastic_Cuneiform', 'InZanabazar_Square', 'InMiscellaneousMathematicalSymbols-B', 'InMiscellaneousMathematicalSymbols-A', 'IsLatin_Extended-A', 'High_Private_Use_Surrogates', 'Inscriptional_Pahlavi', 'IsSinhala_Archaic_Numbers', 'InHigh_Surrogates', 'Hangul_Jamo_Extended-B', 'Ethiopic_Extended-B', 'Anatolian_Hieroglyphs', 'InSuperscriptsandSubscripts', 'IsLatinExtended-G', 'IsLatinExtended-F', 'IsGeneral_Punctuation', 'IsLatinExtended-D', 'Braille_Patterns', 'IsSymbols_and_Pictographs_Extended-A', 'IsAncient_Greek_Musical_Notation', 'InHangul_Syllables', 'Emoticons', 'OldTurkic', 'GeneralPunctuation', 'InModi', 'IsEgyptian_Hieroglyphs', 'Lydian', 'IsBamum_Supplement', 'InDevanagari_Extended', 'IsSmall_Form_Variants', 'Myanmar_Extended-B', 'Phoenician', 'IsGrantha', 'SmallFormVariants', 'CJK_Compatibility_Ideographs_Supplement', 'IsMyanmar_Extended-B', 'CombiningDiacriticalMarks', 'IsOld_Permic', 'IsMyanmar_Extended-A', 'InPlaying_Cards', 'InCaucasian_Albanian', 'Arabic_Presentation_Forms-B', 'Greek_Extended', 'InMeroiticHieroglyphs', 'Arabic_Extended-C', 'EarlyDynasticCuneiform', 'IsAegeanNumbers', 'IsTelugu', 'OldItalic', 'Small_Form_Variants', 'Combining_Diacritical_Marks_Supplement', 'IsEthiopicExtended-A', 'Tamil_Supplement', 'IsSinhalaArchaicNumbers', 'IsYiSyllables', 'PhaistosDisc', 'InKana_Extended-B', 'InSamaritan', 'InOld_Italic', 'InGeorgian_Extended', 'UnifiedCanadianAboriginalSyllabics', 'IsGeometricShapes', 'SinhalaArchaicNumbers', 'InUnifiedCanadianAboriginalSyllabicsExtended-A', 'InCarian', 'InMeeteiMayek', 'Ideographic_Symbols_and_Punctuation', 'Khitan_Small_Script', 'IsSuttonSignWriting', 'InVai', 'Armenian', 'GreekExtended', 'InEnclosedCJKLettersandMonths', 'IsKhitan_Small_Script', 'InSogdian', 'Hebrew', 'Cyrillic_Supplement', 'Kana_Supplement', 'IsAncient_Symbols', 'PsalterPahlavi', 'InAvestan', 'Combining_Half_Marks', 'IsCyrillic_Extended-B', 'IsCherokeeSupplement', 'InBraille_Patterns', 'Linear_A', 'Mongolian', 'IsKaktovik_Numerals', 'IsMiscellaneousTechnical', 'InTibetan', 'IsSupplemental_Arrows-B', 'IsEgyptianHieroglyphFormatControls', 'IsCombiningDiacriticalMarksforSymbols', 'Latin_Extended-G', 'InPsalterPahlavi', 'InMiscellaneousSymbolsandPictographs', 'InMahajani', 'IsEgyptianHieroglyphs', 'Latin_Extended-B', 'IsCombining_Half_Marks', 'IsLatin_Extended-C', 'IsArabicPresentationForms-A', 'IsLatin_Extended-B', 'IsLatin_Extended-E', 'IsArabicPresentationForms-B', 'IsPau_Cin_Hau', 'IsLatin_Extended-D', 'IsBraillePatterns', 'Soyombo', 'Coptic', 'PhoneticExtensionsSupplement', 'IsSpecials', 'InBassa_Vah', 'PrivateUseArea', 'InLinearBSyllabary', 'InGeometric_Shapes_Extended', 'InArabic_Extended-C', 'MeroiticCursive', 'IPAExtensions', 'Latin_Extended_Additional', 'IsCurrencySymbols', 'IsDogra', 'IsArabic_Extended-B', 'IsSamaritan', 'Miscellaneous_Technical', 'IsTangut', 'IsSupplementalMathematicalOperators', 'Tangut', 'Spacing_Modifier_Letters', 'LatinExtended-D', 'CJK_Radicals_Supplement', 'InMyanmarExtended-A', 'IsTamil_Supplement', 'InKanbun', 'IsTaiLe', 'Runic', 'IsKangxi_Radicals', 'InKhmerSymbols', 'InCoptic', 'InZanabazarSquare', 'InDominoTiles', 'IsGeometric_Shapes', 'Enclosed_Alphanumeric_Supplement', 'Lisu_Supplement', 'IsTagalog', 'InOldHungarian', 'IsEthiopic_Extended', 'IsEthiopic_Extended-A', 'Samaritan', 'InEnclosed_Alphanumerics', 'InCJKUnifiedIdeographsExtensionH', 'InCJKUnifiedIdeographsExtensionG', 'Pau_Cin_Hau', 'PhoneticExtensions', 'PahawhHmong', 'IsRumiNumeralSymbols', 'InOpticalCharacterRecognition', 'InUnifiedCanadianAboriginalSyllabics', 'IsShavian', 'Katakana_Phonetic_Extensions', 'Sinhala', 'InGothic', 'MiscellaneousSymbolsandArrows', 'IsLowSurrogates', 'InRunic', 'IsOldUyghur', 'IsKanaExtended-B', 'HighSurrogates', 'ArabicExtended-B', 'IsBhaiksuki', 'IsGlagoliticSupplement', 'IsCyrillic_Extended-C', 'Shorthand_Format_Controls', 'HangulJamo', 'Nabataean', 'InGurmukhi', 'InCJK_Radicals_Supplement', 'BoxDrawing', 'IsTransport_and_Map_Symbols', 'Ogham', 'InDeseret', 'IsSyriac', 'InCJK_Unified_Ideographs_Extension_G', 'InTamil_Supplement', 'IsKana_Supplement', 'KanaExtended-B', 'InCyrillicExtended-B', 'InCyrillicExtended-A', 'Playing_Cards', 'InAlchemicalSymbols', 'InNewa', 'InBamum_Supplement', 'YiRadicals', 'InCypro-Minoan', 'MeeteiMayekExtensions', 'InModifier_Tone_Letters', 'InBlockElements', 'IsCJKStrokes', 'Superscripts_and_Subscripts', 'InHanunoo', 'IsMeroiticHieroglyphs', 'IsEnclosedAlphanumerics', 'InOldPersian', 'InMiscellaneous_Mathematical_Symbols-B', 'YiSyllables', 'IsOld_Persian', 'EnclosedAlphanumericSupplement', 'Chakma', 'IsBamumSupplement', 'Mandaic', 'IsMyanmar', 'InTai_Xuan_Jing_Symbols', 'OldPermic', 'IsNyiakeng_Puachue_Hmong', 'InPhoneticExtensionsSupplement', 'Ancient_Greek_Numbers', 'Indic_Siyaq_Numbers', 'IsMathematical_Alphanumeric_Symbols', 'IsCarian', 'InCyrillic', 'IsVariation_Selectors', 'InMultani', 'InOldNorthArabian', 'AncientSymbols', 'InTaiXuanJingSymbols', 'IsOld_North_Arabian', 'OldNorthArabian', 'Pahawh_Hmong', 'IsAhom', 'Greek_and_Coptic', 'Meroitic_Hieroglyphs', 'EthiopicSupplement', 'InOsmanya', 'IsKawi', 'ZnamennyMusicalNotation', 'Warang_Citi', 'InCJK_Strokes', 'KayahLi', 'SupplementalArrows-C', 'Linear_B_Syllabary', 'LisuSupplement', 'Tai_Le', 'Lao', 'InHatran', 'InChess_Symbols', 'Sutton_SignWriting', 'InBamumSupplement', 'IsCyrillic_Supplement', 'InMiscellaneous_Mathematical_Symbols-A', 'InOld_North_Arabian', 'IsOttoman_Siyaq_Numbers', 'Bopomofo', 'InChessSymbols', 'IsModi', 'IsElymaic', 'InPauCinHau', 'OldHungarian', 'IsOldHungarian', 'Osage', 'Katakana', 'InHalfwidthandFullwidthForms', 'InOldTurkic', 'InKayahLi', 'InBopomofo_Extended', 'Sinhala_Archaic_Numbers', 'Sora_Sompeng', 'InArabicExtended-B', 'InKatakana', 'Cyrillic', 'InArabicExtended-A', 'InTransportandMapSymbols', 'IsHighSurrogates', 'InArabic_Presentation_Forms-B', 'CJKRadicalsSupplement', 'InSupplementaryPrivateUseArea-B', 'Optical_Character_Recognition', 'Linear_B_Ideograms', 'InMakasar', 'HangulJamoExtended-B', 'Cypro-Minoan', 'InEarlyDynasticCuneiform', 'InMeroiticCursive', 'IsBlockElements', 'Syloti_Nagri', 'Old_Italic', 'TaiXuanJingSymbols', 'Supplemental_Symbols_and_Pictographs', 'IsNumber_Forms', 'IsNewa', 'IsByzantineMusicalSymbols', 'IsVerticalForms', 'Phags-pa', 'InBengali', 'IsGothic', 'IsTransportandMapSymbols', 'InEthiopicSupplement', 'IsEnclosedCJKLettersandMonths', 'InSuttonSignWriting', 'Bamum', 'Modi', 'Takri', 'InOld_Hungarian', 'InWarangCiti', 'InSaurashtra', 'InMalayalam', 'IsUnifiedCanadianAboriginalSyllabicsExtended', 'InMayan_Numerals', 'InPhaistosDisc', 'Unified_Canadian_Aboriginal_Syllabics_Extended', 'Arabic_Presentation_Forms-A', 'DevanagariExtended-A', 'Tags', 'InOldSouthArabian', 'InEthiopicExtended', 'IsGeorgian', 'InVerticalForms', 'Makasar', 'TaiViet', 'PauCinHau', 'IsOld_Hungarian', 'IsLao', 'InSmall_Form_Variants', 'InMiscellaneousSymbolsandArrows', 'New_Tai_Lue', 'IsLinearBIdeograms', 'InTangut', 'InLetterlikeSymbols', 'InOl_Chiki', 'InAnatolianHieroglyphs', 'IsJavanese', 'IsEthiopic', 'InBuginese', 'IsAnatolianHieroglyphs', 'InTangutComponents', 'InSylotiNagri', 'IsCJK_Strokes', 'InCombiningHalfMarks', 'IsPlayingCards', 'IsCJK_Unified_Ideographs_Extension_E', 'IsIdeographic_Description_Characters', 'IsCJK_Unified_Ideographs_Extension_H', 'InHangul_Jamo', 'Kannada', 'InGunjala_Gondi', 'Bengali', 'IsRejang', 'IsTangut_Components', 'IsSymbols_for_Legacy_Computing', 'InArabicSupplement', 'InDingbats', 'IsYijingHexagramSymbols', 'InPahawhHmong', 'InCyrillic_Supplement', 'IsCJKCompatibility', 'HangulCompatibilityJamo', 'HangulJamoExtended-A', 'ArabicPresentationForms-B', 'InSupplemental_Symbols_and_Pictographs', 'InHangul_Jamo_Extended-B', 'Vertical_Forms', 'GeometricShapes', 'IsChorasmian', 'VariationSelectors', 'IsHanunoo', 'InTags', 'InKatakanaPhoneticExtensions', 'IsKanbun', 'IsBopomofo', 'IsLetterlikeSymbols', 'IsLatin_Extended-G', 'IsKhmer', 'IsArabicSupplement', 'Zanabazar_Square', 'IsImperialAramaic', 'LinearBSyllabary', 'InInscriptional_Parthian', 'IsCyrillicSupplement', 'IsPhoneticExtensionsSupplement', 'IsVithkuqi', 'InDomino_Tiles', 'Old_Sogdian', 'Telugu', 'IsYi_Radicals', 'IsCombining_Marks_for_Symbols', 'IsArabicMathematicalAlphabeticSymbols', 'IsBassa_Vah', 'SupplementaryPrivateUseArea-A', 'IsHangulJamoExtended-A', 'GeometricShapesExtended', 'InArabicMathematicalAlphabeticSymbols', 'IsLinearBSyllabary', 'MongolianSupplement', 'InImperial_Aramaic', 'IsWancho', 'IsGeometricShapesExtended', 'IsSymbolsforLegacyComputing', 'IsThai', 'IsMeetei_Mayek_Extensions', 'InSyriacSupplement', 'SuperscriptsandSubscripts', 'InOttomanSiyaqNumbers', 'SoraSompeng', 'InArabic', 'InPhoenician', 'HanifiRohingya', 'IsAvestan', 'IsLinearA', 'IsDivesAkuru', 'InKayah_Li', 'IsDomino_Tiles', 'InTagbanwa', 'IsSupplementalSymbolsandPictographs', 'IsSupplementary_Private_Use_Area-A', 'Combining_Diacritical_Marks_for_Symbols', 'IsSuperscriptsandSubscripts', 'InHangul_Jamo_Extended-A', 'IsModifier_Tone_Letters', 'IsBuginese', 'EgyptianHieroglyphs', 'Combining_Diacritical_Marks', 'Cham', 'IsSupplemental_Arrows-C', 'Latin-1Supplement', 'InAncient_Symbols', 'DominoTiles', 'Supplemental_Arrows-B', 'InGunjalaGondi', 'IsLatin_Extended_Additional', 'Yi_Radicals', 'CherokeeSupplement', 'InOld_South_Arabian', 'MyanmarExtended-A', 'InLatinExtended-F', 'InKannada', 'ShorthandFormatControls', 'Miscellaneous_Symbols', 'IsHangul_Jamo_Extended-A', 'InKanaSupplement', 'CurrencySymbols', 'IsKatakana', 'InMeeteiMayekExtensions', 'InMro', 'InEnclosed_Ideographic_Supplement', 'IsOptical_Character_Recognition', 'IsOrnamental_Dingbats', 'IsPsalterPahlavi', 'BlockElements', 'IsLinear_A', 'SymbolsandPictographsExtended-A', 'IsSmallKanaExtension', 'IsPalmyrene', 'IsGeometric_Shapes_Extended', 'SupplementalArrows-B', 'BraillePatterns', 'InLetterlike_Symbols', 'Private_Use_Area', 'IsUnified_Canadian_Aboriginal_Syllabics_Extended', 'InGeometricShapesExtended', 'Rejang', 'IsEnclosedIdeographicSupplement', 'KanaExtended-A', 'IsCJKUnifiedIdeographs', 'IsMiscellaneousSymbolsandArrows', 'InShorthand_Format_Controls', 'InCypriot_Syllabary', 'IsVariationSelectorsSupplement', 'IsMedefaidrin', 'InSundanese_Supplement', 'InCJKCompatibilityIdeographsSupplement', 'InOld_Turkic', 'Letterlike_Symbols', 'Kaktovik_Numerals', 'IsUnifiedCanadianAboriginalSyllabics', 'Grantha', 'Nyiakeng_Puachue_Hmong', 'Hatran', 'IsNewTaiLue', 'Unified_Canadian_Aboriginal_Syllabics_Extended-A', 'IsCoptic_Epact_Numbers', 'InOld_Persian', 'UnifiedCanadianAboriginalSyllabicsExtended-A', 'CJKUnifiedIdeographsExtensionB', 'InSpacingModifierLetters', 'InDevanagari_Extended-A', 'CuneiformNumbersandPunctuation', 'CJKUnifiedIdeographsExtensionF', 'IsKannada', 'InMasaramGondi', 'IsTangut_Supplement', 'InNabataean', 'IsSyloti_Nagri', 'ControlPictures', 'IsBengali', 'Vai', 'InAnatolian_Hieroglyphs', 'InZnamenny_Musical_Notation', 'InLisu_Supplement', 'InCJKCompatibility', 'Dogra', 'InCherokee_Supplement', 'IsOlChiki', 'InNumberForms', 'CJKUnifiedIdeographsExtensionE', 'Early_Dynastic_Cuneiform', 'CJKUnifiedIdeographsExtensionC', 'Ancient_Greek_Musical_Notation', 'KatakanaPhoneticExtensions', 'IsCombining_Diacritical_Marks_Extended', 'InBassaVah', 'Unified_Canadian_Aboriginal_Syllabics', 'InCJKRadicalsSupplement', 'IsPhaistosDisc', 'Avestan', 'Old_Persian', 'GunjalaGondi', 'IsIPA_Extensions', 'InMiscellaneous_Symbols_and_Arrows', 'VerticalForms', 'MiscellaneousMathematicalSymbols-B', 'Masaram_Gondi', 'Arabic_Extended-B', 'Hangul_Syllables', 'Medefaidrin', 'Arabic_Extended-A', 'InRejang', 'CJKUnifiedIdeographsExtensionH', 'AlchemicalSymbols', 'MusicalSymbols', 'IsChessSymbols', 'Cyrillic_Extended-C', 'InIdeographicDescriptionCharacters', 'InCJKSymbolsandPunctuation', 'Palmyrene', 'Egyptian_Hieroglyphs', 'InCountingRodNumerals', 'IsCJKSymbolsandPunctuation', 'Yi_Syllables', 'InElymaic', 'Tangut_Supplement', 'Currency_Symbols', 'Alphabetic_Presentation_Forms', 'IsTirhuta', 'IsSupplemental_Symbols_and_Pictographs', 'GeorgianExtended', 'IsArabicExtended-C', 'InscriptionalPahlavi', 'IsArabicExtended-A', 'InMiscellaneous_Symbols_and_Pictographs', 'InArabic_Mathematical_Alphabetic_Symbols', 'InLatin_Extended-F', 'IsHigh_Surrogates', 'IsSupplementary_Private_Use_Area-B', 'OpticalCharacterRecognition', 'Modifier_Tone_Letters', 'InModifierToneLetters', 'CJK_Compatibility_Ideographs', 'InLepcha', 'IsTangutComponents', 'IsPhaistos_Disc', 'IsOld_Sogdian', 'General_Punctuation', 'InHighSurrogates', 'InKana_Supplement', 'InOsage', 'Combining_Diacritical_Marks_Extended', 'InOldSogdian', 'IsEgyptian_Hieroglyph_Format_Controls', 'InLinearA', 'CJK_Compatibility', 'IsSoraSompeng', 'Lycian', 'Bhaiksuki', 'IsOl_Chiki', 'Sundanese_Supplement', 'Phaistos_Disc', 'InAegeanNumbers', 'IsCJK_Unified_Ideographs_Extension_A', 'InOld_Uyghur', 'IsCJK_Unified_Ideographs_Extension_G', 'InCombiningDiacriticalMarksExtended', 'IsSylotiNagri', 'IsCJKUnifiedIdeographsExtensionE', 'MiscellaneousSymbols', 'VariationSelectorsSupplement', 'InPlayingCards', 'IsSpacingModifierLetters', 'InCJK_Compatibility', 'InCombining_Marks_for_Symbols', 'IsLow_Surrogates', 'EnclosedIdeographicSupplement', 'IsLinear_B_Syllabary', 'Gothic', 'Tagbanwa', 'IsMalayalam', 'InInscriptionalParthian', 'InNewTaiLue', 'IsArabic', 'InKana_Extended-A', 'InGreek_and_Coptic', 'InYijing_Hexagram_Symbols', 'IsHangulJamo', 'IsMasaramGondi', 'InYezidi', 'IsGreek_and_Coptic', 'IsKanaSupplement', 'IsKharoshthi', 'Ethiopic_Extended-A', 'TangutComponents', 'IsAlchemicalSymbols', 'IsMathematicalOperators', 'Block_Elements', 'InMende_Kikakui', 'LinearA', 'CJKSymbolsandPunctuation', 'InGlagoliticSupplement', 'InOld_Sogdian', 'Supplementary_Private_Use_Area-B', 'IsArabic_Mathematical_Alphabetic_Symbols', 'Elymaic', 'BamumSupplement', 'AncientGreekNumbers', 'IsAnatolian_Hieroglyphs', 'IsMongolian_Supplement', 'InKaktovik_Numerals', 'Tai_Xuan_Jing_Symbols', 'IsGunjalaGondi', 'Georgian_Supplement', 'InGreek_Extended', 'IsDevanagari_Extended', 'InLinear_B_Syllabary', 'IsMeeteiMayek', 'Kanbun', 'InSmallKanaExtension', 'DivesAkuru', 'Old_Permic', 'Latin-1_Supplement', 'InCJKStrokes', 'IsArabic_Extended-C', 'MiscellaneousSymbolsandPictographs', 'IsTai_Viet', 'Dingbats', 'InCJK_Unified_Ideographs_Extension_C', 'InMeroitic_Hieroglyphs', 'InMasaram_Gondi', 'InDevanagariExtended-A', 'Miscellaneous_Symbols_and_Arrows', 'InCJK_Unified_Ideographs_Extension_F', 'InCJK_Unified_Ideographs_Extension_E', 'InCJK_Unified_Ideographs_Extension_D', 'InCombiningMarksforSymbols', 'Tibetan', 'InYiSyllables', 'IsArrows', 'IsGlagolitic', 'InEnclosed_Alphanumeric_Supplement', 'Geometric_Shapes_Extended', 'InZnamennyMusicalNotation', 'InOriya', 'InMayanNumerals', 'IsDuployan', 'InMusicalSymbols', 'IsCypro-Minoan', 'InEthiopic_Supplement', 'Nushu', 'KhitanSmallScript', 'IsCaucasianAlbanian', 'ModifierToneLetters', 'IsInscriptional_Parthian', 'InEgyptian_Hieroglyph_Format_Controls', 'InCJK_Unified_Ideographs_Extension_H', 'CombiningDiacriticalMarksforSymbols', 'ChessSymbols', 'InGeorgian', 'Newa', 'Miao', 'InTelugu', 'InCyrillicExtended-D', 'InCJK_Unified_Ideographs_Extension_A', 'InCJK_Unified_Ideographs_Extension_B', 'Myanmar', 'IsOpticalCharacterRecognition', 'IsSundanese_Supplement', 'InGeorgianExtended', 'IsEnclosedAlphanumericSupplement', 'LatinExtendedAdditional', 'InKhojki', 'InVedic_Extensions', 'IsCJKCompatibilityIdeographs', 'InCombiningDiacriticalMarks', 'IsHangul_Compatibility_Jamo', 'Arrows', 'InTakri', 'Ethiopic', 'InEmoticons', 'InYi_Syllables', 'IsMeetei_Mayek', 'Phonetic_Extensions_Supplement', 'Sundanese', 'IsCombiningDiacriticalMarksExtended', 'TamilSupplement', 'IsTaiViet', 'EnclosedCJKLettersandMonths', 'IsMarchen', 'InBox_Drawing', 'IsCJK_Unified_Ideographs_Extension_B', 'IsHangulSyllables', 'IsSupplemental_Arrows-A', 'InCJKCompatibilityIdeographs', 'InThai', 'IsCombiningMarksforSymbols', 'Musical_Symbols', 'IsPhonetic_Extensions_Supplement', 'IsBox_Drawing', 'InLisu', 'InSmall_Kana_Extension', 'Shavian', 'InSupplemental_Arrows-B', 'InOldItalic', 'MathematicalOperators', 'InKaktovikNumerals', 'IsOsage', 'InNagMundari', 'Ahom', 'InPhoneticExtensions', 'IsCJKRadicalsSupplement', 'InHebrew', 'InTangsa', 'IsKayahLi', 'InHanifiRohingya', 'KhmerSymbols', 'InHighPrivateUseSurrogates', 'Symbols_for_Legacy_Computing', 'CJK_Unified_Ideographs', 'IsVedic_Extensions', 'InJavanese', 'InEthiopicExtended-A', 'Tangut_Components', 'IsAlchemical_Symbols', 'IsSupplemental_Punctuation', 'IsGeorgian_Supplement', 'InMiscellaneousSymbols', 'Tai_Viet', 'High_Surrogates', 'IsMeroitic_Cursive', 'IsVai', 'IsLimbu', 'IsHanifi_Rohingya', 'SupplementalSymbolsandPictographs', 'IsBrahmi', 'InIdeographic_Description_Characters', 'IsBopomofo_Extended', 'ArabicMathematicalAlphabeticSymbols', 'IsTaiXuanJingSymbols', 'Lisu', 'IsKaithi', 'Balinese', 'Mahajani', 'Duployan', 'InIPAExtensions', 'InKangxi_Radicals', 'IsArabic_Supplement', 'IsDevanagariExtended', 'InLycian', 'InCherokeeSupplement', 'AnatolianHieroglyphs', 'InNandinagari', 'CombiningDiacriticalMarksSupplement', 'IndicSiyaqNumbers', 'ByzantineMusicalSymbols', 'Small_Kana_Extension', 'IsYezidi', 'IsCommonIndicNumberForms', 'Gurmukhi', 'IsGeorgianSupplement', 'IsSymbolsandPictographsExtended-A', 'InSymbolsforLegacyComputing', 'IsLydian', 'InKhmer_Symbols', 'MiscellaneousMathematicalSymbols-A', 'InMeetei_Mayek', 'Coptic_Epact_Numbers', 'InArabic_Extended-B', 'TangutSupplement', 'EgyptianHieroglyphFormatControls', 'Kharoshthi', 'InSundaneseSupplement', 'IsAegean_Numbers', 'Latin_Extended-A', 'IsMiscellaneous_Symbols_and_Arrows', 'InUnified_Canadian_Aboriginal_Syllabics_Extended', 'IsOldNorthArabian', 'IsLatinExtended-E', 'InTransport_and_Map_Symbols', 'IsLatinExtended-A', 'IsKatakanaPhoneticExtensions', 'InTai_Viet', 'Enclosed_CJK_Letters_and_Months', 'IsHangulCompatibilityJamo', 'InPalmyrene', 'InMiscellaneous_Symbols', 'InSupplemental_Mathematical_Operators', 'InArabic_Presentation_Forms-A', 'ArabicSupplement', 'IsGeorgian_Extended', 'InNyiakeng_Puachue_Hmong', 'IsCyrillic', 'InMedefaidrin', 'InShorthandFormatControls', 'CJK_Unified_Ideographs_Extension_E', 'Dives_Akuru', 'CJK_Unified_Ideographs_Extension_C', 'InDuployan', 'WarangCiti', 'IsDevanagariExtended-A', 'IsOld_South_Arabian', 'IsIdeographic_Symbols_and_Punctuation', 'Thaana', 'OttomanSiyaqNumbers', 'InAhom', 'SuttonSignWriting', 'IsDeseret', 'InSupplementalArrows-B', 'InCopticEpactNumbers', 'InSupplementalArrows-C', 'IsCJKCompatibilityIdeographsSupplement', 'EthiopicExtended-A', 'IsArabicExtended-B', 'InVertical_Forms', 'LatinExtended-C', 'IsGujarati', 'Manichaean', 'IsKana_Extended-B', 'InChakma', 'InLisuSupplement', 'InDivesAkuru', 'Devanagari_Extended', 'IsOldSogdian', 'InSinhala_Archaic_Numbers', 'IsCountingRodNumerals', 'Adlam', 'Cyrillic_Extended-B', 'InLatin_Extended-B', 'Cyrillic_Extended-D', 'IsRumi_Numeral_Symbols', 'HalfwidthandFullwidthForms', 'SylotiNagri', 'CJKCompatibilityIdeographsSupplement', 'IsBopomofoExtended', 'Vithkuqi', 'IsNumberForms', 'SpacingModifierLetters', 'Miscellaneous_Symbols_and_Pictographs', 'IsCherokee', 'InCJK_Unified_Ideographs', 'Gujarati', 'InSyriac_Supplement', 'Batak', 'LatinExtended-B', 'IsMiscellaneous_Mathematical_Symbols-B', 'Ornamental_Dingbats', 'InMiscellaneous_Technical', 'Tai_Tham', 'InTai_Tham', 'InBalinese', 'Symbols_and_Pictographs_Extended-A', 'IsLisuSupplement', 'Old_South_Arabian', 'IsBassaVah', 'InSupplementary_Private_Use_Area-A', 'InSupplementary_Private_Use_Area-B', 'IsCyrillicExtended-C', 'InIdeographic_Symbols_and_Punctuation', 'Gunjala_Gondi', 'InChorasmian', 'NewTaiLue', 'IsCyrillicExtended-D', 'IsEthiopic_Supplement', 'DevanagariExtended', 'InCommon_Indic_Number_Forms', 'InOldUyghur', 'InMongolian', 'InAncientGreekMusicalNotation', 'IsCJK_Radicals_Supplement', 'InGeometric_Shapes', 'IsPrivateUseArea', 'InHangul_Compatibility_Jamo', 'InIndicSiyaqNumbers', 'Devanagari_Extended-A', 'IsCuneiform_Numbers_and_Punctuation', 'OrnamentalDingbats', 'Mende_Kikakui', 'Number_Forms', 'AncientGreekMusicalNotation', 'InAncient_Greek_Musical_Notation', 'IsArabic_Presentation_Forms-B', 'NumberForms', 'MiscellaneousTechnical', 'CJKStrokes', 'IsTags', 'InTagalog', 'IsUgaritic', 'InMiscellaneousTechnical', 'Cuneiform_Numbers_and_Punctuation', 'Meroitic_Cursive', 'IsAdlam', 'Khmer_Symbols', 'IsAncientSymbols', 'IsOgham', 'IsBoxDrawing', 'Carian', 'InKhudawadi', 'InUnified_Canadian_Aboriginal_Syllabics_Extended-A', 'InSymbolsandPictographsExtended-A', 'IsArmenian', 'SymbolsforLegacyComputing', 'IsCyrillicExtended-A', 'IsManichaean', 'CJK_Unified_Ideographs_Extension_H', 'IsCyrillicExtended-B', 'IsInscriptionalParthian', 'IsMahjongTiles', 'CommonIndicNumberForms', 'InYi_Radicals', 'InEnclosedAlphanumerics', 'IsKayah_Li', 'IsEthiopicExtended-B', 'Thai', 'InYiRadicals', 'IsMeeteiMayekExtensions', 'GreekandCoptic', 'IsLatinExtendedAdditional', 'InCJKCompatibilityForms', 'InCounting_Rod_Numerals', 'IsCJKUnifiedIdeographsExtensionC', 'ArabicExtended-C', 'InDives_Akuru', 'IsCJK_Compatibility_Ideographs_Supplement', 'IsMandaic', 'InCombining_Diacritical_Marks_Supplement', 'IsMiscellaneous_Symbols_and_Pictographs', 'IsCJKUnifiedIdeographsExtensionB', 'InAlphabetic_Presentation_Forms', 'InPahawh_Hmong', 'IsCJKUnifiedIdeographsExtensionG', 'IsWarang_Citi', 'IsIdeographicDescriptionCharacters', 'InLinear_A', 'IsCJKUnifiedIdeographsExtensionH', 'InAlphabeticPresentationForms', 'InMyanmarExtended-B', 'InMandaic', 'IsBalinese', 'InLydian', 'InSharada', 'Cherokee_Supplement', 'InCombiningDiacriticalMarksforSymbols', 'Common_Indic_Number_Forms', 'Nag_Mundari', 'Ol_Chiki', 'InArmenian', 'Psalter_Pahlavi', 'IsOldSouthArabian', 'IsSuperscripts_and_Subscripts', 'InNew_Tai_Lue', 'IsMendeKikakui', 'IsMusicalSymbols', 'IsBuhid', 'InGeneralPunctuation', 'OldSouthArabian', 'IsLisu_Supplement', 'IsLatin-1Supplement', 'InCuneiformNumbersandPunctuation', 'InSupplemental_Punctuation', 'OldPersian', 'InLatin-1Supplement', 'EnclosedAlphanumerics', 'InOlChiki', 'IsTangutSupplement', 'IsEnclosed_CJK_Letters_and_Months', 'IsZanabazarSquare', 'IsMathematical_Operators', 'IsLisu', 'Imperial_Aramaic', 'IsMathematicalAlphanumericSymbols', 'Javanese', 'IsChakma', 'Box_Drawing', 'CJKUnifiedIdeographsExtensionA', 'IsOldItalic', 'IsMiscellaneous_Technical', 'InEthiopic', 'InUgaritic', 'InHigh_Private_Use_Surrogates', 'Kana_Extended-A', 'Kayah_Li', 'MasaramGondi', 'InSyriac', 'Mathematical_Operators', 'NagMundari', 'InGeorgian_Supplement', 'InCJKUnifiedIdeographs', 'Cuneiform', 'InEnclosedIdeographicSupplement', 'InHiragana', 'InHangulSyllables', 'IsMro', 'CyrillicSupplement', 'ArabicPresentationForms-A', 'IsDingbats', 'IsEmoticons', 'InCombining_Half_Marks', 'CJK_Symbols_and_Punctuation', 'InPhonetic_Extensions', 'InLatin_Extended_Additional', 'IdeographicSymbolsandPunctuation', 'IsCombiningHalfMarks', 'IsMahajani', 'InSinhalaArchaicNumbers', 'TaiLe', 'InVariationSelectorsSupplement', 'IsDevanagari', 'InCurrencySymbols', 'InInscriptional_Pahlavi', 'Mathematical_Alphanumeric_Symbols', 'InMathematical_Operators', 'IsCypriotSyllabary', 'InBrahmi', 'SupplementaryPrivateUseArea-B', 'IsPauCinHau', 'InBuhid', 'InTaiLe', 'Buginese', 'InArabicPresentationForms-B', 'InGreekandCoptic', 'IsBamum', 'IsKhojki', 'Hangul_Jamo_Extended-A', 'IsShorthand_Format_Controls', 'IsZnamennyMusicalNotation', 'InNKo', 'Enclosed_Alphanumerics', 'CJKUnifiedIdeographs', 'MayanNumerals', 'InSutton_SignWriting', 'IsTai_Le', 'IsMayan_Numerals', 'IsLetterlike_Symbols', 'InPau_Cin_Hau', 'InUnifiedCanadianAboriginalSyllabicsExtended', 'IsMongolianSupplement', 'InByzantineMusicalSymbols', 'InRumi_Numeral_Symbols', 'IsOriya', 'InCypriotSyllabary', 'NKo', 'InSoyombo', 'IsSupplementaryPrivateUseArea-B', 'IdeographicDescriptionCharacters', 'IsSutton_SignWriting', 'Cyrillic_Extended-A', 'InNyiakengPuachueHmong', 'InOrnamental_Dingbats', 'OldSogdian', 'InTangutSupplement', 'InCham', 'IsMiscellaneousSymbols', 'Variation_Selectors', 'InCJKUnifiedIdeographsExtensionB', 'IsImperial_Aramaic', 'InVariation_Selectors', 'InMendeKikakui', 'InSymbols_and_Pictographs_Extended-A', 'IsSupplemental_Mathematical_Operators', 'IsTifinagh', 'IsLatin_Extended-F', 'Vedic_Extensions', 'IsSmallFormVariants', 'InLatinExtendedAdditional', 'InMyanmar_Extended-B', 'CountingRodNumerals', 'InMyanmar_Extended-A', 'IsCommon_Indic_Number_Forms', 'IsDominoTiles', 'IsEnclosed_Ideographic_Supplement', 'NyiakengPuachueHmong', 'InHalfwidth_and_Fullwidth_Forms', 'IsMultani', 'InMeroitic_Cursive', 'IsUnified_Canadian_Aboriginal_Syllabics', 'CaucasianAlbanian', 'InEarly_Dynastic_Cuneiform', 'CombiningHalfMarks', 'InKhitanSmallScript', 'IsKanaExtended-A', 'IsHangul_Syllables', 'CJK_Strokes', 'MahjongTiles', 'InSundanese', 'Byzantine_Musical_Symbols', 'InEthiopic_Extended-A', 'InIndic_Siyaq_Numbers', 'CJK_Unified_Ideographs_Extension_D', 'InGlagolitic', 'LowSurrogates', 'IsEarlyDynasticCuneiform', 'InCJK_Symbols_and_Punctuation', 'InEnclosedAlphanumericSupplement', 'InBoxDrawing', 'GlagoliticSupplement', 'CJK_Unified_Ideographs_Extension_G', 'CJK_Unified_Ideographs_Extension_F', 'InControlPictures', 'InGrantha', 'Glagolitic_Supplement', 'InByzantine_Musical_Symbols', 'CJK_Unified_Ideographs_Extension_A', 'CJK_Unified_Ideographs_Extension_B', 'Ideographic_Description_Characters', 'IsSupplementalArrows-A', 'IsSupplementalArrows-C', 'IsEthiopic_Extended-B', 'IsGeorgianExtended', 'Mahjong_Tiles', 'IsAncient_Greek_Numbers', 'InMiao', 'IsMongolian', 'InTirhuta', 'Egyptian_Hieroglyph_Format_Controls', 'Old_Uyghur', 'IsCombining_Diacritical_Marks_Supplement', 'IsEthiopicExtended', 'InSinhala', 'IsCuneiform', 'InLao', 'InTifinagh', 'Hiragana', 'IsLatin-1_Supplement', 'IsZnamenny_Musical_Notation', 'IsInscriptionalPahlavi', 'IsControlPictures', 'IsToto', 'Old_Hungarian', 'InLow_Surrogates', 'IsTai_Tham', 'IsTamil', 'Georgian_Extended', 'Bamum_Supplement', 'InLowSurrogates', 'InLinearBIdeograms', 'IsVariationSelectors', 'IsKana_Extended-A', 'IsMende_Kikakui', 'InAlchemical_Symbols', 'IsOld_Uyghur', 'PlayingCards', 'Hangul_Compatibility_Jamo', 'Tangsa', 'Counting_Rod_Numerals', 'IsSharada', 'InKawi', 'InPhaistos_Disc', 'InDevanagari', 'IsOsmanya', 'IsPahawh_Hmong', 'CJKCompatibilityIdeographs', 'InKatakana_Phonetic_Extensions', 'Domino_Tiles', 'InMahjong_Tiles', 'InLatinExtended-A', 'InLatinExtended-B', 'IsKhitanSmallScript', 'InNag_Mundari', 'IsInscriptional_Pahlavi', 'SundaneseSupplement', 'Ethiopic_Extended', 'IsCuneiformNumbersandPunctuation', 'Ethiopic_Supplement', 'InMarchen', 'IsGreekExtended', 'Arabic', 'InCyrillicExtended-C', 'Supplemental_Punctuation', 'Hanifi_Rohingya', 'InMathematicalAlphanumericSymbols', 'InKharoshthi', 'InLatin-1_Supplement', 'IsUnified_Canadian_Aboriginal_Syllabics_Extended-A', 'IsKhmerSymbols', 'IsSyriacSupplement', 'InWancho', 'InCyrillicSupplement', 'IsRunic', 'InKhitan_Small_Script', 'IsCJK_Unified_Ideographs_Extension_C', 'IsNabataean', 'IsCJKCompatibilityForms', 'IsPrivate_Use_Area', 'IsBlock_Elements', 'IsHalfwidthandFullwidthForms', 'LetterlikeSymbols', 'InCyrillic_Extended-A', 'Ancient_Symbols', 'InGlagolitic_Supplement', 'IsMayanNumerals', 'IsSinhala' ); PUCUUnicodeBlockHashMapValueBits=16; PUCUUnicodeBlockHashMapValues:array[0..1613] of word=( 133, 228, 288, 272, 241, 242, 155, 217, 186, 144, 317, 207, 222, 321, 128, 77, 105, 246, 319, 97, 217, 318, 113, 182, 50, 178, 209, 147, 73, 208, 325, 292, 237, 235, 57, 97, 145, 21, 227, 204, 301, 46, 293, 245, 122, 96, 62, 74, 234, 188, 68, 90, 194, 53, 276, 325, 310, 320, 19, 13, 85, 24, 167, 120, 52, 264, 131, 238, 294, 291, 150, 153, 152, 307, 119, 119, 59, 290, 216, 56, 203, 278, 146, 30, 139, 194, 6, 7, 14, 254, 115, 118, 280, 279, 317, 324, 319, 295, 292, 215, 48, 72, 61, 160, 184, 126, 125, 63, 183, 244, 2, 21, 40, 166, 172, 128, 286, 176, 195, 60, 107, 275, 179, 297, 307, 207, 93, 163, 278, 56, 97, 175, 75, 152, 69, 296, 168, 175, 4, 67, 286, 230, 57, 113, 27, 236, 203, 237, 177, 67, 125, 63, 175, 317, 297, 103, 269, 302, 141, 36, 111, 165, 82, 146, 116, 216, 91, 132, 312, 54, 187, 223, 138, 296, 19, 150, 319, 273, 142, 37, 67, 71, 89, 228, 132, 317, 273, 159, 113, 312, 99, 45, 87, 165, 236, 202, 39, 86, 37, 75, 154, 173, 86, 283, 188, 270, 277, 105, 211, 93, 89, 306, 314, 150, 290, 48, 130, 83, 117, 41, 153, 101, 75, 154, 128, 144, 183, 66, 2, 258, 250, 100, 131, 249, 286, 186, 287, 217, 148, 16, 74, 231, 268, 144, 65, 239, 293, 234, 37, 230, 34, 233, 159, 255, 166, 101, 230, 35, 60, 243, 187, 280, 91, 119, 325, 110, 192, 212, 284, 310, 97, 3, 90, 140, 81, 142, 211, 98, 94, 249, 75, 94, 138, 154, 102, 15, 61, 220, 306, 324, 206, 81, 78, 148, 4, 299, 159, 5, 92, 204, 118, 25, 316, 269, 103, 198, 167, 201, 303, 47, 40, 187, 311, 182, 19, 201, 90, 165, 224, 105, 172, 191, 51, 254, 6, 304, 166, 299, 260, 224, 156, 144, 247, 297, 172, 182, 213, 204, 140, 66, 272, 27, 99, 282, 15, 281, 155, 69, 117, 56, 14, 51, 207, 206, 11, 103, 4, 121, 5, 163, 324, 180, 159, 66, 263, 136, 148, 251, 264, 71, 183, 284, 22, 44, 6, 108, 266, 259, 129, 89, 157, 94, 42, 90, 72, 260, 105, 170, 271, 289, 308, 199, 293, 288, 288, 102, 81, 151, 21, 162, 79, 261, 162, 167, 119, 228, 127, 26, 298, 252, 237, 93, 89, 2, 150, 202, 221, 149, 148, 293, 256, 73, 286, 186, 72, 128, 91, 313, 279, 147, 305, 204, 72, 229, 254, 193, 257, 133, 160, 138, 192, 225, 160, 320, 138, 6, 175, 140, 301, 183, 161, 71, 194, 209, 252, 166, 28, 173, 160, 69, 143, 249, 221, 121, 169, 269, 17, 173, 64, 41, 86, 221, 239, 171, 146, 264, 267, 285, 124, 10, 71, 116, 267, 211, 11, 9, 270, 168, 203, 200, 158, 125, 145, 91, 185, 49, 280, 80, 34, 92, 255, 75, 286, 203, 304, 219, 254, 3, 158, 97, 155, 3, 144, 161, 240, 128, 91, 238, 98, 68, 163, 260, 152, 164, 309, 209, 195, 4, 70, 74, 233, 20, 17, 80, 265, 94, 265, 5, 128, 104, 140, 249, 112, 52, 43, 105, 54, 98, 237, 300, 86, 302, 248, 44, 205, 101, 143, 17, 83, 322, 321, 240, 67, 261, 207, 82, 41, 179, 115, 31, 174, 95, 151, 43, 212, 269, 149, 20, 242, 287, 63, 275, 37, 190, 24, 104, 84, 307, 42, 178, 13, 321, 249, 270, 269, 125, 102, 301, 308, 226, 257, 122, 253, 142, 127, 85, 114, 73, 45, 194, 83, 177, 93, 121, 177, 302, 218, 257, 18, 35, 282, 175, 289, 68, 167, 296, 284, 171, 8, 156, 223, 198, 168, 282, 198, 198, 261, 232, 7, 194, 39, 180, 247, 276, 234, 114, 134, 310, 164, 248, 52, 33, 191, 312, 285, 257, 9, 89, 198, 297, 110, 312, 229, 214, 240, 205, 205, 181, 109, 162, 204, 134, 113, 221, 217, 20, 109, 8, 21, 307, 149, 161, 104, 326, 82, 165, 246, 148, 253, 252, 195, 85, 129, 173, 282, 311, 77, 226, 277, 157, 131, 23, 174, 307, 39, 116, 285, 126, 229, 231, 205, 234, 132, 30, 50, 281, 169, 50, 155, 241, 323, 197, 101, 36, 157, 246, 141, 240, 205, 33, 160, 95, 53, 165, 265, 76, 62, 256, 137, 38, 55, 256, 266, 129, 114, 158, 301, 318, 106, 322, 37, 29, 245, 23, 135, 266, 314, 14, 88, 119, 261, 9, 117, 111, 136, 161, 311, 148, 157, 86, 213, 156, 45, 323, 115, 112, 110, 76, 286, 48, 14, 237, 188, 164, 201, 9, 68, 184, 300, 210, 28, 122, 75, 298, 260, 325, 136, 309, 298, 164, 230, 188, 291, 309, 314, 32, 142, 19, 73, 297, 217, 12, 192, 206, 200, 185, 235, 134, 300, 47, 311, 325, 75, 73, 136, 127, 55, 254, 6, 139, 310, 1, 168, 300, 92, 245, 70, 122, 145, 197, 140, 186, 29, 275, 87, 136, 270, 74, 109, 142, 258, 303, 82, 306, 203, 85, 185, 313, 272, 189, 309, 92, 91, 76, 152, 50, 309, 135, 303, 271, 120, 95, 275, 187, 324, 262, 65, 320, 204, 76, 280, 41, 225, 289, 191, 53, 239, 172, 177, 239, 315, 5, 241, 251, 319, 29, 244, 268, 190, 129, 81, 23, 124, 256, 276, 248, 117, 233, 145, 62, 77, 318, 252, 316, 279, 115, 57, 260, 41, 104, 169, 200, 177, 245, 4, 95, 157, 93, 244, 20, 147, 262, 21, 135, 322, 308, 278, 312, 63, 106, 107, 189, 254, 283, 107, 121, 214, 268, 74, 154, 227, 311, 64, 209, 202, 21, 304, 298, 186, 149, 326, 82, 127, 127, 153, 61, 266, 169, 210, 72, 149, 270, 181, 57, 210, 255, 185, 117, 217, 170, 242, 62, 65, 169, 166, 118, 212, 321, 57, 129, 318, 87, 324, 301, 5, 117, 75, 151, 303, 164, 174, 47, 30, 201, 53, 12, 271, 7, 119, 37, 244, 208, 7, 270, 196, 143, 266, 308, 79, 85, 294, 185, 107, 287, 210, 326, 298, 214, 257, 167, 256, 230, 280, 282, 245, 99, 71, 133, 164, 146, 112, 272, 235, 175, 1, 114, 209, 304, 141, 88, 316, 194, 244, 241, 95, 319, 318, 317, 75, 34, 121, 78, 96, 302, 309, 276, 26, 281, 274, 278, 253, 39, 273, 267, 183, 127, 201, 255, 322, 75, 312, 36, 226, 263, 28, 288, 118, 315, 35, 82, 65, 64, 302, 70, 222, 66, 153, 6, 111, 78, 231, 38, 305, 121, 146, 68, 59, 57, 249, 141, 116, 243, 84, 315, 147, 90, 153, 32, 75, 278, 68, 84, 123, 272, 179, 92, 173, 79, 280, 181, 292, 232, 67, 104, 11, 259, 134, 206, 54, 150, 314, 120, 66, 137, 143, 266, 308, 103, 99, 87, 141, 149, 195, 124, 51, 206, 311, 215, 106, 113, 298, 282, 123, 216, 58, 219, 274, 4, 105, 14, 133, 170, 145, 256, 236, 69, 296, 277, 272, 208, 130, 24, 99, 313, 314, 193, 54, 89, 146, 172, 20, 268, 255, 196, 65, 166, 2, 95, 50, 198, 144, 307, 2, 115, 141, 116, 111, 189, 87, 94, 155, 14, 64, 289, 8, 262, 275, 318, 235, 316, 274, 234, 241, 197, 264, 15, 297, 232, 285, 178, 92, 172, 310, 320, 143, 20, 157, 97, 25, 199, 269, 218, 248, 235, 133, 210, 221, 283, 295, 125, 3, 288, 207, 162, 129, 320, 113, 184, 77, 5, 304, 40, 120, 25, 19, 60, 3, 93, 306, 80, 56, 56, 58, 313, 248, 197, 260, 325, 326, 63, 264, 245, 213, 53, 288, 39, 133, 130, 212, 49, 279, 104, 86, 152, 111, 296, 241, 251, 306, 294, 77, 279, 279, 161, 77, 80, 114, 323, 44, 176, 80, 251, 195, 295, 54, 168, 42, 84, 171, 224, 239, 313, 10, 314, 102, 199, 322, 125, 201, 299, 130, 122, 83, 134, 293, 32, 122, 142, 7, 70, 159, 283, 316, 209, 235, 320, 18, 69, 304, 315, 154, 261, 321, 234, 106, 185, 322, 154, 138, 18, 58, 193, 220, 145, 75, 130, 292, 62, 10, 203, 197, 73, 53, 294, 278, 46, 72, 197, 248, 1, 251, 103, 177, 1, 83, 62, 268, 116, 237, 79, 123, 188, 284, 137, 218, 84, 118, 173, 80, 38, 176, 150, 271, 134, 244, 13, 79, 292, 99, 120, 250, 303, 108, 147, 258, 9, 155, 88, 305, 158, 107, 67, 70, 264, 158, 219, 221, 52, 324, 22, 74, 202, 284, 79, 187, 215, 326, 240, 46, 52, 55, 161, 7, 126, 222, 136, 275, 276, 16, 83, 120, 281, 285, 52, 281, 76, 240, 50, 230, 277, 207, 26, 187, 16, 238, 326, 106, 285, 102, 289, 306, 210, 268, 139, 87, 156, 315, 188, 156, 294, 313, 94, 100, 186, 66, 160, 70, 138, 283, 140, 130, 300, 303, 289, 162, 223, 195, 41, 183, 252, 158, 267, 271, 147, 114, 299, 59, 277, 143, 296, 317, 96, 151, 252, 107, 302, 84, 287, 321, 319, 81, 225, 287, 277, 118, 315, 106, 90, 310, 293, 64, 299, 167, 263, 49, 227, 255, 212, 69, 101, 31, 250, 33, 100, 108, 1, 276, 202, 81, 290, 205, 151, 56, 27, 64, 257, 151, 165, 156, 271, 294, 308, 212, 301, 111, 259, 283, 220, 247, 169, 22, 180, 261, 153, 115, 300, 299, 2, 3, 267, 292, 202, 65, 101, 251, 39, 243, 71, 12, 63, 103, 206, 284, 196, 1, 239, 54, 19, 291, 9, 43, 267, 316, 190, 159, 152, 85, 162, 76, 102, 168, 287, 281, 31 ); const PUCUUnicodeAdditionalBlockHashMapSeedSize=24; PUCUUnicodeAdditionalBlockHashMapValueSize=24; PUCUUnicodeAdditionalBlockHashMapSize=24; PUCUUnicodeAdditionalBlockHashMapSeedBits=8; PUCUUnicodeAdditionalBlockHashMapSeeds:array[0..23] of shortint=( -24, 0, 2, 0, -21, 0, 0, 2, -12, 1, 0, 1, 0, -9, 1, 0, 0, 2, -5, -3, 3, 1, 4, 0 ); PUCUUnicodeAdditionalBlockHashMapKeys:array[0..23] of TPUCURawByteString=( 'xmlC', 'xmlI', 'IsxmlC', 'InxmlC', '_xmlC', 'IsxmlI', 'IsxmlD', 'xmlW', 'In_xmlW', '_xmlD', 'Is_xmlC', '_xmlI', 'In_xmlC', 'Is_xmlD', 'InxmlD', 'In_xmlI', 'IsxmlW', 'In_xmlD', '_xmlW', 'Is_xmlW', 'InxmlI', 'InxmlW', 'Is_xmlI', 'xmlD' ); PUCUUnicodeAdditionalBlockHashMapValueBits=8; PUCUUnicodeAdditionalBlockHashMapValues:array[0..23] of byte=( 0, 2, 0, 0, 0, 2, 1, 3, 3, 1, 0, 2, 0, 1, 1, 2, 3, 1, 3, 3, 2, 3, 2, 1 ); const PUCUUnicodeClassLowerCaseHashMapSeedSize=297; PUCUUnicodeClassLowerCaseHashMapValueSize=297; PUCUUnicodeClassLowerCaseHashMapSize=297; PUCUUnicodeClassLowerCaseHashMapSeedBits=16; PUCUUnicodeClassLowerCaseHashMapSeeds:array[0..296] of smallint=( 0, 0, 1, 0, 0, -297, 0, -293, -291, -287, 1, 0, 0, -286, 1, 0, 0, -283, 0, 0, -280, 0, 0, 0, -272, 1, 0, 1, -271, 1, 1, -268, 0, 1, -266, 0, 0, 1, 1, 3, -262, -259, 0, 0, 0, -257, 0, 1, 1, 3, -251, 0, -248, 1, -244, 0, -234, 0, 0, 0, -231, 2, -227, 1, 0, -224, 1, -222, 2, 0, 1, 3, -221, 1, 0, -218, 3, 4, 0, -213, 1, -212, 0, -211, -210, 0, 1, 0, 0, -204, -203, -189, 1, -186, -185, 1, 0, 3, -184, 9, 0, -181, -178, 0, -176, 1, 1, -175, -171, -169, 1, 2, 0, 0, -166, 0, -165, 0, 4, -164, 0, 2, -162, -158, -156, 0, 0, 0, 1, -147, 0, 0, 0, 0, 0, 0, 4, 0, 0, -146, 0, -145, -144, 0, 4, 1, 0, 0, -139, 0, 0, 1, -137, -132, -130, 0, -128, 0, 0, 1, -126, 7, 0, 1, 1, 0, 0, -124, 1, -123, 0, 0, -122, 5, -118, 0, -116, 1, -115, 0, 0, 4, 0, -112, -107, 0, -105, -104, -101, 2, 0, -100, -97, 0, -96, 0, -94, -87, 0, 0, -83, -78, 5, 1, 0, 2, 1, 13, 0, 1, -76, -73, 2, 0, 0, 1, -72, 2, 4, -63, 1, -61, -60, 4, 1, 7, 0, -58, 1, 6, 8, 2, -57, -56, -54, -48, 5, 0, -44, -40, -36, 6, 2, -35, 0, 0, -30, 1, -29, 13, -24, 0, 4, 0, 2, 0, 2, 0, 11, 5, 0, 0, -23, -22, 4, 0, 8, 3, 0, 0, -19, 0, -16, 0, -13, 0, 0, 0, 0, -11, 0, 0, 0, 2, -9, 19, -6, 0, 0, -2, 7, 0, 0, 7, 2, -1, 10 ); PUCUUnicodeClassLowerCaseHashMapKeys:array[0..296] of TPUCURawByteString=( 'islowercase_letter', 'inlowercase_letter', 'innumber', 'inp', 'inclosepunctuation', 'istitlecase_letter', 'inpo', 'so', 'inother_number', 'intitlecaseletter', 'ismodifier_symbol', 'currency_symbol', 'currencysymbol', 'uppercaseletter', 'isnon_spacing_mark', 'othernumber', 'iscurrency_symbol', 'unassigned', 'isnl', 'inmark', 'openpunctuation', 'inseperator', 'isnd', 'isopenpunctuation', 'insymbol', 'inmodifier_symbol', 'line_separator', 'isz', 'isco', 'pc', 'enclosing_mark', 'ininitial_punctuation', 'isnonspacingmark', 'isletter_number', 'pf', 'pe', 'ismathsymbol', 'isother', 'ismark', 'iscf', 'isdash_punctuation', 'inzs', 'isnumber', 'format', 'isother_number', 'initialpunctuation', 'inother_punctuation', 'inenclosingmark', 'isenclosingmark', 'ispc', 'inparagraph_separator', 'titlecase_letter', 'incurrency_symbol', 'po', 'inlm', 'innd', 'symbol', 'inletter_number', 'inpunctuation', 'decimaldigitnumber', 'co', 'inother', 'inzp', 'dashpunctuation', 'indecimal_digit_number', 'inc', 'space_separator', 'inletternumber', 'issm', 'intitlecase_letter', 'issc', 'isenclosing_mark', 'inso', 'inconnectorpunctuation', 'inl', 'ispd', 'isno', 'cs', 'punctuation', 'othersymbol', 'ps', 'nonspacingmark', 'isline_separator', 'inps', 'isinitial_punctuation', 'isother_symbol', 'ispi', 'informat', 'inz', 'issymbol', 'ispunctuation', 'zl', 'ispf', 'isparagraphseparator', 'zs', 'iszp', 'inprivateuse', 'inspace_separator', 'other', 'iszs', 'inothersymbol', 'inpe', 'inpf', 'isothersymbol', 'surrogate', 'uppercase_letter', 'modifier_letter', 'ismath_symbol', 'spacingcombiningmark', 'modifier_symbol', 'isunassigned', 'isother_letter', 'incs', 'isspacingcombiningmark', 'isopen_punctuation', 'dash_punctuation', 'ismodifiersymbol', 'seperator', 'modifiersymbol', 'issurrogate', 'inmodifierletter', 'infinal_punctuation', 'decimal_digit_number', 'inprivate_use', 'inco', 'inll', 'inspacing_combining_mark', 'inother_symbol', 'inopenpunctuation', 'isuppercaseletter', 'insurrogate', 'inlu', 'isspacing_combining_mark', 'incf', 'infinalpunctuation', 'indashpunctuation', 'inlt', 'initial_punctuation', 'isconnector_punctuation', 'inspacingcombiningmark', 'pd', 'ismodifier_letter', 'inparagraphseparator', 'inmn', 'finalpunctuation', 'private_use', 'iscurrencysymbol', 'inotherpunctuation', 'indash_punctuation', 'iscn', 'modifierletter', 'other_punctuation', 'ismc', 'incc', 'inlowercaseletter', 'inclose_punctuation', 'isme', 'isso', 'titlecaseletter', 'paragraph_separator', 'isparagraph_separator', 'isspace_separator', 'otherpunctuation', 'issk', 'otherletter', 'close_punctuation', 's', 'inmathsymbol', 'mathsymbol', 'other_letter', 'inn', 'inothernumber', 'inlo', 'iszl', 'inm', 'inpd', 'islt', 'zp', 'istitlecaseletter', 'isdecimaldigitnumber', 'inpi', 'letter_number', 'c', 'math_symbol', 'incurrencysymbol', 'privateuse', 'nd', 'insk', 'lt', 'insm', 'inspaceseparator', 'isother_punctuation', 'iscc', 'isinitialpunctuation', 'nl', 'ininitialpunctuation', 'm', 'ismn', 'iscs', 'islm', 'isc', 'isps', 'lu', 'mn', 'final_punctuation', 'isn', 'iscontrol', 'isl', 'inlineseparator', 'me', 'lowercaseletter', 'incn', 'inopen_punctuation', 'spaceseparator', 'isseperator', 'spacing_combining_mark', 'iss', 'isfinal_punctuation', 'lo', 'isp', 'islo', 'll', 'isprivate_use', 'non_spacing_mark', 'ispe', 'ins', 'islu', 'lowercase_letter', 'isothernumber', 'inuppercase_letter', 'isconnectorpunctuation', 'isspaceseparator', 'open_punctuation', 'isotherletter', 'ispo', 'cn', 'inmodifier_letter', 'letternumber', 'lineseparator', 'inmath_symbol', 'isprivateuse', 'isotherpunctuation', 'isll', 'l', 'innl', 'closepunctuation', 'other_symbol', 'n', 'inotherletter', 'inme', 'p', 'inmc', 'inzl', 'isletternumber', 'incontrol', 'isformat', 'sc', 'inpc', 'indecimaldigitnumber', 'pi', 'sk', 'z', 'sm', 'enclosingmark', 'connectorpunctuation', 'innonspacingmark', 'isdecimal_digit_number', 'innon_spacing_mark', 'other_number', 'cf', 'ism', 'inuppercaseletter', 'cc', 'inother_letter', 'inno', 'number', 'insc', 'inunassigned', 'mc', 'islineseparator', 'isclose_punctuation', 'control', 'connector_punctuation', 'paragraphseparator', 'inmodifiersymbol', 'inenclosing_mark', 'mark', 'islowercaseletter', 'isfinalpunctuation', 'inline_separator', 'isuppercase_letter', 'lm', 'no', 'isclosepunctuation', 'inconnector_punctuation', 'isdashpunctuation', 'ismodifierletter' ); PUCUUnicodeClassLowerCaseHashMapValueBits=32; PUCUUnicodeClassLowerCaseHashMapValues:array[0..296] of longword=( 4, 4, 3584, 821559296, 2097152, 8, 8388608, 134217728, 2048, 8, 67108864, 33554432, 33554432, 2, 64, 2048, 33554432, 1, 1024, 448, 1048576, 28672, 512, 1048576, 251658240, 67108864, 8192, 28672, 131072, 4194304, 128, 268435456, 64, 1024, 536870912, 2097152, 16777216, 491521, 448, 65536, 524288, 4096, 3584, 32768, 2048, 268435456, 8388608, 128, 128, 4194304, 16384, 8, 33554432, 8388608, 16, 512, 251658240, 1024, 821559296, 512, 131072, 491521, 16384, 524288, 512, 491521, 4096, 1024, 16777216, 8, 33554432, 128, 134217728, 4194304, 62, 524288, 2048, 262144, 821559296, 134217728, 1048576, 64, 8192, 1048576, 268435456, 134217728, 268435456, 32768, 28672, 251658240, 821559296, 8192, 536870912, 16384, 4096, 16384, 131072, 4096, 491521, 4096, 134217728, 2097152, 536870912, 134217728, 262144, 2, 16, 16777216, 256, 67108864, 1, 32, 262144, 256, 1048576, 524288, 67108864, 28672, 67108864, 262144, 16, 536870912, 512, 131072, 131072, 4, 256, 134217728, 1048576, 2, 262144, 2, 256, 65536, 536870912, 524288, 8, 268435456, 4194304, 256, 524288, 16, 16384, 64, 536870912, 131072, 33554432, 8388608, 524288, 1, 16, 8388608, 256, 32768, 4, 2097152, 128, 134217728, 8, 16384, 16384, 4096, 8388608, 67108864, 32, 2097152, 251658240, 16777216, 16777216, 32, 3584, 2048, 32, 8192, 448, 524288, 8, 16384, 8, 512, 268435456, 1024, 491521, 16777216, 33554432, 131072, 512, 67108864, 8, 16777216, 4096, 8388608, 32768, 268435456, 1024, 268435456, 448, 64, 262144, 16, 491521, 1048576, 2, 64, 536870912, 3584, 32768, 62, 8192, 128, 4, 1, 1048576, 4096, 28672, 256, 251658240, 536870912, 32, 821559296, 32, 4, 131072, 64, 2097152, 251658240, 2, 4, 2048, 2, 4194304, 4096, 1048576, 32, 8388608, 1, 16, 1024, 8192, 16777216, 131072, 8388608, 4, 62, 1024, 2097152, 134217728, 3584, 32, 128, 821559296, 256, 8192, 1024, 32768, 32768, 33554432, 4194304, 512, 268435456, 67108864, 28672, 16777216, 128, 4194304, 64, 512, 64, 2048, 65536, 448, 2, 32768, 32, 2048, 3584, 33554432, 1, 256, 8192, 2097152, 32768, 4194304, 16384, 67108864, 128, 448, 4, 536870912, 8192, 2, 16, 2048, 2097152, 4194304, 524288, 16 ); const PUCUUnicodeScriptLowerCaseHashMapSeedSize=624; PUCUUnicodeScriptLowerCaseHashMapValueSize=624; PUCUUnicodeScriptLowerCaseHashMapSize=624; PUCUUnicodeScriptLowerCaseHashMapSeedBits=16; PUCUUnicodeScriptLowerCaseHashMapSeeds:array[0..623] of smallint=( 1, 1, 3, 0, 0, -624, 5, 0, -620, 0, 10, -618, 4, -612, -610, 1, -603, 5, 0, 0, 1, -600, 1, 0, 1, 0, 0, 0, 0, -598, -597, 1, -595, 1, -592, 1, 0, 2, 0, 0, 0, -584, -583, 4, -582, 0, -581, 3, -579, 0, -578, 2, -575, 0, 9, -573, 0, 0, 0, -568, 1, 1, 3, 0, 0, 1, 0, -564, 2, 0, -559, -555, 0, -554, -553, -552, 1, -548, -547, 1, -542, 1, 3, 0, 3, -541, 0, 2, -540, 1, -535, 1, -534, 0, 0, 0, 3, 2, 1, 0, 4, 1, -531, -528, 0, 0, 0, 0, 1, 0, -527, 1, -524, 0, -523, -519, 0, -514, -512, -511, 0, 2, 1, 1, 0, -507, 0, 0, -504, 0, 0, 0, -502, 3, -500, 0, 0, 2, 0, -499, 0, 0, 3, -497, -496, 0, -495, 0, 4, 0, -492, 0, -490, 3, 0, 2, -486, -485, 2, 0, 0, 1, -481, 3, 3, 1, 0, -480, 0, 1, 1, -478, -476, -475, -473, 2, -469, 1, 0, -464, 0, 6, 8, 2, -461, 0, 6, -460, 0, -458, 0, -457, -456, 0, 0, 2, 0, -453, 1, -452, -451, 0, 0, 1, 0, -449, 0, 3, -447, 0, 0, 0, 2, -446, 0, 0, -441, 0, 2, 0, 0, -440, 1, 0, -436, -435, 3, 1, 0, 0, 5, 0, -433, 12, -432, -430, -428, 3, 0, -427, -422, 0, 2, 0, 0, -421, 4, 1, 0, 1, -414, 0, 0, 1, -412, 5, 0, 0, -411, -409, 0, 1, -402, 0, -401, -399, 2, -396, -392, 1, 4, 0, 1, 0, 0, -390, -388, -387, -383, 0, -380, -379, 0, 0, -376, 0, 0, 0, 0, -375, -373, -372, -369, 1, -365, 1, 0, 0, -361, 0, -356, 1, 0, -355, 6, 0, 1, -354, -343, 0, 1, 0, 0, 1, -337, 0, 7, 1, -331, 0, -330, -329, 3, 1, 0, 1, 7, -327, -326, -325, 0, 0, -312, 6, 5, -310, 3, 4, -302, -300, -298, 2, -296, 0, -294, -290, -288, 0, -287, 0, 2, 0, 0, -283, 2, 2, 0, -280, -278, -276, -275, -273, -271, 0, 0, 0, -260, 4, -259, -258, 4, 0, -257, 0, -256, 0, 0, 0, 0, 0, 0, 0, 0, 0, -255, 6, -254, -253, 0, 3, -252, -251, 1, -250, 0, -249, 0, 6, 18, -245, 0, 0, 11, -243, 2, 0, -242, 3, 0, -240, 0, -236, 6, 0, 1, -232, -228, 13, 0, -226, 0, -219, -215, 1, 0, 0, 1, -213, 1, 4, -211, -207, 0, -206, 1, -200, 0, -196, 0, -188, 0, 10, -182, 0, 0, -181, 3, 6, 0, 0, 0, 0, -177, 0, 1, -175, 0, -174, -173, 0, -169, 0, 0, 2, 0, 0, -168, 3, 1, 0, 0, -166, -164, -158, 1, 0, 0, 2, 0, 2, 0, 0, 2, -155, 0, -152, -143, 0, 0, 0, -141, 0, 0, -139, 0, -137, 0, 0, 0, 0, 0, 4, 1, -135, -133, 5, 4, 1, 0, -130, -128, 0, 1, 0, 4, 1, -125, -117, 0, 0, 1, -115, -113, 0, 0, 0, -111, -108, -103, 0, 0, -101, -99, 0, -98, -95, -93, 7, -87, 4, -85, -83, 11, -78, 0, 0, 7, 1, -77, 1, -74, 1, -68, 0, -64, 0, 0, 0, 0, 0, 0, -60, -58, -54, 0, 0, -52, 1, 2, 2, -48, -45, -41, -40, 14, 0, 4, 1, 3, 0, -39, -37, 1, -35, 1, 0, 0, -29, -23, 4, 0, 0, 0, -21, -16, 0, 4, -12, 2, 2, 1, 2, 11, 10, 0, -11, -10, 0, 0, -9, 0, 0, 0, 12, 0, -5, 0, 0, 0, -2, 4, 0, -1, 12 ); PUCUUnicodeScriptLowerCaseHashMapKeys:array[0..623] of TPUCURawByteString=( 'inkatakana', 'inkharoshthi', 'inkayahli', 'issamaritan', 'inkhitan_small_script', 'duployan', 'nko', 'inahom', 'inhan', 'inol_chiki', 'isnyiakeng_puachue_hmong', 'ingunjalagondi', 'issaurashtra', 'isgujarati', 'inugaritic', 'cyrillic', 'issoyombo', 'isimperialaramaic', 'inbengali', 'incanadianaboriginal', 'buginese', 'zanabazarsquare', 'lisu', 'kayahli', 'isvithkuqi', 'isarmenian', 'tamil', 'inoldturkic', 'inolditalic', 'istagbanwa', 'isgeorgian', 'isnyiakengpuachuehmong', 'inold_italic', 'newa', 'old_italic', 'inrejang', 'isbuginese', 'bengali', 'isbhaiksuki', 'ininscriptional_pahlavi', 'induployan', 'cypriot', 'kharoshthi', 'inhangul', 'inrunic', 'hebrew', 'ininscriptionalparthian', 'inoriya', 'inoldnortharabian', 'iskayah_li', 'yezidi', 'inhanifirohingya', 'isinscriptional_pahlavi', 'warang_citi', 'indives_akuru', 'kannada', 'isahom', 'inpsalterpahlavi', 'isolduyghur', 'istangsa', 'olditalic', 'taiviet', 'innandinagari', 'inscriptional_pahlavi', 'iscuneiform', 'inscriptionalparthian', 'inchorasmian', 'inoldsogdian', 'bhaiksuki', 'canadianaboriginal', 'soyombo', 'pau_cin_hau', 'isgunjalagondi', 'inmeroitichieroglyphs', 'isbassavah', 'mandaic', 'isoldturkic', 'iswancho', 'sharada', 'inbassavah', 'isgurmukhi', 'ismedefaidrin', 'tangsa', 'vai', 'inmakasar', 'inpahawh_hmong', 'olchiki', 'inzanabazar_square', 'intibetan', 'inbrahmi', 'iscommon', 'ogham', 'oldturkic', 'hanunoo', 'innabataean', 'wancho', 'isanatolian_hieroglyphs', 'inmeeteimayek', 'rejang', 'innyiakeng_puachue_hmong', 'isgreek', 'ismasaram_gondi', 'ingreek', 'inkhmer', 'issylotinagri', 'inshavian', 'isnko', 'inwarangciti', 'insyriac', 'oldpersian', 'insyloti_nagri', 'inchakma', 'islepcha', 'ishangul', 'inbatak', 'inhebrew', 'tai_le', 'isnandinagari', 'ismakasar', 'inlatin', 'lycian', 'meroitichieroglyphs', 'ischam', 'istamil', 'isthaana', 'canadian_aboriginal', 'meroitic_hieroglyphs', 'dogra', 'inoldpersian', 'inanatolianhieroglyphs', 'indevanagari', 'incommon', 'inmongolian', 'masaramgondi', 'ishanifirohingya', 'tai_viet', 'ismendekikakui', 'isbamum', 'khudawadi', 'iskhmer', 'inavestan', 'inold_turkic', 'inhatran', 'iscaucasian_albanian', 'nandinagari', 'isnagmundari', 'sora_sompeng', 'syloti_nagri', 'inelbasan', 'ispalmyrene', 'old_uyghur', 'inmalayalam', 'isoriya', 'vithkuqi', 'old_south_arabian', 'brahmi', 'inoldsoutharabian', 'iscypriot', 'inogham', 'imperial_aramaic', 'ismeroitichieroglyphs', 'intoto', 'ispahawh_hmong', 'islydian', 'inmedefaidrin', 'thai', 'iskatakana', 'han', 'inlinear_b', 'pahawhhmong', 'isegyptian_hieroglyphs', 'nyiakeng_puachue_hmong', 'incaucasianalbanian', 'latin', 'oldnortharabian', 'inpaucinhau', 'inkayah_li', 'inmyanmar', 'mahajani', 'mende_kikakui', 'intagalog', 'inphagspa', 'incanadian_aboriginal', 'isold_hungarian', 'inolchiki', 'grantha', 'zanabazar_square', 'ismro', 'yi', 'ischakma', 'inkhudawadi', 'isavestan', 'tangut', 'cyprominoan', 'islinear_b', 'dives_akuru', 'cham', 'isbassa_vah', 'oldpermic', 'inegyptianhieroglyphs', 'caucasian_albanian', 'iszanabazar_square', 'khitan_small_script', 'inhanifi_rohingya', 'egyptianhieroglyphs', 'isarabic', 'isgothic', 'istaitham', 'insignwriting', 'old_hungarian', 'insinhala', 'khojki', 'isogham', 'inphoenician', 'inkhojki', 'inbassa_vah', 'isolditalic', 'iskhitan_small_script', 'iselbasan', 'isold_south_arabian', 'inmendekikakui', 'ispau_cin_hau', 'innagmundari', 'isold_italic', 'inpsalter_pahlavi', 'isgunjala_gondi', 'elbasan', 'runic', 'isethiopic', 'siddham', 'old_north_arabian', 'isold_turkic', 'nyiakengpuachuehmong', 'samaritan', 'isinherited', 'miao', 'innyiakengpuachuehmong', 'istai_le', 'isglagolitic', 'ismeeteimayek', 'ismeroitic_cursive', 'psalter_pahlavi', 'ugaritic', 'batak', 'issharada', 'ingurmukhi', 'inimperial_aramaic', 'old_sogdian', 'injavanese', 'insogdian', 'inmeroitic_hieroglyphs', 'inmasaram_gondi', 'mro', 'islinear_a', 'inmeroitic_cursive', 'meroiticcursive', 'intaitham', 'inmodi', 'inyezidi', 'incuneiform', 'isbopomofo', 'kayah_li', 'iskharoshthi', 'isduployan', 'ismalayalam', 'tifinagh', 'anatolianhieroglyphs', 'chakma', 'ol_chiki', 'isnewtailue', 'isdogra', 'multani', 'kawi', 'isphagspa', 'pahawh_hmong', 'osmanya', 'issogdian', 'ininscriptionalpahlavi', 'isnewa', 'phagspa', 'issora_sompeng', 'hatran', 'inoldpermic', 'ininscriptional_parthian', 'isoldsoutharabian', 'innew_tai_lue', 'divesakuru', 'insiddham', 'nushu', 'paucinhau', 'incherokee', 'makasar', 'ischorasmian', 'isrejang', 'issyriac', 'istagalog', 'inlinear_a', 'isanatolianhieroglyphs', 'issiddham', 'gurmukhi', 'inarabic', 'imperialaramaic', 'isold_sogdian', 'georgian', 'mongolian', 'isold_uyghur', 'istelugu', 'taitham', 'oldhungarian', 'inold_sogdian', 'syriac', 'hiragana', 'medefaidrin', 'inlisu', 'psalterpahlavi', 'inmanichaean', 'issinhala', 'issyloti_nagri', 'incoptic', 'inmahajani', 'inherited', 'iscanadian_aboriginal', 'javanese', 'inkaithi', 'old_persian', 'intifinagh', 'ismongolian', 'inmandaic', 'oldsoutharabian', 'meetei_mayek', 'inhanunoo', 'insora_sompeng', 'ishanifi_rohingya', 'intaiviet', 'isyezidi', 'khitansmallscript', 'ismanichaean', 'isimperial_aramaic', 'ismyanmar', 'intai_tham', 'islao', 'iswarang_citi', 'isosage', 'inlimbu', 'gothic', 'oldsogdian', 'inpau_cin_hau', 'isjavanese', 'inmeetei_mayek', 'invithkuqi', 'ishanunoo', 'iselymaic', 'inmultani', 'intaile', 'isshavian', 'gujarati', 'inbopomofo', 'isbuhid', 'inimperialaramaic', 'lepcha', 'istai_tham', 'iskhudawadi', 'inmro', 'isrunic', 'inscriptional_parthian', 'istoto', 'tai_tham', 'old_turkic', 'insharada', 'bamum', 'warangciti', 'cypro_minoan', 'inoldhungarian', 'ischerokee', 'anatolian_hieroglyphs', 'nabataean', 'braille', 'isbengali', 'egyptian_hieroglyphs', 'inegyptian_hieroglyphs', 'isdives_akuru', 'inbamum', 'islimbu', 'innewa', 'inlao', 'isold_persian', 'isold_north_arabian', 'inkannada', 'isnabataean', 'isosmanya', 'intangut', 'isegyptianhieroglyphs', 'indogra', 'insaurashtra', 'ingunjala_gondi', 'inbraille', 'inmarchen', 'isdeseret', 'caucasianalbanian', 'inscriptionalpahlavi', 'thaana', 'linear_a', 'incarian', 'inpalmyrene', 'isbalinese', 'ispahawhhmong', 'ismasaramgondi', 'iscarian', 'iskaithi', 'inold_permic', 'isoldpermic', 'inbuhid', 'intai_le', 'myanmar', 'lydian', 'incypro_minoan', 'ismende_kikakui', 'ininherited', 'inyi', 'isyi', 'inbalinese', 'isdivesakuru', 'ahom', 'isoldhungarian', 'avestan', 'isnew_tai_lue', 'kaithi', 'balinese', 'inbuginese', 'inglagolitic', 'isold_permic', 'inmiao', 'intangsa', 'islatin', 'new_tai_lue', 'gunjalagondi', 'isgrantha', 'intirhuta', 'limbu', 'sinhala', 'iskayahli', 'incaucasian_albanian', 'iskhitansmallscript', 'intakri', 'isinscriptionalparthian', 'iscaucasianalbanian', 'innko', 'isvai', 'cherokee', 'ingrantha', 'insorasompeng', 'gunjala_gondi', 'inmende_kikakui', 'iskhojki', 'iskannada', 'ishebrew', 'inadlam', 'iskawi', 'islycian', 'ismarchen', 'osage', 'intai_viet', 'incyprominoan', 'lineara', 'inold_south_arabian', 'arabic', 'ismultani', 'isdevanagari', 'linearb', 'iswarangciti', 'old_permic', 'adlam', 'insoyombo', 'isnag_mundari', 'istaiviet', 'isbrahmi', 'inold_uyghur', 'issorasompeng', 'issignwriting', 'coptic', 'common', 'inolduyghur', 'khmer', 'inzanabazarsquare', 'elymaic', 'istakri', 'newtailue', 'isol_chiki', 'tagalog', 'istai_viet', 'inkawi', 'glagolitic', 'iscyprominoan', 'hangul', 'isinscriptional_parthian', 'inlycian', 'phoenician', 'phags_pa', 'isthai', 'ingeorgian', 'ismeroiticcursive', 'insundanese', 'inold_north_arabian', 'takri', 'istaile', 'ingujarati', 'meeteimayek', 'inethiopic', 'iszanabazarsquare', 'marchen', 'isugaritic', 'istangut', 'buhid', 'intamil', 'isphags_pa', 'sogdian', 'ismahajani', 'nagmundari', 'iscoptic', 'isinscriptionalpahlavi', 'tibetan', 'oriya', 'iscanadianaboriginal', 'isadlam', 'incypriot', 'greek', 'manichaean', 'ismiao', 'intelugu', 'linear_b', 'ingothic', 'olduyghur', 'islisu', 'ismeetei_mayek', 'inold_persian', 'insylotinagri', 'inlepcha', 'cuneiform', 'bopomofo', 'isoldpersian', 'inhiragana', 'inwarang_citi', 'sundanese', 'katakana', 'isolchiki', 'deseret', 'inwancho', 'telugu', 'ishiragana', 'sylotinagri', 'ishatran', 'devanagari', 'ispsalter_pahlavi', 'innag_mundari', 'sorasompeng', 'lao', 'ismodi', 'meroitic_cursive', 'ethiopic', 'inmasaramgondi', 'malayalam', 'inbhaiksuki', 'ismandaic', 'isoldnortharabian', 'isbraille', 'inthaana', 'inosage', 'isphoenician', 'ispaucinhau', 'inmeroiticcursive', 'isbatak', 'iscypro_minoan', 'inlinearb', 'isoldsogdian', 'inlineara', 'mendekikakui', 'ispsalterpahlavi', 'nag_mundari', 'armenian', 'carian', 'ismeroitic_hieroglyphs', 'invai', 'inpahawhhmong', 'inarmenian', 'islinearb', 'modi', 'indeseret', 'islineara', 'iscyrillic', 'hanifi_rohingya', 'tirhuta', 'inanatolian_hieroglyphs', 'inelymaic', 'hanifirohingya', 'taile', 'saurashtra', 'istirhuta', 'masaram_gondi', 'inkhitansmallscript', 'istifinagh', 'bassavah', 'inold_hungarian', 'isnushu', 'signwriting', 'inphags_pa', 'inosmanya', 'tagbanwa', 'issundanese', 'chorasmian', 'insamaritan', 'shavian', 'bassa_vah', 'intagbanwa', 'incham', 'innushu', 'innewtailue', 'ishan', 'incyrillic', 'indivesakuru', 'istibetan', 'palmyrene', 'inlydian', 'inthai', 'toto' ); PUCUUnicodeScriptLowerCaseHashMapValueBits=8; PUCUUnicodeScriptLowerCaseHashMapValues:array[0..623] of byte=( 34, 61, 72, 82, 155, 105, 66, 126, 36, 69, 151, 143, 71, 13, 49, 4, 140, 87, 11, 28, 54, 141, 83, 72, 161, 5, 15, 91, 38, 45, 24, 151, 38, 135, 38, 73, 54, 11, 133, 90, 105, 52, 61, 25, 30, 6, 89, 14, 116, 72, 156, 146, 90, 125, 154, 17, 126, 121, 158, 159, 38, 79, 150, 90, 63, 89, 153, 148, 133, 28, 140, 119, 143, 98, 104, 95, 91, 152, 100, 104, 12, 145, 159, 70, 144, 108, 69, 141, 22, 94, 1, 29, 91, 43, 117, 152, 127, 86, 73, 151, 3, 138, 3, 31, 59, 50, 66, 125, 8, 60, 59, 96, 68, 25, 93, 6, 47, 150, 144, 2, 74, 98, 77, 15, 9, 28, 98, 142, 60, 127, 10, 1, 32, 138, 146, 79, 113, 84, 123, 31, 80, 91, 128, 103, 150, 163, 101, 59, 106, 118, 158, 18, 14, 161, 88, 94, 88, 52, 29, 87, 98, 160, 108, 76, 145, 20, 34, 36, 48, 108, 81, 151, 103, 2, 116, 119, 72, 23, 111, 113, 42, 65, 28, 130, 69, 107, 141, 115, 37, 96, 123, 80, 137, 157, 48, 154, 77, 104, 120, 81, 103, 141, 155, 146, 81, 7, 39, 78, 131, 130, 19, 109, 29, 64, 109, 104, 38, 155, 106, 88, 113, 119, 163, 38, 121, 143, 106, 30, 26, 122, 116, 91, 151, 82, 41, 99, 151, 47, 57, 86, 97, 121, 49, 93, 100, 12, 87, 148, 85, 147, 98, 138, 115, 110, 97, 97, 78, 114, 156, 63, 35, 72, 61, 105, 18, 58, 127, 96, 69, 56, 142, 129, 162, 65, 108, 51, 147, 90, 135, 65, 101, 128, 120, 89, 88, 56, 154, 122, 139, 119, 27, 144, 153, 73, 8, 42, 110, 127, 122, 12, 7, 87, 148, 24, 32, 158, 16, 78, 130, 148, 8, 33, 145, 83, 121, 112, 19, 59, 55, 111, 41, 28, 85, 92, 60, 58, 32, 95, 88, 86, 43, 101, 146, 79, 156, 155, 112, 87, 23, 78, 21, 125, 136, 46, 39, 148, 119, 85, 86, 161, 43, 149, 129, 47, 50, 13, 35, 44, 87, 68, 78, 123, 115, 30, 89, 160, 78, 91, 100, 84, 125, 157, 130, 27, 127, 117, 53, 11, 81, 81, 154, 84, 46, 135, 21, 60, 116, 17, 117, 51, 137, 81, 142, 71, 143, 53, 134, 40, 103, 90, 9, 110, 75, 118, 62, 108, 138, 75, 92, 120, 120, 44, 47, 23, 76, 157, 113, 41, 37, 37, 62, 154, 126, 130, 80, 56, 92, 62, 54, 57, 120, 99, 159, 2, 56, 143, 107, 124, 46, 19, 72, 103, 155, 102, 89, 103, 66, 70, 27, 107, 101, 143, 113, 109, 17, 6, 132, 162, 74, 134, 136, 79, 157, 110, 88, 7, 129, 10, 48, 125, 120, 132, 140, 163, 79, 94, 158, 101, 131, 55, 1, 158, 31, 141, 149, 102, 56, 69, 42, 79, 162, 57, 157, 25, 89, 74, 64, 65, 20, 24, 97, 67, 116, 102, 47, 13, 86, 26, 141, 134, 49, 137, 44, 15, 65, 147, 111, 163, 55, 90, 22, 14, 28, 132, 52, 3, 112, 99, 16, 48, 39, 158, 83, 86, 60, 59, 68, 63, 35, 60, 33, 125, 67, 34, 69, 40, 152, 16, 33, 59, 128, 10, 121, 163, 101, 21, 114, 97, 26, 138, 18, 133, 95, 116, 53, 9, 136, 64, 119, 97, 93, 157, 48, 148, 110, 113, 121, 163, 5, 75, 98, 70, 108, 5, 48, 114, 40, 110, 4, 146, 124, 127, 149, 146, 47, 71, 124, 138, 155, 58, 104, 130, 139, 131, 65, 51, 45, 67, 153, 82, 50, 104, 45, 77, 139, 56, 36, 4, 154, 22, 118, 76, 20, 160 ); const PUCUUnicodeBlockLowerCaseHashMapSeedSize=1614; PUCUUnicodeBlockLowerCaseHashMapValueSize=1614; PUCUUnicodeBlockLowerCaseHashMapSize=1614; PUCUUnicodeBlockLowerCaseHashMapSeedBits=16; PUCUUnicodeBlockLowerCaseHashMapSeeds:array[0..1613] of smallint=( -1614, 2, -1612, 0, -1611, -1610, 1, 0, 0, 0, -1609, 0, -1608, -1604, 0, -1597, -1596, 1, 1, -1595, 0, 3, -1594, 3, 1, -1592, -1591, 1, 1, 6, -1588, 0, 2, 1, 1, 1, 0, 1, -1587, 0, 1, -1584, 0, 0, 2, -1583, -1580, -1579, -1577, -1576, 0, -1573, 2, 0, 3, 0, 0, 0, 0, 0, -1569, -1566, 1, 0, 1, 0, 0, -1563, 1, 0, -1561, 1, 1, 0, 1, 2, 1, -1552, 2, 1, -1551, 0, -1546, -1542, 1, 0, 1, 1, -1541, -1538, 0, 1, 1, -1534, -1530, 0, 1, 0, 0, 0, -1527, 8, 3, 3, 0, 6, -1526, 1, 0, -1524, -1522, 0, 0, -1516, -1512, 0, 0, 0, -1511, 0, 2, 3, 0, -1510, 0, 0, -1506, 1, 2, 0, -1503, 0, 0, 0, 0, 2, 0, 3, 0, -1498, 1, -1497, -1494, 0, -1485, 0, -1481, -1479, -1477, 0, 0, 2, -1476, 1, -1473, -1471, -1469, 0, -1468, 2, -1467, 0, -1465, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 1, 0, 1, 3, -1459, 0, 2, 0, 2, 0, 1, -1455, -1453, -1452, 0, 0, 2, 1, -1450, -1447, -1440, 3, 0, -1436, 0, 0, -1435, 1, 2, 1, -1430, -1429, 0, -1427, 3, 0, -1424, -1422, 6, -1419, 0, 5, 0, 4, 2, 0, 0, 0, 1, -1417, 2, 0, 0, 0, -1416, -1415, -1411, 0, -1409, 1, -1406, 1, 1, 1, 3, -1402, -1398, 0, 0, 0, 0, 0, 0, 0, 0, -1384, -1382, -1379, 0, -1378, -1373, -1372, -1370, 0, 1, 0, 0, 0, -1369, 0, 1, 0, 0, -1367, 0, -1365, -1361, -1360, -1358, 0, 1, 1, 1, -1356, -1354, 0, 0, 0, -1353, -1352, 0, -1351, 1, 0, -1346, 0, -1344, -1339, 0, 0, 3, 2, -1338, 3, -1336, 1, -1333, 0, 1, 3, 1, 1, -1331, 2, 0, -1330, -1327, -1320, 0, -1319, 3, 0, 2, 1, 0, 0, 0, 4, 0, 0, 1, 0, 0, 0, -1317, 0, 0, 1, 1, 1, 0, -1312, 1, -1308, -1307, 0, 1, 0, -1306, -1305, -1303, -1302, -1300, 3, 1, -1288, 3, -1287, -1286, -1280, 3, 1, 1, -1279, 7, 2, 2, 1, 3, 1, 2, 4, -1276, 0, -1275, -1272, -1271, 0, 0, -1270, -1269, 0, -1262, 0, 0, 1, 0, -1258, -1257, 1, 0, -1256, -1255, 1, 5, 0, 0, -1254, -1252, 0, 0, 0, 0, -1251, 0, 0, -1247, 0, 4, 0, 0, 3, 0, -1245, -1242, 0, 3, -1238, 0, 0, -1237, -1236, 1, -1235, -1230, -1224, 0, -1223, 0, -1222, 0, 0, 0, -1217, 0, 1, 0, 0, -1214, 0, 0, -1207, 0, 0, 1, -1206, -1202, -1193, 1, -1191, 2, -1190, -1189, 1, 2, -1187, -1186, 2, 0, -1182, 0, -1180, -1179, -1178, -1177, -1176, -1174, -1173, 0, 0, 0, -1167, 0, 0, -1159, -1148, 3, -1144, 0, 1, 1, 0, -1141, -1140, 1, -1139, -1136, 1, 1, 1, -1133, 3, -1128, 3, 2, -1124, -1120, 0, 1, 0, -1114, 0, 0, -1113, 4, 1, 6, 4, 6, 0, 4, 3, 0, 2, 0, 0, 1, 2, -1112, -1110, 1, 4, 1, 2, 1, -1109, -1107, 0, 0, -1102, -1101, 0, 1, 0, -1100, -1099, 0, 1, 0, 0, -1093, 0, -1090, -1088, 0, 3, 0, 0, 0, 1, -1085, -1083, 0, 0, 2, -1082, 0, -1081, 1, -1080, 2, -1078, -1076, 0, 0, -1073, 0, 0, -1072, 2, -1070, 1, -1058, 0, 0, -1054, 2, 0, 6, -1051, 0, 0, 0, 0, -1048, 0, 0, 3, 2, -1047, -1046, -1044, 2, -1043, 3, 0, 0, -1040, 0, 0, 0, 1, -1038, 0, 1, -1036, -1034, 3, 0, 0, -1032, 0, 0, 0, 3, 0, 0, 0, 2, -1030, -1029, -1025, -1020, 0, 0, -1019, 0, -1016, 0, -1013, -1005, -1000, 1, 1, -998, -997, -995, 3, 8, 3, 0, 0, 6, 0, 0, -994, -990, 1, 1, -987, 1, -985, -983, -979, -978, -977, 2, 0, 0, 0, 0, 2, 0, 3, 0, 1, 1, 0, 4, 0, 3, 0, 0, 0, 0, 6, 0, 0, 3, 0, 0, -976, -975, -969, 2, -964, 2, 0, -961, 0, 2, -955, -954, 0, 0, -948, 1, 4, 1, 1, 3, 6, -944, 0, 0, 0, 0, 22, 0, -942, 1, 0, -941, 1, 0, 0, 0, 0, 0, 1, -939, 1, 2, 0, 0, 0, 0, 1, 0, 2, 0, -934, 1, 1, 0, 2, -932, 0, 3, 1, -931, 4, 4, 1, 1, -928, 1, -927, 4, -926, -923, 1, 0, 0, 0, 0, 0, 1, -921, 0, -919, 2, 0, 2, -908, 3, 0, 0, 0, 2, -907, 0, 0, -900, 0, -896, -892, 1, 0, 0, 1, 2, -890, 0, 1, 1, 1, -889, 0, 0, -887, 0, 0, -881, 0, -879, -877, -875, 0, 1, 10, 0, 0, 6, 0, 1, 0, 1, -874, 3, 0, 0, -865, 0, -864, 2, 1, 1, -863, 0, -862, -861, 0, 0, 4, -858, -857, -855, 3, -851, 0, 2, 0, -849, 3, -848, 1, 0, 0, 0, -845, 0, 3, 1, 13, 0, -841, -838, -835, -834, 0, 1, 2, 2, 2, 0, 1, 4, 0, 5, -833, 2, -828, -824, -822, 4, 0, 1, -819, 2, 1, 0, 1, 0, 1, -814, -813, 0, 0, -812, 0, -804, -802, -798, 4, 0, 2, -797, 5, -794, -793, -791, 4, -790, -789, -787, 0, 1, 2, 5, -779, -774, -768, -767, -763, 0, 1, -762, -761, 0, 6, -760, 0, 4, -757, -755, 0, -754, -751, 1, 4, 2, -746, 2, 1, 6, -740, -736, 2, 3, 11, 0, 0, -733, -730, -729, -727, 1, 2, -724, -723, 0, 1, 0, 0, -722, -716, -715, 0, 7, 1, 2, -709, -708, 7, -707, 0, -706, 0, -701, -700, -688, 0, -683, -680, 0, -674, 0, 0, 4, 0, 0, -673, -672, 0, -667, 0, 0, -666, -662, -660, 0, 0, 0, -654, -650, 0, -646, -645, 0, 0, 0, -640, 3, 0, 0, -639, 0, 3, -635, -633, 0, -629, 0, 1, -625, 0, -623, 1, 1, 3, -621, 0, 0, 0, 0, -616, 2, 0, 0, -607, 0, 0, 0, 0, 0, 0, 0, 0, -604, -600, -597, -596, 0, 0, 0, 3, 0, 0, -595, 0, -592, -589, 6, -588, -585, 1, -584, 2, 7, -583, 0, 0, 0, -579, 1, 0, -577, -574, -571, -568, 0, -560, 0, 0, 0, 0, -559, -558, -553, 0, -551, 0, 5, 0, 0, -548, 0, -547, 0, 0, 2, 3, 0, 0, 0, -545, 0, 0, -541, -535, 12, 0, -532, -531, 0, 0, 8, -528, -526, 0, 0, 0, 0, 0, 1, 0, -525, 3, 0, -520, -516, 0, -514, -513, 1, 2, 0, 2, 1, 0, -512, 1, -508, -505, 1, 0, -499, -496, 0, 0, -495, 0, 5, 0, 0, 1, 0, 2, -494, 0, -493, 8, 1, -492, 0, 1, 5, 12, 1, 0, 0, 0, 0, 0, 19, -491, -490, 9, -487, 0, 2, 0, 1, -486, -485, 7, 0, -480, -478, -477, 0, 3, 0, -476, 0, 0, 0, 8, 0, 0, -467, -466, 0, -465, -463, 0, 0, -462, 0, -457, 0, 2, 7, 0, 0, 0, 2, 0, 5, 0, -453, -451, -447, -445, 0, 3, 0, 0, -444, 0, -443, -441, 0, 0, 7, -440, -438, -436, -423, -421, 0, -420, 0, 0, 0, -416, 0, -414, 0, 5, 0, -404, 0, -402, 0, -387, -385, -384, -383, 0, 0, 0, -379, -378, -374, -373, -371, 0, 4, 14, 1, 4, 0, 4, 2, -365, 6, 1, -363, 2, 0, -362, -359, 0, 0, 6, 6, 0, -358, 1, -357, -355, 0, 0, 0, 0, 1, -349, 0, -347, -346, 2, 0, -343, 0, 0, 0, 0, -341, 0, -336, -335, 1, 8, 21, -334, 0, -322, -321, -317, -314, 1, 2, 0, 0, -313, -312, 3, 0, 0, -311, 2, -310, -309, 0, 19, 0, 0, -306, 0, -305, 1, 10, 0, -300, 0, -298, 0, -296, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, -291, -286, 0, -284, -282, 0, -281, -279, -269, -264, 0, 0, -259, 0, 0, 0, -258, 0, 3, 0, -257, -256, -255, 0, -254, 0, 0, 0, -253, -248, 0, -247, 0, 14, 1, -243, -239, 1, 3, 2, 2, -238, -237, -236, 8, 0, -235, -229, -228, 1, -224, 2, -223, -222, 0, -214, -210, -209, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, -207, -206, -205, 0, 0, 0, 3, 1, 1, -204, 0, -203, 6, -200, -196, -189, 4, 2, -188, 0, 0, 1, 1, -178, 0, 0, -177, -174, 0, -171, -166, 1, 2, 1, 2, 0, 2, 5, -160, -158, -155, 7, -154, 0, 0, 6, -151, 0, 5, -150, 0, -148, -147, 0, 0, -145, -144, -140, -139, 2, 0, 0, 17, 1, 4, -135, 0, -131, 0, 8, 4, 7, 0, 2, -130, 0, -127, -125, -123, -122, 1, -113, 0, -112, 0, -109, 0, 0, 0, 0, -103, 0, 0, 3, 14, 0, 0, -102, 0, -101, -98, 5, -89, 0, -81, 0, -80, 0, 0, 0, 0, -77, -75, -71, 6, 3, 0, 9, -70, -68, 0, 0, 1, 0, -66, -65, -58, 0, 0, 0, 0, 0, -57, -55, -54, -53, 0, 0, 3, -49, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, -45, 0, 18, 2, 0, 0, -44, -43, 3, -39, -37, 0, 0, 0, 0, 0, 0, 16, 0, -35, 18, 1, -31, -30, 0, 5, 1, 1, 3, 1, -28, 5, -27, 2, 0, 12, 14, 4, -25, -21, 0, 2, 0, -14, -12, -10, 0, 0, 3, 5, 7, 3, 1, 1, 0, -7, 0, 6, 1, 2, 0, -6 ); PUCUUnicodeBlockLowerCaseHashMapKeys:array[0..1613] of TPUCURawByteString=( 'cyrillicextended-a', 'georgian_supplement', 'miscellaneous_symbols_and_pictographs', 'iscyrillic_extended-c', 'isbopomofo_extended', 'high_private_use_surrogates', 'pau_cin_hau', 'iswancho', 'intai_le', 'insmall_kana_extension', 'linearbsyllabary', 'ishebrew', 'inscriptional_parthian', 'inemoticons', 'istirhuta', 'inancientsymbols', 'ingreekandcoptic', 'isindicsiyaqnumbers', 'incommon_indic_number_forms', 'iscyrillic_extended-d', 'iscjkradicalssupplement', 'incyrillicextended-c', 'wancho', 'warang_citi', 'pahawh_hmong', 'iscyrillic_extended-b', 'islatinextended-g', 'islatinextended-e', 'incherokee', 'inbyzantinemusicalsymbols', 'inhangul_jamo_extended-b', 'latin_extended-d', 'isaegeannumbers', 'issundanesesupplement', 'inanatolianhieroglyphs', 'ideographic_symbols_and_punctuation', 'bhaiksuki', 'ishanifi_rohingya', 'newtailue', 'elbasan', 'lowsurrogates', 'linear_b_syllabary', 'incjk_symbols_and_punctuation', 'inshorthandformatcontrols', 'iskaktoviknumerals', 'issymbolsandpictographsextended-a', 'letterlikesymbols', 'inmiscellaneous_symbols', 'dives_akuru', 'miscellaneoussymbolsandarrows', 'ingeorgiansupplement', 'inmiscellaneous_symbols_and_arrows', 'combiningmarksforsymbols', 'enclosedalphanumerics', 'ishanifirohingya', 'ismeroiticcursive', 'dominotiles', 'isbamumsupplement', 'iszanabazarsquare', 'ethiopicextended', 'inwarangciti', 'inmathematicalalphanumericsymbols', 'lao', 'cjk_compatibility_ideographs_supplement', 'mro', 'inmongolian_supplement', 'cjkcompatibilityforms', 'symbols_and_pictographs_extended-a', 'isbraillepatterns', 'supplementalmathematicaloperators', 'iscaucasianalbanian', 'mathematical_alphanumeric_symbols', 'induployan', 'innandinagari', 'inalphabeticpresentationforms', 'islisu', 'intags', 'isearly_dynastic_cuneiform', 'inmusical_symbols', 'latin-1supplement', 'inunifiedcanadianaboriginalsyllabicsextended-a', 'issupplementalpunctuation', 'kharoshthi', 'ishigh_surrogates', 'islatinextended-a', 'issmallformvariants', 'inelymaic', 'islatinextended-b', 'small_kana_extension', 'inmeeteimayek', 'inogham', 'islycian', 'inphoneticextensions', 'kaktovik_numerals', 'combiningdiacriticalmarks', 'intakri', 'inkayah_li', 'imperialaramaic', 'intirhuta', 'ismeeteimayekextensions', 'inmahajani', 'inpalmyrene', 'cjk_compatibility_forms', 'ingothic', 'countingrodnumerals', 'isoldnortharabian', 'incjk_compatibility_ideographs_supplement', 'kaktoviknumerals', 'mongolian', 'hangulcompatibilityjamo', 'iscyrillicsupplement', 'isarabicpresentationforms-b', 'isnew_tai_lue', 'sundanese', 'incjkradicalssupplement', 'mayan_numerals', 'inyisyllables', 'incaucasian_albanian', 'istaixuanjingsymbols', 'ismayannumerals', 'ethiopic_extended', 'unified_canadian_aboriginal_syllabics', 'tai_tham', 'insupplementaryprivateusearea-b', 'isunifiedcanadianaboriginalsyllabicsextended-a', 'isalphabetic_presentation_forms', 'isprivate_use_area', 'iscjk_unified_ideographs', 'isornamentaldingbats', 'isgujarati', 'sorasompeng', 'inoldpermic', 'isthaana', 'inancient_greek_musical_notation', 'thai', 'gunjala_gondi', 'isgrantha', 'isegyptian_hieroglyphs', 'isolchiki', 'isbopomofoextended', 'cjk_unified_ideographs_extension_h', 'devanagari_extended-a', 'arabicpresentationforms-a', 'inegyptian_hieroglyph_format_controls', 'isshorthandformatcontrols', 'incjkcompatibilityforms', 'inkhudawadi', 'isvariation_selectors', 'ismasaramgondi', 'inhangul_syllables', 'inhangul_compatibility_jamo', 'incombining_diacritical_marks_supplement', 'incyrillic', 'ethiopic_supplement', 'tirhuta', 'deseret', 'inaegean_numbers', 'inyiradicals', 'inglagoliticsupplement', 'inmasaram_gondi', 'arrows', 'meetei_mayek_extensions', 'intransportandmapsymbols', 'chesssymbols', 'inhanifirohingya', 'inancientgreekmusicalnotation', 'kayahli', 'isdomino_tiles', 'inlinearbideograms', 'insylotinagri', 'istransport_and_map_symbols', 'incyrillicextended-d', 'cham', 'oriya', 'issaurashtra', 'ismarchen', 'inmiscellaneous_technical', 'incjkstrokes', 'inenclosedalphanumerics', 'inoldsogdian', 'cyrillic_extended-c', 'inbatak', 'isnumber_forms', 'cyrillic_extended-d', 'inlatinextended-g', 'inlatinextended-f', 'inrejang', 'inbamum_supplement', 'ismiscellaneoussymbolsandarrows', 'issupplemental_arrows-a', 'isdeseret', 'ismeeteimayek', 'olduyghur', 'egyptian_hieroglyph_format_controls', 'inzanabazarsquare', 'hangul_jamo_extended-a', 'arabic', 'inmalayalam', 'sylotinagri', 'isbuginese', 'incyrillic_extended-d', 'latin_extended-e', 'incyrillic_extended-a', 'incyrillic_extended-c', 'inmongolian', 'isglagoliticsupplement', 'issupplemental_punctuation', 'kanasupplement', 'iscombiningdiacriticalmarksextended', 'issinhalaarchaicnumbers', 'incherokee_supplement', 'modifier_tone_letters', 'inmodifiertoneletters', 'gurmukhi', 'copticepactnumbers', 'verticalforms', 'insinhalaarchaicnumbers', 'isdevanagari_extended-a', 'inethiopicextended-b', 'alphabeticpresentationforms', 'highprivateusesurrogates', 'indogra', 'insupplementalarrows-a', 'insupplementalarrows-c', 'isarrows', 'isvedic_extensions', 'inalchemicalsymbols', 'inscriptional_pahlavi', 'intai_viet', 'isold_persian', 'boxdrawing', 'isgunjala_gondi', 'marchen', 'injavanese', 'inold_italic', 'indevanagariextended', 'meroiticcursive', 'indic_siyaq_numbers', 'transportandmapsymbols', 'isenclosedcjklettersandmonths', 'inbengali', 'isnagmundari', 'taitham', 'insupplementalmathematicaloperators', 'istakri', 'iscyrillicextended-d', 'yi_radicals', 'insinhala_archaic_numbers', 'innyiakengpuachuehmong', 'isideographic_symbols_and_punctuation', 'enclosed_alphanumerics', 'byzantinemusicalsymbols', 'symbolsandpictographsextended-a', 'yiradicals', 'isgeometricshapes', 'inenclosed_alphanumeric_supplement', 'isadlam', 'counting_rod_numerals', 'inornamental_dingbats', 'inhatran', 'isinscriptionalpahlavi', 'innag_mundari', 'syriacsupplement', 'incuneiformnumbersandpunctuation', 'insundanese_supplement', 'ishanguljamo', 'iscuneiform', 'ismongoliansupplement', 'isegyptianhieroglyphs', 'buginese', 'ismusical_symbols', 'lineara', 'isbassavah', 'imperial_aramaic', 'unified_canadian_aboriginal_syllabics_extended-a', 'inblockelements', 'hangul_jamo_extended-b', 'isunified_canadian_aboriginal_syllabics_extended-a', 'isalphabeticpresentationforms', 'isverticalforms', 'tibetan', 'geometricshapes', 'common_indic_number_forms', 'mathematicalalphanumericsymbols', 'insutton_signwriting', 'intagbanwa', 'inearlydynasticcuneiform', 'isethiopicsupplement', 'inkannada', 'cyrillicextended-c', 'issupplemental_mathematical_operators', 'intaiviet', 'inoldpersian', 'iscypro-minoan', 'tamil_supplement', 'isbraille_patterns', 'supplemental_symbols_and_pictographs', 'isdivesakuru', 'sora_sompeng', 'inkatakana', 'insupplementalsymbolsandpictographs', 'cuneiform', 'balinese', 'samaritan', 'oldpermic', 'tangutcomponents', 'ispsalter_pahlavi', 'inbopomofoextended', 'greek_extended', 'isemoticons', 'devanagariextended', 'grantha', 'devanagari', 'issinhala_archaic_numbers', 'istagalog', 'iskana_supplement', 'inosage', 'insinhala', 'cuneiformnumbersandpunctuation', 'incombining_diacritical_marks_extended', 'hebrew', 'inethiopic_extended-a', 'arabic_supplement', 'isgurmukhi', 'cherokee_supplement', 'halfwidth_and_fullwidth_forms', 'isoldsoutharabian', 'incopticepactnumbers', 'inethiopicextended-a', 'hanguljamoextended-b', 'ismyanmarextended-a', 'ismultani', 'invedicextensions', 'toto', 'ishanguljamoextended-b', 'isottomansiyaqnumbers', 'inlatin_extended-d', 'insupplemental_mathematical_operators', 'istangut', 'ininscriptionalparthian', 'ishanguljamoextended-a', 'inletterlikesymbols', 'insymbolsforlegacycomputing', 'inlisu', 'inol_chiki', 'inbuhid', 'inhanifi_rohingya', 'inhangulsyllables', 'isblockelements', 'cyrillic_extended-a', 'mende_kikakui', 'tai_viet', 'control_pictures', 'iscombining_diacritical_marks_extended', 'bamum', 'inmayan_numerals', 'enclosedalphanumericsupplement', 'spacingmodifierletters', 'cyrillicextended-d', 'enclosedideographicsupplement', 'intangut', 'ishatran', 'latin_extended-f', 'inlatinextended-e', 'latin_extended-c', 'iscjkunifiedideographsextensiona', 'inlatin_extended_additional', 'iscjkunifiedideographsextensionc', 'iscjkunifiedideographsextensiond', 'invithkuqi', 'inarabic_extended-a', 'ischerokee_supplement', 'inarabic_extended-b', 'inarabic_extended-c', 'new_tai_lue', 'inglagolitic', 'arabicsupplement', 'isancient_symbols', 'khmer_symbols', 'insymbolsandpictographsextended-a', 'indeseret', 'supplementalarrows-c', 'iscypriotsyllabary', 'incombiningdiacriticalmarksforsymbols', 'inshorthand_format_controls', 'inmiao', 'inolditalic', 'tai_le', 'gujarati', 'nabataean', 'inethiopic_extended-b', 'ishalfwidthandfullwidthforms', 'supplementaryprivateusearea-b', 'chakma', 'inmendekikakui', 'inideographicdescriptioncharacters', 'inphaistosdisc', 'inhangul_jamo', 'isenclosedalphanumerics', 'isnushu', 'greekandcoptic', 'istifinagh', 'inkangxiradicals', 'inkharoshthi', 'istangut_supplement', 'nushu', 'inthai', 'unifiedcanadianaboriginalsyllabicsextended', 'kana_supplement', 'playing_cards', 'inlatin_extended-e', 'inbamumsupplement', 'inlatin_extended-g', 'istoto', 'oldpersian', 'issuperscripts_and_subscripts', 'psalterpahlavi', 'incjk_unified_ideographs_extension_d', 'sogdian', 'hangul_compatibility_jamo', 'ismro', 'ipa_extensions', 'isplayingcards', 'insupplemental_punctuation', 'invariationselectors', 'inplayingcards', 'issutton_signwriting', 'caucasian_albanian', 'indevanagari_extended-a', 'isoldsogdian', 'indingbats', 'inspacing_modifier_letters', 'arabic_mathematical_alphabetic_symbols', 'inpau_cin_hau', 'isnag_mundari', 'isgeometricshapesextended', 'isgeometric_shapes_extended', 'iscaucasian_albanian', 'isold_italic', 'inimperialaramaic', 'isgreek_extended', 'inarabicpresentationforms-a', 'iscombining_marks_for_symbols', 'sinhalaarchaicnumbers', 'combiningdiacriticalmarksextended', 'ingreek_and_coptic', 'isethiopic_supplement', 'kayah_li', 'inmathematical_alphanumeric_symbols', 'oldsoutharabian', 'inunifiedcanadianaboriginalsyllabics', 'pahawhhmong', 'inkaktovik_numerals', 'bopomofo_extended', 'inlydian', 'isbassa_vah', 'ishangul_compatibility_jamo', 'incjksymbolsandpunctuation', 'isrejang', 'inhangul_jamo_extended-a', 'latinextendedadditional', 'inahom', 'isbalinese', 'enclosed_cjk_letters_and_months', 'inmasaramgondi', 'inbhaiksuki', 'inhigh_surrogates', 'inornamentaldingbats', 'supplemental_arrows-c', 'supplemental_arrows-b', 'isalchemicalsymbols', 'meeteimayek', 'cjk_symbols_and_punctuation', 'vertical_forms', 'issogdian', 'isbox_drawing', 'inhighprivateusesurrogates', 'variationselectors', 'iscommon_indic_number_forms', 'ishanunoo', 'islatin_extended-b', 'inancient_greek_numbers', 'isplaying_cards', 'inscriptionalpahlavi', 'inmathematical_operators', 'halfwidthandfullwidthforms', 'inold_persian', 'islisu_supplement', 'insorasompeng', 'ancient_greek_musical_notation', 'innumber_forms', 'islatin_extended-g', 'islatin_extended-d', 'khitan_small_script', 'incaucasianalbanian', 'inbraille_patterns', 'issupplemental_arrows-b', 'iskanaextended-a', 'inlineara', 'isethiopic', 'phags-pa', 'isphaistos_disc', 'ismiscellaneoustechnical', 'isancientsymbols', 'isthai', 'georgianextended', 'isphoneticextensions', 'combining_diacritical_marks_supplement', 'isletterlikesymbols', 'isbengali', 'iscurrency_symbols', 'isanatolianhieroglyphs', 'paucinhau', 'byzantine_musical_symbols', 'inalchemical_symbols', 'number_forms', 'emoticons', 'inmeroitic_hieroglyphs', 'cjkunifiedideographsextensiong', 'superscripts_and_subscripts', 'hangul_syllables', 'phaistos_disc', 'intaixuanjingsymbols', 'iscopticepactnumbers', 'sutton_signwriting', 'incjkcompatibility', 'ishangul_jamo_extended-a', 'ismathematical_alphanumeric_symbols', 'islowsurrogates', 'ishangul_jamo_extended-b', 'iscjkcompatibilityideographs', 'isoldpermic', 'inmanichaean', 'inlinear_b_syllabary', 'ismeroitichieroglyphs', 'isoldhungarian', 'islydian', 'innewtailue', 'inlisu_supplement', 'ancient_greek_numbers', 'inold_north_arabian', 'inrunic', 'ipaextensions', 'meetei_mayek', 'osmanya', 'iskana_extended-b', 'optical_character_recognition', 'isyi_radicals', 'supplementary_private_use_area-a', 'istaitham', 'ancientsymbols', 'inverticalforms', 'issyriac', 'issorasompeng', 'inugaritic', 'yijinghexagramsymbols', 'intangsa', 'innewa', 'iscombining_diacritical_marks_for_symbols', 'inhighsurrogates', 'isancient_greek_numbers', 'isgeorgian', 'incombiningdiacriticalmarkssupplement', 'inyezidi', 'isprivateusearea', 'istangsa', 'arabic_extended-c', 'mathematical_operators', 'warangciti', 'miscellaneous_symbols', 'invariation_selectors', 'miscellaneousmathematicalsymbols-b', 'issymbols_and_pictographs_extended-a', 'incjk_unified_ideographs_extension_h', 'issuperscriptsandsubscripts', 'iscjk_symbols_and_punctuation', 'block_elements', 'inmahjongtiles', 'iskangxi_radicals', 'miscellaneous_technical', 'incontrolpictures', 'shorthandformatcontrols', 'isarabicmathematicalalphabeticsymbols', 'incjk_unified_ideographs_extension_c', 'incjk_unified_ideographs_extension_e', 'inarabicextended-a', 'inarabicextended-b', 'incjk_unified_ideographs_extension_f', 'isopticalcharacterrecognition', 'innyiakeng_puachue_hmong', 'ingreekextended', 'isenclosedalphanumericsupplement', 'isnyiakeng_puachue_hmong', 'inmende_kikakui', 'symbolsforlegacycomputing', 'hatran', 'incommonindicnumberforms', 'arabic_presentation_forms-b', 'iscoptic_epact_numbers', 'combiningdiacriticalmarkssupplement', 'isethiopicextended-a', 'inold_permic', 'tangutsupplement', 'intamilsupplement', 'inold_hungarian', 'dogra', 'iscommonindicnumberforms', 'inwarang_citi', 'inosmanya', 'sharada', 'inlatin-1_supplement', 'isarabic_supplement', 'insyriac_supplement', 'intagalog', 'incjk_unified_ideographs_extension_a', 'medefaidrin', 'ingunjala_gondi', 'telugu', 'ischerokee', 'isold_turkic', 'isunifiedcanadianaboriginalsyllabics', 'inold_turkic', 'inyijing_hexagram_symbols', 'inkawi', 'coptic_epact_numbers', 'nandinagari', 'chorasmian', 'inideographic_symbols_and_punctuation', 'insmallformvariants', 'inrumi_numeral_symbols', 'lisu', 'old_persian', 'inmongoliansupplement', 'inmeroitic_cursive', 'masaramgondi', 'yisyllables', 'ugaritic', 'issundanese', 'supplementary_private_use_area-b', 'ismedefaidrin', 'iscjk_unified_ideographs_extension_f', 'iscjk_unified_ideographs_extension_g', 'inmiscellaneous_symbols_and_pictographs', 'iscjk_unified_ideographs_extension_e', 'variation_selectors', 'kanbun', 'inenclosedideographicsupplement', 'yijing_hexagram_symbols', 'ismayan_numerals', 'glagolitic_supplement', 'issupplementalmathematicaloperators', 'ispahawh_hmong', 'meroitichieroglyphs', 'ispau_cin_hau', 'spacing_modifier_letters', 'inmiscellaneoussymbols', 'linear_a', 'tags', 'isvariationselectorssupplement', 'hanifirohingya', 'inethiopicextended', 'tamil', 'incjkunifiedideographsextensiond', 'inchess_symbols', 'inplaying_cards', 'inthaana', 'islimbu', 'istai_viet', 'isarmenian', 'iskhudawadi', 'islao', 'ismiscellaneoussymbols', 'vai', 'iskayah_li', 'iscjkcompatibility', 'ismiscellaneous_symbols', 'ismiao', 'ancientgreekmusicalnotation', 'issupplementalarrows-b', 'ingeometricshapes', 'cjkunifiedideographsextensionh', 'ismongolian', 'ismanichaean', 'inbrahmi', 'box_drawing', 'issuttonsignwriting', 'unifiedcanadianaboriginalsyllabicsextended-a', 'iskayahli', 'incontrol_pictures', 'cjkunifiedideographsextensiona', 'cjkunifiedideographsextensionb', 'tamilsupplement', 'inenclosed_alphanumerics', 'syriac', 'isindic_siyaq_numbers', 'cypriot_syllabary', 'ischess_symbols', 'ismandaic', 'ingeorgian_supplement', 'multani', 'olchiki', 'katakana_phonetic_extensions', 'miao', 'insupplemental_arrows-c', 'inold_uyghur', 'oldturkic', 'bamumsupplement', 'inmahjong_tiles', 'isyezidi', 'iswarang_citi', 'inkhitan_small_script', 'iscjkcompatibilityideographssupplement', 'phoenician', 'isvertical_forms', 'privateusearea', 'braillepatterns', 'inmakasar', 'inmeetei_mayek', 'inhalfwidthandfullwidthforms', 'islinearbsyllabary', 'kanaextended-b', 'inmiscellaneoussymbolsandpictographs', 'nyiakengpuachuehmong', 'inmiscellaneousmathematicalsymbols-b', 'ingeometric_shapes_extended', 'isznamenny_musical_notation', 'inaegeannumbers', 'isenclosedideographicsupplement', 'insharada', 'inkanbun', 'iscombining_diacritical_marks_supplement', 'inottomansiyaqnumbers', 'taile', 'isspecials', 'inarabic_supplement', 'general_punctuation', 'iscypriot_syllabary', 'ismahjong_tiles', 'zanabazarsquare', 'isdevanagari', 'isznamennymusicalnotation', 'inkayahli', 'islisusupplement', 'inmeroiticcursive', 'isoldpersian', 'incjkunifiedideographsextensionf', 'inzanabazar_square', 'taiviet', 'znamennymusicalnotation', 'inethiopic_extended', 'incjkunifiedideographsextensionb', 'inottoman_siyaq_numbers', 'isunified_canadian_aboriginal_syllabics_extended', 'incjkunifiedideographsextensionc', 'incjkunifiedideographsextensiona', 'unified_canadian_aboriginal_syllabics_extended', 'issinhala', 'ischesssymbols', 'issyriacsupplement', 'iscountingrodnumerals', 'inphoneticextensionssupplement', 'inmyanmarextended-a', 'incombininghalfmarks', 'ismiscellaneous_mathematical_symbols-a', 'ismiscellaneous_mathematical_symbols-b', 'isornamental_dingbats', 'iskanaextended-b', 'latin-1_supplement', 'supplemental_punctuation', 'inunified_canadian_aboriginal_syllabics_extended-a', 'old_permic', 'isnyiakengpuachuehmong', 'incypriot_syllabary', 'ishangul_syllables', 'ismalayalam', 'inkhmer', 'issmall_kana_extension', 'tangut_components', 'inphonetic_extensions', 'insaurashtra', 'issupplementary_private_use_area-b', 'iscombiningdiacriticalmarkssupplement', 'isspacing_modifier_letters', 'inancientgreeknumbers', 'cyrillic_supplement', 'miscellaneous_symbols_and_arrows', 'istamil', 'kana_extended-b', 'inbalinese', 'inoptical_character_recognition', 'isblock_elements', 'currencysymbols', 'inhebrew', 'isenclosed_ideographic_supplement', 'ishangul_jamo', 'blockelements', 'myanmar', 'intai_xuan_jing_symbols', 'incurrency_symbols', 'isgeometric_shapes', 'inethiopicsupplement', 'indevanagariextended-a', 'islatin_extended-c', 'isdevanagariextended', 'inznamenny_musical_notation', 'inmeetei_mayek_extensions', 'inold_south_arabian', 'yi_syllables', 'inoriya', 'incountingrodnumerals', 'ingeometricshapesextended', 'inunifiedcanadianaboriginalsyllabicsextended', 'incombiningdiacriticalmarks', 'ingeometric_shapes', 'ingeorgian', 'inarrows', 'iscyrillic', 'isgeorgian_supplement', 'ishigh_private_use_surrogates', 'cjk_unified_ideographs', 'ispaucinhau', 'islatinextendedadditional', 'iscombiningmarksforsymbols', 'alchemical_symbols', 'ismodifier_tone_letters', 'islatin-1_supplement', 'incjk_strokes', 'ruminumeralsymbols', 'istransportandmapsymbols', 'musical_symbols', 'incjk_radicals_supplement', 'incyrillicsupplement', 'high_surrogates', 'vedicextensions', 'isyijing_hexagram_symbols', 'ismiscellaneousmathematicalsymbols-a', 'inoldsoutharabian', 'inearly_dynastic_cuneiform', 'specials', 'isegyptian_hieroglyph_format_controls', 'mongolian_supplement', 'inmusicalsymbols', 'iscjksymbolsandpunctuation', 'inlatin_extended-b', 'znamenny_musical_notation', 'inmyanmar_extended-a', 'inmyanmar_extended-b', 'inunified_canadian_aboriginal_syllabics', 'indevanagari_extended', 'ispahawhhmong', 'incuneiform', 'islatin_extended_additional', 'anatolianhieroglyphs', 'ismodifiertoneletters', 'inyijinghexagramsymbols', 'old_italic', 'inbassavah', 'old_sogdian', 'inkhojki', 'inipa_extensions', 'incjk_unified_ideographs', 'meroitic_cursive', 'inarabicextended-c', 'numberforms', 'intamil_supplement', 'inscriptionalparthian', 'divesakuru', 'cypriotsyllabary', 'incjk_unified_ideographs_extension_b', 'isphaistosdisc', 'incoptic', 'inolduyghur', 'isletterlike_symbols', 'isnumberforms', 'hangul_jamo', 'ininscriptionalpahlavi', 'vedic_extensions', 'isgunjalagondi', 'inoldhungarian', 'isgothic', 'inhanguljamo', 'isold_uyghur', 'inarabic', 'ismongolian_supplement', 'inkana_extended-a', 'nko', 'ismakasar', 'insamaritan', 'ismahjongtiles', 'inchesssymbols', 'inegyptian_hieroglyphs', 'inblock_elements', 'innabataean', 'incombiningmarksforsymbols', 'ishighsurrogates', 'isold_sogdian', 'isshavian', 'ininscriptional_pahlavi', 'bopomofo', 'isegyptianhieroglyphformatcontrols', 'iswarangciti', 'mahjong_tiles', 'tangsa', 'inindicsiyaqnumbers', 'inmyanmarextended-b', 'incjkunifiedideographsextensionh', 'inegyptianhieroglyphformatcontrols', 'isdevanagari_extended', 'incjkunifiedideographsextensione', 'iscjk_radicals_supplement', 'issmallkanaextension', 'insundanese', 'isvedicextensions', 'incombining_diacritical_marks', 'inkhmersymbols', 'old_south_arabian', 'modifiertoneletters', 'sundanese_supplement', 'insmall_form_variants', 'inmayannumerals', 'alphabetic_presentation_forms', 'isugaritic', 'inprivate_use_area', 'iselbasan', 'linear_b_ideograms', 'tangut', 'inbraillepatterns', 'iscjkunifiedideographsextensionb', 'intangutcomponents', 'isphonetic_extensions_supplement', 'iscjkunifiedideographsextensione', 'inegyptianhieroglyphs', 'domino_tiles', 'iscombining_half_marks', 'phoneticextensionssupplement', 'islow_surrogates', 'inbassa_vah', 'cypro-minoan', 'masaram_gondi', 'arabicextended-b', 'supplementaryprivateusearea-a', 'iscombiningdiacriticalmarks', 'indives_akuru', 'old_turkic', 'isoldturkic', 'inoldnortharabian', 'isottoman_siyaq_numbers', 'ethiopic_extended-a', 'isarabic_extended-b', 'issyloti_nagri', 'invai', 'ancient_symbols', 'arabic_extended-b', 'innushu', 'iskangxiradicals', 'inlowsurrogates', 'inkangxi_radicals', 'ispalmyrene', 'iscjkunifiedideographsextensiong', 'iscjkunifiedideographsextensionf', 'symbols_for_legacy_computing', 'combining_half_marks', 'intamil', 'isphags-pa', 'ismodi', 'earlydynasticcuneiform', 'isimperial_aramaic', 'isavestan', 'ischam', 'inopticalcharacterrecognition', 'iskharoshthi', 'isaegean_numbers', 'ancientgreeknumbers', 'incounting_rod_numerals', 'incyrillic_supplement', 'inbamum', 'isnewa', 'iscjk_unified_ideographs_extension_a', 'insiddham', 'vithkuqi', 'isethiopicextended-b', 'issmall_form_variants', 'iscjk_unified_ideographs_extension_c', 'intibetan', 'iscjk_unified_ideographs_extension_b', 'khojki', 'iscjk_unified_ideographs_extension_d', 'inmodi', 'ethiopicextended-b', 'iskawi', 'istai_le', 'inkhmer_symbols', 'insundanesesupplement', 'iscjk_unified_ideographs_extension_h', 'ismiscellaneous_technical', 'insymbols_for_legacy_computing', 'intoto', 'ininscriptional_parthian', 'isyi_syllables', 'georgiansupplement', 'incjk_compatibility', 'avestan', 'ahom', 'inmedefaidrin', 'insupplemental_symbols_and_pictographs', 'ismeetei_mayek', 'iscjkstrokes', 'inmandaic', 'iskhmer', 'cyrillicsupplement', 'istelugu', 'inmyanmar', 'rejang', 'isgeneralpunctuation', 'combining_diacritical_marks', 'incuneiform_numbers_and_punctuation', 'latin_extended-g', 'ingurmukhi', 'miscellaneoussymbols', 'inbopomofo', 'isalchemical_symbols', 'latin_extended-b', 'inphoenician', 'isarabicsupplement', 'iscyrillic_supplement', 'incjkunifiedideographsextensiong', 'isethiopicextended', 'inhiragana', 'iscoptic', 'inkanasupplement', 'inpsalter_pahlavi', 'istangut_components', 'incyrillicextended-a', 'inkaktoviknumerals', 'hangulsyllables', 'combiningdiacriticalmarksforsymbols', 'incyrillic_extended-b', 'nagmundari', 'incurrencysymbols', 'iscjk_compatibility_forms', 'isphoneticextensionssupplement', 'intaitham', 'ischerokeesupplement', 'isvariationselectors', 'innew_tai_lue', 'iskhojki', 'inkana_extended-b', 'inspacingmodifierletters', 'islatin-1supplement', 'bamum_supplement', 'unifiedcanadianaboriginalsyllabics', 'inmiscellaneoussymbolsandarrows', 'isinscriptional_parthian', 'issupplementary_private_use_area-a', 'runic', 'isdominotiles', 'inbyzantine_musical_symbols', 'isold_north_arabian', 'ismyanmar_extended-a', 'mandaic', 'insupplementalpunctuation', 'ismyanmar_extended-b', 'inpahawhhmong', 'iscjk_strokes', 'letterlike_symbols', 'phaistosdisc', 'inarabicsupplement', 'miscellaneous_mathematical_symbols-b', 'miscellaneous_mathematical_symbols-a', 'isanatolian_hieroglyphs', 'inkaithi', 'inbopomofo_extended', 'inarabicmathematicalalphabeticsymbols', 'musicalsymbols', 'incarian', 'inmiscellaneous_mathematical_symbols-a', 'istags', 'bassavah', 'combining_marks_for_symbols', 'inmiscellaneous_mathematical_symbols-b', 'incjkcompatibilityideographs', 'isglagolitic', 'isglagolitic_supplement', 'issiddham', 'incjk_compatibility_forms', 'georgian_extended', 'sundanesesupplement', 'isgreekandcoptic', 'isimperialaramaic', 'ismasaram_gondi', 'isnko', 'incjk_unified_ideographs_extension_g', 'inphaistos_disc', 'inideographicsymbolsandpunctuation', 'isunified_canadian_aboriginal_syllabics', 'hanunoo', 'isipa_extensions', 'ingrantha', 'inlycian', 'ol_chiki', 'early_dynastic_cuneiform', 'hanguljamoextended-a', 'isinscriptional_pahlavi', 'incombining_half_marks', 'isarabic_extended-a', 'cyrillic_extended-b', 'iscyrillicextended-a', 'ismathematicalalphanumericsymbols', 'inmro', 'kana_extended-a', 'mayannumerals', 'cjk_unified_ideographs_extension_c', 'psalter_pahlavi', 'iscuneiform_numbers_and_punctuation', 'insmallkanaextension', 'ethiopic_extended-b', 'inhanguljamoextended-b', 'isvariation_selectors_supplement', 'isosage', 'insora_sompeng', 'indevanagari', 'cjkradicalssupplement', 'inchorasmian', 'miscellaneousmathematicalsymbols-a', 'inlinearbsyllabary', 'isarabic', 'isarabicpresentationforms-a', 'cjkunifiedideographsextensione', 'intai_tham', 'kannada', 'isenclosed_alphanumeric_supplement', 'syriac_supplement', 'cjkunifiedideographsextensionc', 'braille_patterns', 'katakanaphoneticextensions', 'myanmar_extended-b', 'isjavanese', 'ingeorgianextended', 'ismyanmar', 'myanmar_extended-a', 'ornamental_dingbats', 'phoneticextensions', 'indicsiyaqnumbers', 'inindic_siyaq_numbers', 'inphonetic_extensions_supplement', 'inmarchen', 'latinextended-a', 'isolduyghur', 'bassa_vah', 'invedic_extensions', 'latinextended-e', 'mendekikakui', 'latinextended-g', 'latinextended-f', 'bopomofoextended', 'katakana', 'ideographicsymbolsandpunctuation', 'hanguljamo', 'saurashtra', 'iskatakana', 'ottoman_siyaq_numbers', 'issundanese_supplement', 'glagolitic', 'isgeneral_punctuation', 'insogdian', 'hanifi_rohingya', 'inancient_symbols', 'incombining_marks_for_symbols', 'cjkunifiedideographsextensionf', 'isyisyllables', 'cjkunifiedideographsextensiond', 'invariationselectorssupplement', 'intifinagh', 'bengali', 'dingbats', 'isnabataean', 'iskanasupplement', 'miscellaneoustechnical', 'supplementalsymbolsandpictographs', 'istai_tham', 'inboxdrawing', 'isideographicsymbolsandpunctuation', 'egyptianhieroglyphs', 'egyptian_hieroglyphs', 'mongoliansupplement', 'issoyombo', 'combining_diacritical_marks_extended', 'cjkcompatibilityideographs', 'isbuhid', 'ismyanmarextended-b', 'iscombininghalfmarks', 'iscyrillicextended-c', 'ismusicalsymbols', 'issymbols_for_legacy_computing', 'highsurrogates', 'incombiningdiacriticalmarksextended', 'shorthand_format_controls', 'supplementalpunctuation', 'khmersymbols', 'inglagolitic_supplement', 'iscombiningdiacriticalmarksforsymbols', 'isvai', 'inletterlike_symbols', 'superscriptsandsubscripts', 'lydian', 'isideographic_description_characters', 'iskana_extended-a', 'isunifiedcanadianaboriginalsyllabicsextended', 'cjk_strokes', 'linearbideograms', 'manichaean', 'tangut_supplement', 'isphonetic_extensions', 'inlatin-1supplement', 'intaile', 'arabic_presentation_forms-a', 'smallkanaextension', 'ethiopic', 'inshavian', 'isgeorgian_extended', 'glagoliticsupplement', 'meroitic_hieroglyphs', 'lepcha', 'inipaextensions', 'istaile', 'inarabic_mathematical_alphabetic_symbols', 'cjkunifiedideographs', 'controlpictures', 'isgreek_and_coptic', 'incoptic_epact_numbers', 'ismahajani', 'iscarian', 'cjkstrokes', 'caucasianalbanian', 'ismende_kikakui', 'thaana', 'ingeneral_punctuation', 'indomino_tiles', 'inkhitansmallscript', 'isold_south_arabian', 'isdogra', 'incjkcompatibilityideographssupplement', 'inarabic_presentation_forms-b', 'iskatakana_phonetic_extensions', 'istagbanwa', 'yezidi', 'gothic', 'intangutsupplement', 'istamilsupplement', 'incherokeesupplement', 'isahom', 'ismathematical_operators', 'adlam', 'insyriacsupplement', 'insyriac', 'mahajani', 'islineara', 'cjkcompatibilityideographssupplement', 'lycian', 'inlatinextended-a', 'isbyzantinemusicalsymbols', 'devanagari_extended', 'inbuginese', 'ismiscellaneoussymbolsandpictographs', 'taixuanjingsymbols', 'iscombining_diacritical_marks', 'iselymaic', 'iscjk_compatibility_ideographs_supplement', 'isoriya', 'khmer', 'ishangulcompatibilityjamo', 'khitansmallscript', 'inyi_radicals', 'isnewtailue', 'iscjk_compatibility_ideographs', 'miscellaneoussymbolsandpictographs', 'mahjongtiles', 'isenclosed_alphanumerics', 'arabicextended-c', 'inmeroitichieroglyphs', 'oldhungarian', 'lisusupplement', 'isarabic_presentation_forms-a', 'cjk_unified_ideographs_extension_f', 'insuperscripts_and_subscripts', 'inideographic_description_characters', 'newa', 'invariation_selectors_supplement', 'combininghalfmarks', 'iscontrolpictures', 'gunjalagondi', 'incombining_diacritical_marks_for_symbols', 'ethiopicextended-a', 'insupplementaryprivateusearea-a', 'inlatinextended-d', 'issupplementalsymbolsandpictographs', 'inlatinextended-b', 'inlatinextended-c', 'incham', 'iskannada', 'ismiscellaneous_symbols_and_arrows', 'issyriac_supplement', 'cuneiform_numbers_and_punctuation', 'geometric_shapes_extended', 'armenian', 'inlepcha', 'inhalfwidth_and_fullwidth_forms', 'istamil_supplement', 'innko', 'syloti_nagri', 'inunified_canadian_aboriginal_syllabics_extended', 'issymbolsforlegacycomputing', 'iskaktovik_numerals', 'isyijinghexagramsymbols', 'isideographicdescriptioncharacters', 'inbox_drawing', 'georgian', 'khudawadi', 'cherokeesupplement', 'isolditalic', 'enclosed_alphanumeric_supplement', 'rumi_numeral_symbols', 'inhanguljamoextended-a', 'iskhmersymbols', 'elymaic', 'meeteimayekextensions', 'geometric_shapes', 'isgeorgiansupplement', 'insoyombo', 'takri', 'arabicpresentationforms-b', 'innagmundari', 'issupplementalarrows-a', 'inarabicpresentationforms-b', 'kangxi_radicals', 'issupplementalarrows-c', 'cherokee', 'incyrillicextended-b', 'inspecials', 'iscurrencysymbols', 'isrunic', 'isbamum', 'isbamum_supplement', 'soyombo', 'commonindicnumberforms', 'supplementalarrows-a', 'kangxiradicals', 'kanaextended-a', 'issupplementaryprivateusearea-a', 'suttonsignwriting', 'supplementalarrows-b', 'devanagariextended-a', 'old_north_arabian', 'iskaithi', 'tifinagh', 'supplemental_arrows-a', 'isyiradicals', 'inprivateusearea', 'inlinear_a', 'intelugu', 'chess_symbols', 'inznamennymusicalnotation', 'isbrahmi', 'inenclosed_ideographic_supplement', 'iskhitansmallscript', 'anatolian_hieroglyphs', 'iscjkcompatibilityforms', 'zanabazar_square', 'isinscriptionalparthian', 'istangutsupplement', 'arabicextended-a', 'innumberforms', 'isenclosed_cjk_letters_and_months', 'inlatinextendedadditional', 'ottomansiyaqnumbers', 'indivesakuru', 'ismathematicaloperators', 'ischorasmian', 'iscounting_rod_numerals', 'inmeeteimayekextensions', 'supplemental_mathematical_operators', 'isdingbats', 'ornamentaldingbats', 'ismiscellaneous_symbols_and_pictographs', 'inenclosedcjklettersandmonths', 'lisu_supplement', 'isethiopic_extended', 'inruminumeralsymbols', 'isshorthand_format_controls', 'inold_sogdian', 'inmiscellaneousmathematicalsymbols-a', 'aegean_numbers', 'ideographic_description_characters', 'isipaextensions', 'inpahawh_hmong', 'insuperscriptsandsubscripts', 'intransport_and_map_symbols', 'latinextended-b', 'limbu', 'iszanabazar_square', 'islatinextended-f', 'latinextended-c', 'issupplemental_arrows-c', 'isancientgreeknumbers', 'tagbanwa', 'latinextended-d', 'inmodifier_tone_letters', 'intangut_components', 'iskatakanaphoneticextensions', 'inlimbu', 'inethiopic_supplement', 'ishiragana', 'iskanbun', 'low_surrogates', 'private_use_area', 'isearlydynasticcuneiform', 'inhanunoo', 'kawi', 'ishighprivateusesurrogates', 'inmultani', 'isarabic_mathematical_alphabetic_symbols', 'insuttonsignwriting', 'small_form_variants', 'tai_xuan_jing_symbols', 'insupplementalarrows-b', 'isoptical_character_recognition', 'inlatin_extended-c', 'ismeetei_mayek_extensions', 'inlatin_extended-a', 'inlatin_extended-f', 'currency_symbols', 'issupplementaryprivateusearea-b', 'inkatakana_phonetic_extensions', 'myanmarextended-a', 'inarabic_presentation_forms-a', 'inyi_syllables', 'inphags-pa', 'isosmanya', 'incjk_compatibility_ideographs', 'inmathematicaloperators', 'isvithkuqi', 'cjk_unified_ideographs_extension_g', 'greekextended', 'cjk_unified_ideographs_extension_e', 'cjk_compatibility', 'inlao', 'iskhmer_symbols', 'cjk_unified_ideographs_extension_a', 'inpsalterpahlavi', 'coptic', 'isold_hungarian', 'inalphabetic_presentation_forms', 'cjk_compatibility_ideographs', 'malayalam', 'inavestan', 'cjkcompatibility', 'incjkunifiedideographs', 'islinear_b_ideograms', 'isancientgreekmusicalnotation', 'ingujarati', 'arabic_extended-a', 'isbatak', 'cjksymbolsandpunctuation', 'ismeroitic_cursive', 'inwancho', 'enclosed_ideographic_supplement', 'isbhaiksuki', 'palmyrene', 'cyrillic', 'variationselectorssupplement', 'isol_chiki', 'issamaritan', 'ideographicdescriptioncharacters', 'geometricshapesextended', 'ishangulsyllables', 'istibetan', 'isspacingmodifierletters', 'siddham', 'duployan', 'indominotiles', 'nag_mundari', 'isduployan', 'islatinextended-c', 'islatin_extended-a', 'isancient_greek_musical_notation', 'inmiscellaneoustechnical', 'isnandinagari', 'inelbasan', 'islatin_extended-f', 'inkana_supplement', 'isphoenician', 'modi', 'latin_extended-a', 'egyptianhieroglyphformatcontrols', 'phonetic_extensions_supplement', 'isgreekextended', 'issharada', 'latin_extended_additional', 'olditalic', 'insupplementary_private_use_area-a', 'insupplementary_private_use_area-b', 'ethiopicsupplement', 'iscuneiformnumbersandpunctuation', 'ingreek_extended', 'inoldturkic', 'aegeannumbers', 'mathematicaloperators', 'intangut_supplement', 'inpaucinhau', 'alchemicalsymbols', 'inanatolian_hieroglyphs', 'phonetic_extensions', 'insyloti_nagri', 'iskhitan_small_script', 'hiragana', 'old_uyghur', 'isdevanagariextended-a', 'inadlam', 'ispsalterpahlavi', 'inhigh_private_use_surrogates', 'inchakma', 'inkanaextended-a', 'issora_sompeng', 'inkanaextended-b', 'isogham', 'issupplemental_symbols_and_pictographs', 'insymbols_and_pictographs_extended-a', 'iscyrillicextended-b', 'inlow_surrogates', 'inlinear_b_ideograms', 'islinear_b_syllabary', 'istaiviet', 'inimperial_aramaic', 'oldsogdian', 'incypriotsyllabary', 'batak', 'variation_selectors_supplement', 'kaithi', 'isruminumeralsymbols', 'ismeroitic_hieroglyphs', 'ischakma', 'isarabic_presentation_forms-b', 'isgeorgianextended', 'iscjkunifiedideographsextensionh', 'issylotinagri', 'inkatakanaphoneticextensions', 'isethiopic_extended-a', 'inenclosedalphanumericsupplement', 'incypro-minoan', 'isethiopic_extended-b', 'iscjk_compatibility', 'isarabic_extended-c', 'opticalcharacterrecognition', 'cjk_unified_ideographs_extension_b', 'old_hungarian', 'cjk_unified_ideographs_extension_d', 'inenclosed_cjk_letters_and_months', 'buhid', 'islatin_extended-e', 'combining_diacritical_marks_for_symbols', 'brahmi', 'sinhala', 'makasar', 'inethiopic', 'inarmenian', 'ogham', 'sinhala_archaic_numbers', 'arabicmathematicalalphabeticsymbols', 'istangutcomponents', 'ingunjalagondi', 'greek_and_coptic', 'isrumi_numeral_symbols', 'enclosedcjklettersandmonths', 'ismiscellaneousmathematicalsymbols-b', 'tagalog', 'islinearbideograms', 'ingeorgian_extended', 'cjk_radicals_supplement', 'oldnortharabian', 'javanese', 'ismendekikakui', 'carian', 'nyiakeng_puachue_hmong', 'transport_and_map_symbols', 'invertical_forms', 'ishalfwidth_and_fullwidth_forms', 'islinear_a', 'iscyrillic_extended-a', 'isbopomofo', 'cyrillicextended-b', 'insupplemental_arrows-b', 'insupplemental_arrows-a', 'isboxdrawing', 'inlisusupplement', 'isdives_akuru', 'playingcards', 'iscjkunifiedideographs', 'generalpunctuation', 'inhangulcompatibilityjamo', 'isold_permic', 'inolchiki', 'islatinextended-d', 'istai_xuan_jing_symbols', 'isarabicextended-b', 'islepcha', 'myanmarextended-b', 'osage', 'isarabicextended-c', 'isarabicextended-a', 'shavian', 'iscontrol_pictures', 'smallformvariants', 'isbyzantine_musical_symbols', 'ingeneralpunctuation' ); PUCUUnicodeBlockLowerCaseHashMapValueBits=16; PUCUUnicodeBlockLowerCaseHashMapValues:array[0..1613] of word=( 102, 99, 304, 63, 113, 150, 240, 291, 52, 272, 164, 11, 201, 305, 227, 168, 7, 296, 130, 288, 104, 63, 291, 234, 261, 125, 286, 144, 40, 277, 148, 128, 166, 65, 256, 264, 242, 206, 53, 182, 151, 164, 107, 275, 280, 313, 76, 87, 235, 95, 99, 95, 75, 83, 206, 195, 300, 257, 237, 101, 234, 284, 33, 320, 258, 230, 159, 313, 91, 94, 183, 284, 274, 236, 154, 123, 323, 252, 278, 1, 239, 103, 196, 149, 2, 160, 214, 3, 272, 146, 42, 170, 67, 280, 6, 231, 134, 188, 227, 142, 219, 189, 159, 174, 283, 198, 320, 280, 49, 111, 9, 161, 53, 59, 104, 281, 121, 183, 282, 281, 101, 41, 56, 326, 239, 154, 152, 120, 306, 25, 217, 175, 15, 279, 32, 245, 225, 254, 62, 113, 322, 241, 155, 255, 275, 159, 224, 156, 244, 147, 111, 69, 8, 39, 227, 178, 166, 122, 287, 244, 78, 142, 307, 312, 206, 279, 134, 300, 165, 129, 307, 288, 139, 26, 132, 243, 80, 114, 83, 210, 63, 60, 77, 288, 286, 186, 135, 257, 95, 90, 178, 146, 212, 255, 237, 136, 12, 30, 129, 55, 288, 144, 102, 63, 49, 287, 103, 270, 57, 221, 145, 127, 127, 24, 172, 157, 221, 241, 293, 154, 150, 233, 90, 310, 78, 66, 308, 202, 141, 177, 84, 245, 243, 137, 173, 133, 195, 296, 307, 116, 23, 292, 56, 94, 231, 288, 122, 221, 289, 264, 83, 277, 313, 122, 86, 302, 295, 283, 306, 191, 202, 292, 19, 251, 65, 37, 250, 230, 254, 55, 278, 185, 260, 188, 239, 85, 148, 239, 154, 157, 34, 86, 130, 284, 285, 47, 252, 39, 29, 63, 94, 141, 177, 253, 249, 91, 311, 235, 217, 109, 311, 250, 58, 17, 175, 266, 203, 113, 71, 305, 133, 225, 22, 221, 44, 270, 181, 31, 251, 57, 11, 143, 14, 24, 145, 162, 197, 172, 143, 148, 140, 223, 66, 290, 148, 297, 128, 94, 265, 201, 136, 76, 314, 123, 62, 46, 206, 147, 85, 102, 294, 141, 81, 57, 126, 281, 302, 5, 288, 303, 265, 191, 186, 144, 97, 118, 70, 316, 317, 184, 21, 145, 20, 209, 53, 96, 14, 168, 54, 313, 178, 310, 187, 75, 275, 263, 173, 52, 25, 190, 293, 162, 326, 218, 294, 106, 169, 37, 83, 273, 7, 100, 105, 196, 268, 273, 32, 50, 270, 301, 144, 257, 286, 290, 177, 73, 203, 317, 211, 111, 258, 4, 301, 103, 156, 301, 285, 183, 241, 210, 88, 5, 298, 240, 292, 309, 309, 183, 173, 188, 71, 155, 75, 221, 57, 7, 39, 134, 284, 197, 41, 261, 280, 113, 193, 260, 111, 107, 135, 136, 70, 232, 58, 116, 244, 242, 149, 306, 310, 92, 308, 146, 107, 157, 211, 84, 150, 156, 130, 45, 3, 167, 301, 202, 79, 162, 177, 248, 217, 279, 77, 286, 128, 267, 183, 91, 92, 271, 185, 38, 131, 169, 80, 168, 32, 64, 67, 69, 76, 23, 74, 256, 240, 277, 308, 77, 305, 194, 321, 73, 147, 169, 282, 172, 285, 117, 136, 284, 151, 148, 153, 175, 199, 164, 194, 205, 193, 53, 248, 167, 198, 43, 4, 146, 180, 269, 82, 122, 325, 56, 168, 157, 13, 217, 176, 119, 259, 226, 75, 149, 167, 36, 69, 208, 152, 259, 209, 79, 234, 87, 156, 93, 313, 322, 73, 107, 85, 299, 105, 80, 81, 275, 298, 316, 318, 21, 20, 319, 82, 289, 71, 302, 289, 294, 314, 191, 130, 161, 172, 69, 143, 175, 268, 249, 205, 233, 130, 234, 180, 220, 1, 14, 19, 44, 118, 262, 245, 28, 40, 204, 41, 204, 119, 247, 172, 236, 213, 264, 160, 207, 123, 177, 230, 195, 244, 121, 176, 59, 326, 262, 319, 321, 304, 318, 156, 112, 303, 119, 281, 287, 94, 261, 194, 240, 5, 87, 185, 323, 324, 206, 101, 27, 317, 312, 301, 15, 51, 141, 10, 224, 33, 87, 124, 134, 117, 87, 263, 279, 92, 86, 322, 49, 199, 215, 84, 285, 239, 134, 81, 118, 315, 249, 83, 13, 296, 187, 312, 18, 99, 223, 62, 115, 263, 310, 212, 204, 257, 299, 208, 234, 267, 320, 192, 157, 152, 91, 246, 146, 162, 164, 269, 304, 289, 93, 309, 276, 166, 303, 220, 112, 69, 297, 52, 163, 14, 72, 187, 299, 237, 22, 276, 134, 248, 195, 177, 319, 237, 141, 276, 101, 315, 297, 50, 316, 118, 50, 31, 312, 19, 283, 68, 140, 158, 89, 93, 306, 269, 1, 103, 239, 175, 289, 187, 147, 30, 48, 272, 266, 67, 132, 326, 69, 5, 167, 9, 95, 27, 269, 58, 82, 85, 74, 11, 303, 37, 85, 35, 282, 74, 86, 39, 241, 97, 133, 276, 142, 197, 121, 26, 283, 309, 50, 6, 86, 36, 78, 8, 99, 150, 120, 240, 70, 75, 308, 127, 1, 114, 207, 307, 278, 104, 9, 149, 66, 119, 89, 197, 252, 163, 255, 230, 278, 107, 3, 276, 140, 138, 41, 133, 261, 250, 70, 256, 127, 119, 173, 260, 210, 222, 4, 120, 195, 209, 77, 249, 201, 235, 187, 315, 169, 98, 212, 76, 77, 37, 202, 66, 245, 205, 174, 37, 212, 12, 230, 271, 16, 246, 17, 299, 312, 254, 85, 190, 75, 149, 210, 179, 202, 110, 255, 234, 299, 259, 296, 138, 322, 255, 133, 318, 104, 272, 59, 66, 6, 54, 197, 127, 65, 160, 281, 154, 176, 152, 182, 165, 265, 91, 315, 266, 68, 318, 254, 300, 158, 68, 151, 260, 253, 244, 20, 325, 6, 235, 204, 204, 198, 297, 143, 20, 129, 124, 168, 20, 273, 105, 151, 105, 189, 321, 319, 314, 158, 27, 131, 229, 252, 188, 200, 139, 82, 196, 166, 167, 283, 9, 126, 226, 118, 228, 184, 293, 160, 316, 34, 315, 222, 317, 229, 293, 247, 52, 54, 65, 322, 80, 314, 290, 201, 121, 99, 117, 200, 232, 262, 311, 146, 114, 18, 48, 9, 28, 35, 135, 72, 6, 251, 286, 24, 87, 110, 308, 3, 192, 14, 9, 321, 101, 108, 98, 270, 203, 266, 102, 280, 147, 75, 125, 292, 74, 159, 68, 56, 145, 156, 53, 222, 269, 5, 1, 257, 41, 95, 201, 325, 43, 300, 277, 198, 140, 18, 103, 138, 261, 114, 76, 169, 14, 93, 89, 256, 216, 113, 298, 278, 171, 89, 323, 260, 75, 93, 153, 96, 287, 228, 159, 64, 65, 7, 188, 244, 16, 321, 169, 264, 41, 45, 4, 225, 170, 62, 252, 136, 202, 158, 21, 125, 102, 284, 258, 271, 281, 316, 203, 251, 272, 293, 148, 324, 181, 217, 22, 104, 213, 89, 164, 12, 155, 318, 56, 29, 302, 19, 316, 91, 115, 138, 137, 64, 35, 140, 306, 67, 296, 296, 68, 243, 2, 212, 260, 66, 144, 294, 286, 186, 113, 109, 264, 37, 132, 109, 297, 65, 96, 72, 211, 206, 168, 75, 319, 121, 317, 324, 100, 23, 88, 190, 270, 80, 311, 56, 84, 264, 254, 254, 230, 238, 57, 153, 46, 138, 158, 63, 278, 314, 149, 57, 275, 103, 54, 287, 75, 124, 76, 73, 193, 106, 271, 50, 114, 165, 199, 268, 67, 1, 52, 155, 272, 38, 179, 64, 287, 194, 61, 4, 52, 298, 120, 81, 7, 172, 219, 171, 114, 183, 294, 15, 72, 300, 267, 197, 233, 320, 161, 115, 47, 208, 174, 268, 249, 145, 232, 79, 295, 19, 13, 219, 185, 320, 170, 2, 277, 133, 55, 304, 282, 6, 214, 320, 26, 48, 111, 267, 122, 53, 153, 304, 299, 83, 209, 194, 205, 248, 155, 319, 73, 106, 226, 324, 158, 81, 245, 75, 143, 325, 128, 311, 3, 97, 139, 29, 95, 19, 251, 309, 10, 61, 162, 249, 16, 129, 50, 314, 280, 119, 106, 84, 36, 224, 145, 173, 302, 207, 136, 54, 214, 142, 86, 99, 238, 231, 161, 292, 90, 161, 105, 310, 40, 125, 163, 74, 43, 126, 257, 238, 130, 90, 105, 271, 325, 285, 92, 241, 198, 216, 100, 90, 122, 152, 185, 28, 312, 276, 215, 303, 267, 256, 159, 237, 201, 268, 21, 77, 116, 70, 297, 235, 79, 213, 283, 142, 94, 88, 306, 304, 116, 248, 101, 207, 275, 210, 89, 166, 106, 4, 261, 73, 307, 3, 51, 237, 186, 97, 310, 167, 47, 128, 127, 266, 115, 51, 39, 108, 112, 151, 152, 252, 45, 247, 150, 223, 298, 285, 160, 282, 92, 82, 97, 142, 2, 186, 74, 326, 115, 140, 155, 121, 131, 180, 153, 79, 184, 321, 71, 318, 117, 33, 54, 118, 203, 98, 205, 154, 153, 30, 200, 117, 120, 165, 279, 25, 21, 60, 107, 195, 291, 303, 242, 189, 8, 324, 62, 17, 106, 309, 147, 34, 5, 228, 274, 300, 292, 274, 97, 2, 279, 80, 236, 182, 186, 270, 192, 229, 2, 255, 68, 71, 220, 70, 173, 325, 326, 39, 251, 71, 204, 166, 79, 268, 240, 308, 256, 67, 129, 267, 108, 212, 241, 295, 203, 150, 218, 271, 217, 269, 42, 311, 313, 125, 151, 165, 164, 141, 188, 210, 187, 60, 324, 216, 207, 194, 218, 161, 64, 322, 129, 115, 143, 302, 253, 293, 117, 209, 82, 315, 205, 317, 116, 46, 144, 75, 215, 31, 246, 38, 10, 42, 221, 298, 266, 245, 7, 207, 116, 93, 44, 165, 64, 104, 198, 137, 294, 171, 289, 307, 157, 162, 185, 102, 110, 125, 92, 90, 84, 248, 235, 301, 120, 72, 111, 175, 62, 128, 282, 20, 61, 138, 181, 209, 21, 179, 81, 160, 277, 72 ); const PUCUUnicodeAdditionalBlockLowerCaseHashMapSeedSize=24; PUCUUnicodeAdditionalBlockLowerCaseHashMapValueSize=24; PUCUUnicodeAdditionalBlockLowerCaseHashMapSize=24; PUCUUnicodeAdditionalBlockLowerCaseHashMapSeedBits=8; PUCUUnicodeAdditionalBlockLowerCaseHashMapSeeds:array[0..23] of shortint=( 0, 1, -23, 0, 0, 1, 1, -21, -17, -15, -13, -12, 2, -10, 0, -9, -7, -5, -3, 1, -1, 0, 6, 0 ); PUCUUnicodeAdditionalBlockLowerCaseHashMapKeys:array[0..23] of TPUCURawByteString=( 'isxmld', '_xmld', 'is_xmlw', 'inxmli', 'in_xmlc', 'is_xmli', '_xmli', 'isxmlc', 'xmlc', 'in_xmlw', 'inxmlc', 'in_xmli', 'inxmlw', 'inxmld', 'isxmli', 'in_xmld', 'xmld', 'xmli', 'is_xmlc', '_xmlw', 'isxmlw', 'is_xmld', '_xmlc', 'xmlw' ); PUCUUnicodeAdditionalBlockLowerCaseHashMapValueBits=8; PUCUUnicodeAdditionalBlockLowerCaseHashMapValues:array[0..23] of byte=( 1, 1, 3, 2, 0, 2, 2, 0, 0, 3, 0, 2, 3, 1, 2, 1, 1, 2, 0, 3, 3, 1, 0, 3 ); //0 1 2 3 4 5 6 7 8 9 a b c d e f const PUCUUTF8CharSteps:array[TPUCURawByteChar] of byte=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 2 1,1,1,1,1,1,1,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, // 4 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 5 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 6 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 7 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 8 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 9 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // a 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // b 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // c 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // d 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, // e 4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1); // f //0 1 2 3 4 5 6 7 8 9 a b c d e f const PUCUUTF8DFACharClasses:array[TPUCURawByteChar] of byte=($00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00, $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01, $09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09,$09, $07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07, $07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07,$07, $08,$08,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02, $02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02, $0a,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$04,$03,$03, $0b,$06,$06,$06,$05,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08,$08); const PUCUUTF8DFATransitions:array[byte] of byte=($00,$10,$20,$30,$50,$80,$70,$10,$10,$10,$40,$60,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$00,$10,$10,$10,$10,$10,$00,$10,$00,$10,$10,$10,$10,$10,$10, $10,$20,$10,$10,$10,$10,$10,$20,$10,$20,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$20,$10,$10,$10,$10,$10,$10,$10,$10, $10,$20,$10,$10,$10,$10,$10,$10,$10,$20,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$30,$10,$30,$10,$10,$10,$10,$10,$10, $10,$30,$10,$10,$10,$10,$10,$30,$10,$30,$10,$10,$10,$10,$10,$10, $10,$30,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10, $10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10); type PPUCUCharSetCodePage=^TPUCUCharSetCodePage; TPUCUCharSetCodePage=array[0..255] of longword; PPUCUCharSetSubSubCodePages=^TPUCUCharSetSubSubCodePages; TPUCUCharSetSubSubCodePages=array[0..15] of PPUCUCharSetCodePage; PPUCUCharSetSubCodePages=^TPUCUCharSetSubCodePages; TPUCUCharSetSubCodePages=array[0..15] of PPUCUCharSetSubSubCodePages; PPUCUCharSetCodePages=^TPUCUCharSetCodePages; TPUCUCharSetCodePages=array[0..255] of PPUCUCharSetSubCodePages; PPUCUCharSetSubSubCodePageNames=^TPUCUCharSetSubSubCodePageNames; TPUCUCharSetSubSubCodePageNames=array[0..15] of ansistring; PPUCUCharSetSubCodePageNames=^TPUCUCharSetSubCodePageNames; TPUCUCharSetSubCodePageNames=array[0..15] of PPUCUCharSetSubSubCodePageNames; PPUCUCharSetCodePageNames=^TPUCUCharSetCodePageNames; TPUCUCharSetCodePageNames=array[0..255] of PPUCUCharSetSubCodePageNames; const PUCUCharSetCodePage37:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $0000005e,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005b,$0000005d,$000000af,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage437:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$000000ec,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000f2,$000000fb,$000000f9, $000000ff,$000000d6,$000000dc,$000000a2,$000000a3,$000000a5,$000020a7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$00002310,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage500:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage708:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00002502,$00002524,$000000e9,$000000e2,$00002561,$000000e0,$00002562,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$00002556,$00002555,$00002563, $00002551,$00002557,$0000255d,$000000f4,$0000255c,$0000255b,$000000fb,$000000f9, $00002510,$00002514,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000f8c1,$00002534,$0000252c,$0000251c,$000000a4,$00002500,$0000253c,$0000255e, $0000255f,$0000255a,$00002554,$00002569,$0000060c,$00002566,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002560,$00002550,$0000256c,$00002567,$00002568, $00002564,$00002565,$00002559,$0000061b,$00002558,$00002552,$00002553,$0000061f, $0000256b,$00000621,$00000622,$00000623,$00000624,$00000625,$00000626,$00000627, $00000628,$00000629,$0000062a,$0000062b,$0000062c,$0000062d,$0000062e,$0000062f, $00000630,$00000631,$00000632,$00000633,$00000634,$00000635,$00000636,$00000637, $00000638,$00000639,$0000063a,$00002588,$00002584,$0000258c,$00002590,$00002580, $00000640,$00000641,$00000642,$00000643,$00000644,$00000645,$00000646,$00000647, $00000648,$00000649,$0000064a,$0000064b,$0000064c,$0000064d,$0000064e,$0000064f, $00000650,$00000651,$00000652,$0000f8c2,$0000f8c3,$0000f8c4,$0000f8c5,$0000f8c6, $0000f8c7,$0000256a,$00002518,$0000250c,$000000b5,$000000a3,$000025a0,$000000a0); const PUCUCharSetCodePage720:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$000000e9,$000000e2,$00000084,$000000e0,$00000086,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$0000008d,$0000008e,$0000008f, $00000090,$00000651,$00000652,$000000f4,$000000a4,$00000640,$000000fb,$000000f9, $00000621,$00000622,$00000623,$00000624,$000000a3,$00000625,$00000626,$00000627, $00000628,$00000629,$0000062a,$0000062b,$0000062c,$0000062d,$0000062e,$0000062f, $00000630,$00000631,$00000632,$00000633,$00000634,$00000635,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $00000636,$00000637,$00000638,$00000639,$0000063a,$00000641,$000000b5,$00000642, $00000643,$00000644,$00000645,$00000646,$00000647,$00000648,$00000649,$0000064a, $00002261,$0000064b,$0000064c,$0000064d,$0000064e,$0000064f,$00000650,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage737:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000391,$00000392,$00000393,$00000394,$00000395,$00000396,$00000397,$00000398, $00000399,$0000039a,$0000039b,$0000039c,$0000039d,$0000039e,$0000039f,$000003a0, $000003a1,$000003a3,$000003a4,$000003a5,$000003a6,$000003a7,$000003a8,$000003a9, $000003b1,$000003b2,$000003b3,$000003b4,$000003b5,$000003b6,$000003b7,$000003b8, $000003b9,$000003ba,$000003bb,$000003bc,$000003bd,$000003be,$000003bf,$000003c0, $000003c1,$000003c3,$000003c2,$000003c4,$000003c5,$000003c6,$000003c7,$000003c8, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003c9,$000003ac,$000003ad,$000003ae,$000003ca,$000003af,$000003cc,$000003cd, $000003cb,$000003ce,$00000386,$00000388,$00000389,$0000038a,$0000038c,$0000038e, $0000038f,$000000b1,$00002265,$00002264,$000003aa,$000003ab,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage775:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000106,$000000fc,$000000e9,$00000101,$000000e4,$00000123,$000000e5,$00000107, $00000142,$00000113,$00000156,$00000157,$0000012b,$00000179,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$0000014d,$000000f6,$00000122,$000000a2,$0000015a, $0000015b,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$000000d7,$000000a4, $00000100,$0000012a,$000000f3,$0000017b,$0000017c,$0000017a,$0000201d,$000000a6, $000000a9,$000000ae,$000000ac,$000000bd,$000000bc,$00000141,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00000104,$0000010c,$00000118, $00000116,$00002563,$00002551,$00002557,$0000255d,$0000012e,$00000160,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$00000172,$0000016a, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$0000017d, $00000105,$0000010d,$00000119,$00000117,$0000012f,$00000161,$00000173,$0000016b, $0000017e,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000000d3,$000000df,$0000014c,$00000143,$000000f5,$000000d5,$000000b5,$00000144, $00000136,$00000137,$0000013b,$0000013c,$00000146,$00000112,$00000145,$00002019, $000000ad,$000000b1,$0000201c,$000000be,$000000b6,$000000a7,$000000f7,$0000201e, $000000b0,$00002219,$000000b7,$000000b9,$000000b3,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage850:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$000000ec,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000f2,$000000fb,$000000f9, $000000ff,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$000000d7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$000000ae,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$000000c1,$000000c2,$000000c0, $000000a9,$00002563,$00002551,$00002557,$0000255d,$000000a2,$000000a5,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$000000e3,$000000c3, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000000a4, $000000f0,$000000d0,$000000ca,$000000cb,$000000c8,$00000131,$000000cd,$000000ce, $000000cf,$00002518,$0000250c,$00002588,$00002584,$000000a6,$000000cc,$00002580, $000000d3,$000000df,$000000d4,$000000d2,$000000f5,$000000d5,$000000b5,$000000fe, $000000de,$000000da,$000000db,$000000d9,$000000fd,$000000dd,$000000af,$000000b4, $000000ad,$000000b1,$00002017,$000000be,$000000b6,$000000a7,$000000f7,$000000b8, $000000b0,$000000a8,$000000b7,$000000b9,$000000b3,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage852:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$0000016f,$00000107,$000000e7, $00000142,$000000eb,$00000150,$00000151,$000000ee,$00000179,$000000c4,$00000106, $000000c9,$00000139,$0000013a,$000000f4,$000000f6,$0000013d,$0000013e,$0000015a, $0000015b,$000000d6,$000000dc,$00000164,$00000165,$00000141,$000000d7,$0000010d, $000000e1,$000000ed,$000000f3,$000000fa,$00000104,$00000105,$0000017d,$0000017e, $00000118,$00000119,$000000ac,$0000017a,$0000010c,$0000015f,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$000000c1,$000000c2,$0000011a, $0000015e,$00002563,$00002551,$00002557,$0000255d,$0000017b,$0000017c,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$00000102,$00000103, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000000a4, $00000111,$00000110,$0000010e,$000000cb,$0000010f,$00000147,$000000cd,$000000ce, $0000011b,$00002518,$0000250c,$00002588,$00002584,$00000162,$0000016e,$00002580, $000000d3,$000000df,$000000d4,$00000143,$00000144,$00000148,$00000160,$00000161, $00000154,$000000da,$00000155,$00000170,$000000fd,$000000dd,$00000163,$000000b4, $000000ad,$000002dd,$000002db,$000002c7,$000002d8,$000000a7,$000000f7,$000000b8, $000000b0,$000000a8,$000002d9,$00000171,$00000158,$00000159,$000025a0,$000000a0); const PUCUCharSetCodePage855:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000452,$00000402,$00000453,$00000403,$00000451,$00000401,$00000454,$00000404, $00000455,$00000405,$00000456,$00000406,$00000457,$00000407,$00000458,$00000408, $00000459,$00000409,$0000045a,$0000040a,$0000045b,$0000040b,$0000045c,$0000040c, $0000045e,$0000040e,$0000045f,$0000040f,$0000044e,$0000042e,$0000044a,$0000042a, $00000430,$00000410,$00000431,$00000411,$00000446,$00000426,$00000434,$00000414, $00000435,$00000415,$00000444,$00000424,$00000433,$00000413,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00000445,$00000425,$00000438, $00000418,$00002563,$00002551,$00002557,$0000255d,$00000439,$00000419,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000043a,$0000041a, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000000a4, $0000043b,$0000041b,$0000043c,$0000041c,$0000043d,$0000041d,$0000043e,$0000041e, $0000043f,$00002518,$0000250c,$00002588,$00002584,$0000041f,$0000044f,$00002580, $0000042f,$00000440,$00000420,$00000441,$00000421,$00000442,$00000422,$00000443, $00000423,$00000436,$00000416,$00000432,$00000412,$0000044c,$0000042c,$00002116, $000000ad,$0000044b,$0000042b,$00000437,$00000417,$00000448,$00000428,$0000044d, $0000042d,$00000449,$00000429,$00000447,$00000427,$000000a7,$000025a0,$000000a0); const PUCUCharSetCodePage857:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$00000131,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000f2,$000000fb,$000000f9, $00000130,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$0000015e,$0000015f, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$0000011e,$0000011f, $000000bf,$000000ae,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$000000c1,$000000c2,$000000c0, $000000a9,$00002563,$00002551,$00002557,$0000255d,$000000a2,$000000a5,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$000000e3,$000000c3, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000000a4, $000000ba,$000000aa,$000000ca,$000000cb,$000000c8,$0000f8bb,$000000cd,$000000ce, $000000cf,$00002518,$0000250c,$00002588,$00002584,$000000a6,$000000cc,$00002580, $000000d3,$000000df,$000000d4,$000000d2,$000000f5,$000000d5,$000000b5,$0000f8bc, $000000d7,$000000da,$000000db,$000000d9,$000000ec,$000000ff,$000000af,$000000b4, $000000ad,$000000b1,$0000f8bd,$000000be,$000000b6,$000000a7,$000000f7,$000000b8, $000000b0,$000000a8,$000000b7,$000000b9,$000000b3,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage858:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$000000ec,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000f2,$000000fb,$000000f9, $000000ff,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$000000d7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$000000ae,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$000000c1,$000000c2,$000000c0, $000000a9,$00002563,$00002551,$00002557,$0000255d,$000000a2,$000000a5,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$000000e3,$000000c3, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000000a4, $000000f0,$000000d0,$000000ca,$000000cb,$000000c8,$000020ac,$000000cd,$000000ce, $000000cf,$00002518,$0000250c,$00002588,$00002584,$000000a6,$000000cc,$00002580, $000000d3,$000000df,$000000d4,$000000d2,$000000f5,$000000d5,$000000b5,$000000fe, $000000de,$000000da,$000000db,$000000d9,$000000fd,$000000dd,$000000af,$000000b4, $000000ad,$000000b1,$00002017,$000000be,$000000b6,$000000a7,$000000f7,$000000b8, $000000b0,$000000a8,$000000b7,$000000b9,$000000b3,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage860:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e3,$000000e0,$000000c1,$000000e7, $000000ea,$000000ca,$000000e8,$000000cd,$000000d4,$000000ec,$000000c3,$000000c2, $000000c9,$000000c0,$000000c8,$000000f4,$000000f5,$000000f2,$000000da,$000000f9, $000000cc,$000000d5,$000000dc,$000000a2,$000000a3,$000000d9,$000020a7,$000000d3, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$000000d2,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage861:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000d0,$000000f0,$000000de,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000fe,$000000fb,$000000dd, $000000fd,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$000020a7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000c1,$000000cd,$000000d3,$000000da, $000000bf,$00002310,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage862:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6,$000005d7, $000005d8,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000005ea,$000000a2,$000000a3,$000000a5,$000020a7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$00002310,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage863:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000c2,$000000e0,$000000b6,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$00002017,$000000c0,$000000a7, $000000c9,$000000c8,$000000ca,$000000f4,$000000cb,$000000cf,$000000fb,$000000f9, $000000a4,$000000d4,$000000dc,$000000a2,$000000a3,$000000d9,$000000db,$00000192, $000000a6,$000000b4,$000000f3,$000000fa,$000000a8,$000000b8,$000000b3,$000000af, $000000ce,$00002310,$000000ac,$000000bd,$000000bc,$000000be,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage864:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000b0,$000000b7,$00002219,$0000221a,$00002592,$00002500,$00002502,$0000253c, $00002524,$0000252c,$0000251c,$00002534,$00002510,$0000250c,$00002514,$00002518, $000003b2,$0000221e,$000003c6,$000000b1,$000000bd,$000000bc,$00002248,$000000ab, $000000bb,$0000fef7,$0000fef8,$0000009b,$0000009c,$0000fefb,$0000fefc,$0000009f, $000000a0,$000000ad,$0000fe82,$000000a3,$000000a4,$0000fe84,$0000f8be,$0000f8bf, $0000fe8e,$0000fe8f,$0000fe95,$0000fe99,$0000060c,$0000fe9d,$0000fea1,$0000fea5, $00000660,$00000661,$00000662,$00000663,$00000664,$00000665,$00000666,$00000667, $00000668,$00000669,$0000fed1,$0000061b,$0000feb1,$0000feb5,$0000feb9,$0000061f, $000000a2,$0000fe80,$0000fe81,$0000fe83,$0000fe85,$0000feca,$0000fe8b,$0000fe8d, $0000fe91,$0000fe93,$0000fe97,$0000fe9b,$0000fe9f,$0000fea3,$0000fea7,$0000fea9, $0000feab,$0000fead,$0000feaf,$0000feb3,$0000feb7,$0000febb,$0000febf,$0000fec1, $0000fec5,$0000fecb,$0000fecf,$000000a6,$000000ac,$000000f7,$000000d7,$0000fec9, $00000640,$0000fed3,$0000fed7,$0000fedb,$0000fedf,$0000fee3,$0000fee7,$0000feeb, $0000feed,$0000feef,$0000fef3,$0000febd,$0000fecc,$0000fece,$0000fecd,$0000fee1, $0000fe7d,$00000651,$0000fee5,$0000fee9,$0000feec,$0000fef0,$0000fef2,$0000fed0, $0000fed5,$0000fef5,$0000fef6,$0000fedd,$0000fed9,$0000fef1,$000025a0,$0000f8c0); const PUCUCharSetCodePage865:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c7,$000000fc,$000000e9,$000000e2,$000000e4,$000000e0,$000000e5,$000000e7, $000000ea,$000000eb,$000000e8,$000000ef,$000000ee,$000000ec,$000000c4,$000000c5, $000000c9,$000000e6,$000000c6,$000000f4,$000000f6,$000000f2,$000000fb,$000000f9, $000000ff,$000000d6,$000000dc,$000000f8,$000000a3,$000000d8,$000020a7,$00000192, $000000e1,$000000ed,$000000f3,$000000fa,$000000f1,$000000d1,$000000aa,$000000ba, $000000bf,$00002310,$000000ac,$000000bd,$000000bc,$000000a1,$000000ab,$000000a4, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $000003b1,$000000df,$00000393,$000003c0,$000003a3,$000003c3,$000000b5,$000003c4, $000003a6,$00000398,$000003a9,$000003b4,$0000221e,$000003c6,$000003b5,$00002229, $00002261,$000000b1,$00002265,$00002264,$00002320,$00002321,$000000f7,$00002248, $000000b0,$00002219,$000000b7,$0000221a,$0000207f,$000000b2,$000025a0,$000000a0); const PUCUCharSetCodePage866:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000410,$00000411,$00000412,$00000413,$00000414,$00000415,$00000416,$00000417, $00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e,$0000041f, $00000420,$00000421,$00000422,$00000423,$00000424,$00000425,$00000426,$00000427, $00000428,$00000429,$0000042a,$0000042b,$0000042c,$0000042d,$0000042e,$0000042f, $00000430,$00000431,$00000432,$00000433,$00000434,$00000435,$00000436,$00000437, $00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $00002591,$00002592,$00002593,$00002502,$00002524,$00002561,$00002562,$00002556, $00002555,$00002563,$00002551,$00002557,$0000255d,$0000255c,$0000255b,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$0000255e,$0000255f, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$00002567, $00002568,$00002564,$00002565,$00002559,$00002558,$00002552,$00002553,$0000256b, $0000256a,$00002518,$0000250c,$00002588,$00002584,$0000258c,$00002590,$00002580, $00000440,$00000441,$00000442,$00000443,$00000444,$00000445,$00000446,$00000447, $00000448,$00000449,$0000044a,$0000044b,$0000044c,$0000044d,$0000044e,$0000044f, $00000401,$00000451,$00000404,$00000454,$00000407,$00000457,$0000040e,$0000045e, $000000b0,$00002219,$000000b7,$0000221a,$00002116,$000000a4,$000025a0,$000000a0); const PUCUCharSetCodePage869:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000386,$00000087, $000000b7,$000000ac,$000000a6,$00002018,$00002019,$00000388,$00002015,$00000389, $0000038a,$000003aa,$0000038c,$00000093,$00000094,$0000038e,$000003ab,$000000a9, $0000038f,$000000b2,$000000b3,$000003ac,$000000a3,$000003ad,$000003ae,$000003af, $000003ca,$00000390,$000003cc,$000003cd,$00000391,$00000392,$00000393,$00000394, $00000395,$00000396,$00000397,$000000bd,$00000398,$00000399,$000000ab,$000000bb, $00002591,$00002592,$00002593,$00002502,$00002524,$0000039a,$0000039b,$0000039c, $0000039d,$00002563,$00002551,$00002557,$0000255d,$0000039e,$0000039f,$00002510, $00002514,$00002534,$0000252c,$0000251c,$00002500,$0000253c,$000003a0,$000003a1, $0000255a,$00002554,$00002569,$00002566,$00002560,$00002550,$0000256c,$000003a3, $000003a4,$000003a5,$000003a6,$000003a7,$000003a8,$000003a9,$000003b1,$000003b2, $000003b3,$00002518,$0000250c,$00002588,$00002584,$000003b4,$000003b5,$00002580, $000003b6,$000003b7,$000003b8,$000003b9,$000003ba,$000003bb,$000003bc,$000003bd, $000003be,$000003bf,$000003c0,$000003c1,$000003c3,$000003c2,$000003c4,$00000384, $000000ad,$000000b1,$000003c5,$000003c6,$000003c7,$000000a7,$000003c8,$00000385, $000000b0,$000000a8,$000003c9,$000003cb,$000003b0,$000003ce,$000025a0,$000000a0); const PUCUCharSetCodePage870:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$00000163,$000000e1,$00000103,$0000010d, $000000e7,$00000107,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$00000119,$000000eb,$0000016f,$000000ed,$000000ee,$0000013e, $0000013a,$000000df,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000002dd,$000000c1,$00000102,$0000010c, $000000c7,$00000106,$0000007c,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000002c7,$000000c9,$00000118,$000000cb,$0000016e,$000000cd,$000000ce,$0000013d, $00000139,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000002d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000015b,$00000148,$00000111,$000000fd,$00000159,$0000015f, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$00000142,$00000144,$00000161,$000000b8,$000002db,$000000a4, $00000105,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000015a,$00000147,$00000110,$000000dd,$00000158,$0000015e, $000002d9,$00000104,$0000017c,$00000162,$0000017b,$000000a7,$0000017e,$0000017a, $0000017d,$00000179,$00000141,$00000143,$00000160,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$00000155,$000000f3,$00000151, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000011a,$00000171,$000000fc,$00000165,$000000fa,$0000011b, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$0000010f,$000000d4,$000000d6,$00000154,$000000d3,$00000150, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000010e,$00000170,$000000dc,$00000164,$000000da,$0000009f); const PUCUCharSetCodePage874:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$00000082,$00000083,$00000084,$00002026,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000e01,$00000e02,$00000e03,$00000e04,$00000e05,$00000e06,$00000e07, $00000e08,$00000e09,$00000e0a,$00000e0b,$00000e0c,$00000e0d,$00000e0e,$00000e0f, $00000e10,$00000e11,$00000e12,$00000e13,$00000e14,$00000e15,$00000e16,$00000e17, $00000e18,$00000e19,$00000e1a,$00000e1b,$00000e1c,$00000e1d,$00000e1e,$00000e1f, $00000e20,$00000e21,$00000e22,$00000e23,$00000e24,$00000e25,$00000e26,$00000e27, $00000e28,$00000e29,$00000e2a,$00000e2b,$00000e2c,$00000e2d,$00000e2e,$00000e2f, $00000e30,$00000e31,$00000e32,$00000e33,$00000e34,$00000e35,$00000e36,$00000e37, $00000e38,$00000e39,$00000e3a,$0000f8c1,$0000f8c2,$0000f8c3,$0000f8c4,$00000e3f, $00000e40,$00000e41,$00000e42,$00000e43,$00000e44,$00000e45,$00000e46,$00000e47, $00000e48,$00000e49,$00000e4a,$00000e4b,$00000e4c,$00000e4d,$00000e4e,$00000e4f, $00000e50,$00000e51,$00000e52,$00000e53,$00000e54,$00000e55,$00000e56,$00000e57, $00000e58,$00000e59,$00000e5a,$00000e5b,$0000f8c5,$0000f8c6,$0000f8c7,$0000f8c8); const PUCUCharSetCodePage875:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$00000391,$00000392,$00000393,$00000394,$00000395,$00000396,$00000397, $00000398,$00000399,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000039a,$0000039b,$0000039c,$0000039d,$0000039e,$0000039f,$000003a0, $000003a1,$000003a3,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000003a4,$000003a5,$000003a6,$000003a7,$000003a8,$000003a9, $000003aa,$000003ab,$0000007c,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000a8,$00000386,$00000388,$00000389,$000000a0,$0000038a,$0000038c,$0000038e, $0000038f,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $00000385,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000003b1,$000003b2,$000003b3,$000003b4,$000003b5,$000003b6, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000003b7,$000003b8,$000003b9,$000003ba,$000003bb,$000003bc, $000000b4,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000003bd,$000003be,$000003bf,$000003c0,$000003c1,$000003c3, $000000a3,$000003ac,$000003ad,$000003ae,$000003ca,$000003af,$000003cc,$000003cd, $000003cb,$000003ce,$000003c2,$000003c4,$000003c5,$000003c6,$000003c7,$000003c8, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000003c9,$00000390,$000003b0,$00002018,$00002015, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b1,$000000bd,$0000001a,$00000387,$00002019,$000000a6, $0000005c,$0000001a,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000a7,$0000001a,$0000001a,$000000ab,$000000ac, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000a9,$0000001a,$0000001a,$000000bb,$0000009f); const PUCUCharSetCodePage1026:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $0000007b,$000000f1,$000000c7,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000011e,$00000130,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $0000005b,$000000d1,$0000015f,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000131,$0000003a,$000000d6,$0000015e,$00000027,$0000003d,$000000dc, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$0000007d,$00000060,$000000a6,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$000000f6,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$0000005d,$00000024,$00000040,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e7,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$0000007e,$000000f2,$000000f3,$000000f5, $0000011f,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000005c,$000000f9,$000000fa,$000000ff, $000000fc,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$00000023,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$00000022,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1047:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$0000000a,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$0000005b,$000000de,$000000ae, $000000ac,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000dd,$000000a8,$000000af,$0000005d,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1140:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $0000005e,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005b,$0000005d,$000000af,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1141:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$0000007b,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000c4,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$0000007e,$000000dc,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$0000005b,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$000000a7,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$000000df,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$00000040,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e4,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000a6,$000000f2,$000000f3,$000000f5, $000000fc,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007d,$000000f9,$000000fa,$000000ff, $000000d6,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$0000005c,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$0000005d,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1142:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$0000007d, $000000e7,$000000f1,$00000023,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000020ac,$000000c5,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$00000024, $000000c7,$000000d1,$000000f8,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000a6,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$000000c6,$000000d8,$00000027,$0000003d,$00000022, $00000040,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$0000007b,$000000b8,$0000005b,$0000005d, $000000b5,$000000fc,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e6,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $000000e5,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007e,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1143:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$0000007b,$000000e0,$000000e1,$000000e3,$0000007d, $000000e7,$000000f1,$000000a7,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$00000060,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000020ac,$000000c5,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$00000023,$000000c0,$000000c1,$000000c3,$00000024, $000000c7,$000000d1,$000000f6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$0000005c,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000e9,$0000003a,$000000c4,$000000d6,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$0000005d, $000000b5,$000000fc,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$0000005b,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e4,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000a6,$000000f2,$000000f3,$000000f5, $000000e5,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007e,$000000f9,$000000fa,$000000ff, $000000c9,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$00000040,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1144:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$0000007b,$000000e1,$000000e3,$000000e5, $0000005c,$000000f1,$000000b0,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000005d,$000000ea,$000000eb,$0000007d,$000000ed,$000000ee,$000000ef, $0000007e,$000000df,$000000e9,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f2,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000f9,$0000003a,$000000a3,$000000a7,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $0000005b,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$000000ec,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$00000023,$000000a5,$000000b7,$000000a9,$00000040,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e0,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000a6,$000000f3,$000000f5, $000000e8,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$00000060,$000000fa,$000000ff, $000000e7,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1145:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000a6,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$00000023,$000000f1,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$000000d1,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$000000a8,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005e,$00000021,$000000af,$0000007e,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1146:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$00000024,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$000000a3,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$000000af,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$0000005b,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005e,$0000005d,$0000007e,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1147:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$00000040,$000000e1,$000000e3,$000000e5, $0000005c,$000000f1,$000000b0,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000007b,$000000ea,$000000eb,$0000007d,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000a7,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f9,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000b5,$0000003a,$000000a3,$000000e0,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $0000005b,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $00000060,$000000a8,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$00000023,$000000a5,$000000b7,$000000a9,$0000005d,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$0000007e,$000000b4,$000000d7, $000000e9,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $000000e8,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000a6,$000000fa,$000000ff, $000000e7,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1148:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000020ac, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1149:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000de,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000c6,$00000024,$0000002a,$00000029,$0000003b,$000000d6, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000f0,$0000003a,$00000023,$000000d0,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$00000060,$000000fd,$0000007b,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$0000007d,$000000b8,$0000005d,$000020ac, $000000b5,$000000f6,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$00000040,$000000dd,$0000005b,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$0000005c,$000000d7, $000000fe,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$0000007e,$000000f2,$000000f3,$000000f5, $000000e6,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $000000b4,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$0000005e,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage1250:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000083,$0000201e,$00002026,$00002020,$00002021, $00000088,$00002030,$00000160,$00002039,$0000015a,$00000164,$0000017d,$00000179, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $00000098,$00002122,$00000161,$0000203a,$0000015b,$00000165,$0000017e,$0000017a, $000000a0,$000002c7,$000002d8,$00000141,$000000a4,$00000104,$000000a6,$000000a7, $000000a8,$000000a9,$0000015e,$000000ab,$000000ac,$000000ad,$000000ae,$0000017b, $000000b0,$000000b1,$000002db,$00000142,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$00000105,$0000015f,$000000bb,$0000013d,$000002dd,$0000013e,$0000017c, $00000154,$000000c1,$000000c2,$00000102,$000000c4,$00000139,$00000106,$000000c7, $0000010c,$000000c9,$00000118,$000000cb,$0000011a,$000000cd,$000000ce,$0000010e, $00000110,$00000143,$00000147,$000000d3,$000000d4,$00000150,$000000d6,$000000d7, $00000158,$0000016e,$000000da,$00000170,$000000dc,$000000dd,$00000162,$000000df, $00000155,$000000e1,$000000e2,$00000103,$000000e4,$0000013a,$00000107,$000000e7, $0000010d,$000000e9,$00000119,$000000eb,$0000011b,$000000ed,$000000ee,$0000010f, $00000111,$00000144,$00000148,$000000f3,$000000f4,$00000151,$000000f6,$000000f7, $00000159,$0000016f,$000000fa,$00000171,$000000fc,$000000fd,$00000163,$000002d9); const PUCUCharSetCodePage1251:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000402,$00000403,$0000201a,$00000453,$0000201e,$00002026,$00002020,$00002021, $000020ac,$00002030,$00000409,$00002039,$0000040a,$0000040c,$0000040b,$0000040f, $00000452,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $00000098,$00002122,$00000459,$0000203a,$0000045a,$0000045c,$0000045b,$0000045f, $000000a0,$0000040e,$0000045e,$00000408,$000000a4,$00000490,$000000a6,$000000a7, $00000401,$000000a9,$00000404,$000000ab,$000000ac,$000000ad,$000000ae,$00000407, $000000b0,$000000b1,$00000406,$00000456,$00000491,$000000b5,$000000b6,$000000b7, $00000451,$00002116,$00000454,$000000bb,$00000458,$00000405,$00000455,$00000457, $00000410,$00000411,$00000412,$00000413,$00000414,$00000415,$00000416,$00000417, $00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e,$0000041f, $00000420,$00000421,$00000422,$00000423,$00000424,$00000425,$00000426,$00000427, $00000428,$00000429,$0000042a,$0000042b,$0000042c,$0000042d,$0000042e,$0000042f, $00000430,$00000431,$00000432,$00000433,$00000434,$00000435,$00000436,$00000437, $00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $00000440,$00000441,$00000442,$00000443,$00000444,$00000445,$00000446,$00000447, $00000448,$00000449,$0000044a,$0000044b,$0000044c,$0000044d,$0000044e,$0000044f); const PUCUCharSetCodePage1252:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $000002c6,$00002030,$00000160,$00002039,$00000152,$0000008d,$0000017d,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $000002dc,$00002122,$00000161,$0000203a,$00000153,$0000009d,$0000017e,$00000178, $000000a0,$000000a1,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000ba,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000000c0,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $000000d0,$000000d1,$000000d2,$000000d3,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$000000dd,$000000de,$000000df, $000000e0,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $000000f0,$000000f1,$000000f2,$000000f3,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$000000fd,$000000fe,$000000ff); const PUCUCharSetCodePage1253:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $00000088,$00002030,$0000008a,$00002039,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $00000098,$00002122,$0000009a,$0000203a,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000385,$00000386,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$0000f8f9,$000000ab,$000000ac,$000000ad,$000000ae,$00002015, $000000b0,$000000b1,$000000b2,$000000b3,$00000384,$000000b5,$000000b6,$000000b7, $00000388,$00000389,$0000038a,$000000bb,$0000038c,$000000bd,$0000038e,$0000038f, $00000390,$00000391,$00000392,$00000393,$00000394,$00000395,$00000396,$00000397, $00000398,$00000399,$0000039a,$0000039b,$0000039c,$0000039d,$0000039e,$0000039f, $000003a0,$000003a1,$0000f8fa,$000003a3,$000003a4,$000003a5,$000003a6,$000003a7, $000003a8,$000003a9,$000003aa,$000003ab,$000003ac,$000003ad,$000003ae,$000003af, $000003b0,$000003b1,$000003b2,$000003b3,$000003b4,$000003b5,$000003b6,$000003b7, $000003b8,$000003b9,$000003ba,$000003bb,$000003bc,$000003bd,$000003be,$000003bf, $000003c0,$000003c1,$000003c2,$000003c3,$000003c4,$000003c5,$000003c6,$000003c7, $000003c8,$000003c9,$000003ca,$000003cb,$000003cc,$000003cd,$000003ce,$0000f8fb); const PUCUCharSetCodePage1254:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $000002c6,$00002030,$00000160,$00002039,$00000152,$0000008d,$0000008e,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $000002dc,$00002122,$00000161,$0000203a,$00000153,$0000009d,$0000009e,$00000178, $000000a0,$000000a1,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000ba,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000000c0,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $0000011e,$000000d1,$000000d2,$000000d3,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$00000130,$0000015e,$000000df, $000000e0,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $0000011f,$000000f1,$000000f2,$000000f3,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$00000131,$0000015f,$000000ff); const PUCUCharSetCodePage1255:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $000002c6,$00002030,$0000008a,$00002039,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $000002dc,$00002122,$0000009a,$0000203a,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$000000a1,$000000a2,$000000a3,$000020aa,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000d7,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000f7,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000005b0,$000005b1,$000005b2,$000005b3,$000005b4,$000005b5,$000005b6,$000005b7, $000005b8,$000005b9,$000005ba,$000005bb,$000005bc,$000005bd,$000005be,$000005bf, $000005c0,$000005c1,$000005c2,$000005c3,$000005f0,$000005f1,$000005f2,$000005f3, $000005f4,$0000f88d,$0000f88e,$0000f88f,$0000f890,$0000f891,$0000f892,$0000f893, $000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6,$000005d7, $000005d8,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000005ea,$0000f894,$0000f895,$0000200e,$0000200f,$0000f896); const PUCUCharSetCodePage1256:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$0000067e,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $000002c6,$00002030,$00000679,$00002039,$00000152,$00000686,$00000698,$00000688, $000006af,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $000006a9,$00002122,$00000691,$0000203a,$00000153,$0000200c,$0000200d,$000006ba, $000000a0,$0000060c,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000006be,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$0000061b,$000000bb,$000000bc,$000000bd,$000000be,$0000061f, $000006c1,$00000621,$00000622,$00000623,$00000624,$00000625,$00000626,$00000627, $00000628,$00000629,$0000062a,$0000062b,$0000062c,$0000062d,$0000062e,$0000062f, $00000630,$00000631,$00000632,$00000633,$00000634,$00000635,$00000636,$000000d7, $00000637,$00000638,$00000639,$0000063a,$00000640,$00000641,$00000642,$00000643, $000000e0,$00000644,$000000e2,$00000645,$00000646,$00000647,$00000648,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$00000649,$0000064a,$000000ee,$000000ef, $0000064b,$0000064c,$0000064d,$0000064e,$000000f4,$0000064f,$00000650,$000000f7, $00000651,$000000f9,$00000652,$000000fb,$000000fc,$0000200e,$0000200f,$000006d2); const PUCUCharSetCodePage1257:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000083,$0000201e,$00002026,$00002020,$00002021, $00000088,$00002030,$0000008a,$00002039,$0000008c,$000000a8,$000002c7,$000000b8, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $00000098,$00002122,$0000009a,$0000203a,$0000009c,$000000af,$000002db,$0000009f, $000000a0,$0000f8fc,$000000a2,$000000a3,$000000a4,$0000f8fd,$000000a6,$000000a7, $000000d8,$000000a9,$00000156,$000000ab,$000000ac,$000000ad,$000000ae,$000000c6, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000f8,$000000b9,$00000157,$000000bb,$000000bc,$000000bd,$000000be,$000000e6, $00000104,$0000012e,$00000100,$00000106,$000000c4,$000000c5,$00000118,$00000112, $0000010c,$000000c9,$00000179,$00000116,$00000122,$00000136,$0000012a,$0000013b, $00000160,$00000143,$00000145,$000000d3,$0000014c,$000000d5,$000000d6,$000000d7, $00000172,$00000141,$0000015a,$0000016a,$000000dc,$0000017b,$0000017d,$000000df, $00000105,$0000012f,$00000101,$00000107,$000000e4,$000000e5,$00000119,$00000113, $0000010d,$000000e9,$0000017a,$00000117,$00000123,$00000137,$0000012b,$0000013c, $00000161,$00000144,$00000146,$000000f3,$0000014d,$000000f5,$000000f6,$000000f7, $00000173,$00000142,$0000015b,$0000016b,$000000fc,$0000017c,$0000017e,$000002d9); const PUCUCharSetCodePage1258:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000020ac,$00000081,$0000201a,$00000192,$0000201e,$00002026,$00002020,$00002021, $000002c6,$00002030,$0000008a,$00002039,$00000152,$0000008d,$0000008e,$0000008f, $00000090,$00002018,$00002019,$0000201c,$0000201d,$00002022,$00002013,$00002014, $000002dc,$00002122,$0000009a,$0000203a,$00000153,$0000009d,$0000009e,$00000178, $000000a0,$000000a1,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000ba,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000000c0,$000000c1,$000000c2,$00000102,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$00000300,$000000cd,$000000ce,$000000cf, $00000110,$000000d1,$00000309,$000000d3,$000000d4,$000001a0,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$000001af,$00000303,$000000df, $000000e0,$000000e1,$000000e2,$00000103,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$00000301,$000000ed,$000000ee,$000000ef, $00000111,$000000f1,$00000323,$000000f3,$000000f4,$000001a1,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$000001b0,$000020ab,$000000ff); const PUCUCharSetCodePage10000:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $00002020,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$000000a9,$00002122,$000000b4,$000000a8,$00002260,$000000c6,$000000d8, $0000221e,$000000b1,$00002264,$00002265,$000000a5,$000000b5,$00002202,$00002211, $0000220f,$000003c0,$0000222b,$000000aa,$000000ba,$00002126,$000000e6,$000000f8, $000000bf,$000000a1,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$000000c0,$000000c3,$000000d5,$00000152,$00000153, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $000000ff,$00000178,$00002044,$000020ac,$00002039,$0000203a,$0000fb01,$0000fb02, $00002021,$000000b7,$0000201a,$0000201e,$00002030,$000000c2,$000000ca,$000000c1, $000000cb,$000000c8,$000000cd,$000000ce,$000000cf,$000000cc,$000000d3,$000000d4, $0000f8ff,$000000d2,$000000da,$000000db,$000000d9,$00000131,$000002c6,$000002dc, $000000af,$000002d8,$000002d9,$000002da,$000000b8,$000002dd,$000002db,$000002c7); const PUCUCharSetCodePage10004:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000a0,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000006ba,$000000ab,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$00002026,$000000ee,$000000ef,$000000f1,$000000f3, $000000bb,$000000f4,$000000f6,$000000f7,$000000fa,$000000f9,$000000fb,$000000fc, $0000f827,$0000f828,$0000f829,$0000f82a,$0000f82b,$0000066a,$0000f82c,$0000f82d, $0000f82e,$0000f82f,$0000f830,$0000f831,$0000060c,$0000f832,$0000f833,$0000f834, $00000660,$00000661,$00000662,$00000663,$00000664,$00000665,$00000666,$00000667, $00000668,$00000669,$0000f835,$0000061b,$0000f836,$0000f837,$0000f838,$0000061f, $0000066d,$00000621,$00000622,$00000623,$00000624,$00000625,$00000626,$00000627, $00000628,$00000629,$0000062a,$0000062b,$0000062c,$0000062d,$0000062e,$0000062f, $00000630,$00000631,$00000632,$00000633,$00000634,$00000635,$00000636,$00000637, $00000638,$00000639,$0000063a,$0000f839,$0000f83a,$0000f83b,$0000f83c,$0000f83d, $00000640,$00000641,$00000642,$00000643,$00000644,$00000645,$00000646,$00000647, $00000648,$00000649,$0000064a,$0000064b,$0000064c,$0000064d,$0000064e,$0000064f, $00000650,$00000651,$00000652,$0000067e,$00000679,$00000686,$000006d5,$000006a4, $000006af,$00000688,$00000691,$0000f83e,$0000f83f,$0000f840,$00000698,$000006d2); const PUCUCharSetCodePage10005:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $0000f7fc,$0000f7fd,$0000f7fe,$0000f7ff,$000000a4,$0000f800,$000020aa,$0000f801, $0000f802,$0000f803,$0000f804,$0000f805,$0000f806,$0000f807,$0000f808,$0000f809, $0000f80a,$0000f80b,$0000f80c,$0000f80d,$0000f80e,$0000f80f,$0000f810,$0000f811, $0000f812,$0000f813,$0000f814,$0000f815,$0000f816,$0000f817,$0000f818,$0000f819, $0000f81a,$0000201e,$0000f81b,$0000f81c,$0000f81d,$000005bd,$000005bc,$0000f81e, $0000f81f,$00002026,$000000a0,$000005b8,$000005b7,$000005b5,$000005b6,$000005b4, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$0000f820,$0000f821, $000005be,$000005b0,$000005b2,$000005b1,$000005bb,$000005c1,$000005b8,$000005b3, $000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6,$000005d7, $000005d8,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000005ea,$0000f822,$0000f823,$0000f824,$0000f825,$0000f826); const PUCUCharSetCodePage10006:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000b9,$000000b2,$000000c9,$000000b3,$000000d6,$000000dc,$00000385, $000000e0,$000000e2,$000000e4,$00000384,$000000a8,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000a3,$00002122,$000000ee,$000000ef,$00002022,$000000bd, $00002030,$000000f4,$000000f6,$000000a6,$000000ad,$000000f9,$000000fb,$000000fc, $00002020,$00000393,$00000394,$00000398,$0000039b,$0000039e,$000003a0,$000000df, $000000ae,$000000a9,$000003a3,$000003aa,$000000a7,$00002260,$000000b0,$00000387, $00000391,$000000b1,$00002264,$00002265,$000000a5,$00000392,$00000395,$00000396, $00000397,$00000399,$0000039a,$0000039c,$000003a6,$000003ab,$000003a8,$000003a9, $000003ac,$0000039d,$000000ac,$0000039f,$000003a1,$00002248,$000003a4,$000000ab, $000000bb,$00002026,$000000a0,$000003a5,$000003a7,$00000386,$00000388,$00000153, $00002013,$00002015,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$00000389, $0000038a,$0000038c,$0000038e,$000003ad,$000003ae,$000003af,$000003cc,$0000038f, $000003cd,$000003b1,$000003b2,$000003c8,$000003b4,$000003b5,$000003c6,$000003b3, $000003b7,$000003b9,$000003be,$000003ba,$000003bb,$000003bc,$000003bd,$000003bf, $000003c0,$000003ce,$000003c1,$000003c3,$000003c4,$000003b8,$000003c9,$000003c2, $000003c7,$000003c5,$000003b6,$000003ca,$000003cb,$00000390,$000003b0,$0000f8a0); const PUCUCharSetCodePage10007:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000410,$00000411,$00000412,$00000413,$00000414,$00000415,$00000416,$00000417, $00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e,$0000041f, $00000420,$00000421,$00000422,$00000423,$00000424,$00000425,$00000426,$00000427, $00000428,$00000429,$0000042a,$0000042b,$0000042c,$0000042d,$0000042e,$0000042f, $00002020,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$00000406, $000000ae,$000000a9,$00002122,$00000402,$00000452,$00002260,$00000403,$00000453, $0000221e,$000000b1,$00002264,$00002265,$00000456,$000000b5,$00002202,$00000408, $00000404,$00000454,$00000407,$00000457,$00000409,$00000459,$0000040a,$0000045a, $00000458,$00000405,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$0000040b,$0000045b,$0000040c,$0000045c,$00000455, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$0000201e, $0000040e,$0000045e,$0000040f,$0000045f,$00002116,$00000401,$00000451,$0000044f, $00000430,$00000431,$00000432,$00000433,$00000434,$00000435,$00000436,$00000437, $00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $00000440,$00000441,$00000442,$00000443,$00000444,$00000445,$00000446,$00000447, $00000448,$00000449,$0000044a,$0000044b,$0000044c,$0000044d,$0000044e,$000000a4); const PUCUCharSetCodePage10010:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $00002020,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$000000a9,$00002122,$000000b4,$000000a8,$00002260,$00000102,$0000015e, $0000221e,$000000b1,$00002264,$00002265,$000000a5,$000000b5,$00002202,$00002211, $0000220f,$000003c0,$0000222b,$000000aa,$000000ba,$00002126,$00000103,$0000015f, $000000bf,$000000a1,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$000000c0,$000000c3,$000000d5,$00000152,$00000153, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $000000ff,$00000178,$00002044,$000000a4,$00002039,$0000203a,$00000162,$00000163, $00002021,$000000b7,$0000201a,$0000201e,$00002030,$000000c2,$000000ca,$000000c1, $000000cb,$000000c8,$000000cd,$000000ce,$000000cf,$000000cc,$000000d3,$000000d4, $0000f8ff,$000000d2,$000000da,$000000db,$000000d9,$00000131,$000002c6,$000002dc, $000000af,$000002d8,$000002d9,$000002da,$000000b8,$000002dd,$000002db,$000002c7); const PUCUCharSetCodePage10017:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000410,$00000411,$00000412,$00000413,$00000414,$00000415,$00000416,$00000417, $00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e,$0000041f, $00000420,$00000421,$00000422,$00000423,$00000424,$00000425,$00000426,$00000427, $00000428,$00000429,$0000042a,$0000042b,$0000042c,$0000042d,$0000042e,$0000042f, $00002020,$000000b0,$00000490,$000000a3,$000000a7,$00002022,$000000b6,$00000406, $000000ae,$000000a9,$00002122,$00000402,$00000452,$00002260,$00000403,$00000453, $0000221e,$000000b1,$00002264,$00002265,$00000456,$000000b5,$00000491,$00000408, $00000404,$00000454,$00000407,$00000457,$00000409,$00000459,$0000040a,$0000045a, $00000458,$00000405,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$0000040b,$0000045b,$0000040c,$0000045c,$00000455, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$0000201e, $0000040e,$0000045e,$0000040f,$0000045f,$00002116,$00000401,$00000451,$0000044f, $00000430,$00000431,$00000432,$00000433,$00000434,$00000435,$00000436,$00000437, $00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $00000440,$00000441,$00000442,$00000443,$00000444,$00000445,$00000446,$00000447, $00000448,$00000449,$0000044a,$0000044b,$0000044c,$0000044d,$0000044e,$000000a4); const PUCUCharSetCodePage10021:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$00000000, $000000ab,$000000bb,$00002026,$00000e48,$00000e49,$00000e4a,$00000e4b,$00000e4c, $00000e48,$00000e49,$00000e4a,$00000e4b,$00000e4c,$0000201c,$0000201d,$00000e4d, $00000000,$00002022,$00000e31,$00000e47,$00000e34,$00000e35,$00000e36,$00000e37, $00000e48,$00000e49,$00000e4a,$00000e4b,$00000e4c,$00002018,$00002019,$00000000, $000000a0,$00000e01,$00000e02,$00000e03,$00000e04,$00000e05,$00000e06,$00000e07, $00000e08,$00000e09,$00000e0a,$00000e0b,$00000e0c,$00000e0d,$00000e0e,$00000e0f, $00000e10,$00000e11,$00000e12,$00000e13,$00000e14,$00000e15,$00000e16,$00000e17, $00000e18,$00000e19,$00000e1a,$00000e1b,$00000e1c,$00000e1d,$00000e1e,$00000e1f, $00000e20,$00000e21,$00000e22,$00000e23,$00000e24,$00000e25,$00000e26,$00000e27, $00000e28,$00000e29,$00000e2a,$00000e2b,$00000e2c,$00000e2d,$00000e2e,$00000e2f, $00000e30,$00000e31,$00000e32,$00000e33,$00000e34,$00000e35,$00000e36,$00000e37, $00000e38,$00000e39,$00000e3a,$0000feff,$0000200b,$00002013,$00002014,$00000e3f, $00000e40,$00000e41,$00000e42,$00000e43,$00000e44,$00000e45,$00000e46,$00000e47, $00000e48,$00000e49,$00000e4a,$00000e4b,$00000e4c,$00000e4d,$00002122,$00000e4f, $00000e50,$00000e51,$00000e52,$00000e53,$00000e54,$00000e55,$00000e56,$00000e57, $00000e58,$00000e59,$000000ae,$000000a9,$00000000,$00000000,$00000000,$00000000); const PUCUCharSetCodePage10029:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$00000100,$00000101,$000000c9,$00000104,$000000d6,$000000dc,$000000e1, $00000105,$0000010c,$000000e4,$0000010d,$00000106,$00000107,$000000e9,$00000179, $0000017a,$0000010e,$000000ed,$0000010f,$00000112,$00000113,$00000116,$000000f3, $00000117,$000000f4,$000000f6,$000000f5,$000000fa,$0000011a,$0000011b,$000000fc, $00002020,$000000b0,$00000118,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$000000a9,$00002122,$00000119,$000000a8,$00002260,$00000123,$0000012e, $0000012f,$0000012a,$00002264,$00002265,$0000012b,$00000136,$00002202,$00002211, $00000142,$0000013b,$0000013c,$0000013d,$0000013e,$00000139,$0000013a,$00000145, $00000146,$00000143,$000000ac,$0000221a,$00000144,$00000147,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$00000148,$00000150,$000000d5,$00000151,$0000014c, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $0000014d,$00000154,$00000155,$00000158,$00002039,$0000203a,$00000159,$00000156, $00000157,$00000160,$0000201a,$0000201e,$00000161,$0000015a,$0000015b,$000000c1, $00000164,$00000165,$000000cd,$0000017d,$0000017e,$0000016a,$000000d3,$000000d4, $0000016b,$0000016e,$000000da,$0000016f,$00000170,$00000171,$00000172,$00000173, $000000dd,$000000fd,$00000137,$0000017b,$00000141,$0000017c,$00000122,$000002c7); const PUCUCharSetCodePage10079:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $000000dd,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$000000a9,$00002122,$000000b4,$000000a8,$00002260,$000000c6,$000000d8, $0000221e,$000000b1,$00002264,$00002265,$000000a5,$000000b5,$00002202,$00002211, $0000220f,$000003c0,$0000222b,$000000aa,$000000ba,$00002126,$000000e6,$000000f8, $000000bf,$000000a1,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$000000c0,$000000c3,$000000d5,$00000152,$00000153, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $000000ff,$00000178,$00002044,$000000a4,$000000d0,$000000f0,$000000de,$000000fe, $000000fd,$000000b7,$0000201a,$0000201e,$00002030,$000000c2,$000000ca,$000000c1, $000000cb,$000000c8,$000000cd,$000000ce,$000000cf,$000000cc,$000000d3,$000000d4, $0000f8ff,$000000d2,$000000da,$000000db,$000000d9,$00000131,$000002c6,$000002dc, $000000af,$000002d8,$000002d9,$000002da,$000000b8,$000002dd,$000002db,$000002c7); const PUCUCharSetCodePage10081:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $00002020,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$000000a9,$00002122,$000000b4,$000000a8,$00002260,$000000c6,$000000d8, $0000221e,$000000b1,$00002264,$00002265,$000000a5,$000000b5,$00002202,$00002211, $0000220f,$000003c0,$0000222b,$000000aa,$000000ba,$00002126,$000000e6,$000000f8, $000000bf,$000000a1,$000000ac,$0000221a,$00000192,$00002248,$00002206,$000000ab, $000000bb,$00002026,$000000a0,$000000c0,$000000c3,$000000d5,$00000152,$00000153, $00002013,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $000000ff,$00000178,$0000011e,$0000011f,$00000130,$00000131,$0000015e,$0000015f, $00002021,$000000b7,$0000201a,$0000201e,$00002030,$000000c2,$000000ca,$000000c1, $000000cb,$000000c8,$000000cd,$000000ce,$000000cf,$000000cc,$000000d3,$000000d4, $0000f8ff,$000000d2,$000000da,$000000db,$000000d9,$0000f8a0,$000002c6,$000002dc, $000000af,$000002d8,$000002d9,$000002da,$000000b8,$000002dd,$000002db,$000002c7); const PUCUCharSetCodePage10082:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $000000c4,$000000c5,$000000c7,$000000c9,$000000d1,$000000d6,$000000dc,$000000e1, $000000e0,$000000e2,$000000e4,$000000e3,$000000e5,$000000e7,$000000e9,$000000e8, $000000ea,$000000eb,$000000ed,$000000ec,$000000ee,$000000ef,$000000f1,$000000f3, $000000f2,$000000f4,$000000f6,$000000f5,$000000fa,$000000f9,$000000fb,$000000fc, $00002020,$000000b0,$000000a2,$000000a3,$000000a7,$00002022,$000000b6,$000000df, $000000ae,$00000160,$00002122,$000000b4,$000000a8,$00002260,$0000017d,$000000d8, $0000221e,$000000b1,$00002264,$00002265,$00002206,$000000b5,$00002202,$00002211, $0000220f,$00000161,$0000222b,$000000aa,$000000ba,$00002126,$0000017e,$000000f8, $000000bf,$000000a1,$000000ac,$0000221a,$00000192,$00002248,$00000106,$000000ab, $0000010c,$00002026,$000000a0,$000000c0,$000000c3,$000000d5,$00000152,$00000153, $00000110,$00002014,$0000201c,$0000201d,$00002018,$00002019,$000000f7,$000025ca, $0000f8ff,$000000a9,$00002044,$000000a4,$00002039,$0000203a,$000000c6,$000000bb, $00002013,$000000b7,$0000201a,$0000201e,$00002030,$000000c2,$00000107,$000000c1, $0000010d,$000000c8,$000000cd,$000000ce,$000000cf,$000000cc,$000000d3,$000000d4, $00000111,$000000d2,$000000da,$000000db,$000000d9,$00000131,$000002c6,$000002dc, $000000af,$000003c0,$000000cb,$000002da,$000000b8,$000000ca,$000000e6,$000002c7); const PUCUCharSetCodePage20105:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$000000a4,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000203e,$00002207, $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$000000a4,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000203e,$00002207); const PUCUCharSetCodePage20106:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $000000a7,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c4,$000000d6,$000000dc,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e4,$000000f6,$000000fc,$000000df,$0000007f, $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $000000a7,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c4,$000000d6,$000000dc,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e4,$000000f6,$000000fc,$000000df,$0000007f); const PUCUCharSetCodePage20107:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$000000a4,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $000000c9,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c4,$000000d6,$000000c5,$000000dc,$0000005f, $000000e9,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e4,$000000f6,$000000e5,$000000fc,$0000007f, $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$000000a4,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $000000c9,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c4,$000000d6,$000000c5,$000000dc,$0000005f, $000000e9,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e4,$000000f6,$000000e5,$000000fc,$0000007f); const PUCUCharSetCodePage20108:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$000000a7,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c6,$000000d8,$000000c5,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e6,$000000f8,$000000e5,$0000007c,$0000007f, $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$000000a7,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$000000c6,$000000d8,$000000c5,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$000000e6,$000000f8,$000000e5,$0000007c,$0000007f); const PUCUCharSetCodePage20127:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f); const PUCUCharSetCodePage20269:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$000000a4,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000f8f6, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$00000000,$00000000, $000000a0,$000000a1,$000000a2,$000000a3,$00000024,$000000a5,$00000023,$000000a7, $000000a4,$00002018,$0000201c,$000000ab,$00002190,$00002191,$00002192,$00002193, $000000b0,$000000b1,$000000b2,$000000b3,$000000d7,$000000b5,$000000b6,$000000b7, $000000f7,$00002019,$0000201d,$000000bb,$000000bc,$000000bd,$0000f8f7,$000000bf, $00000000,$00000060,$000000b4,$0000005e,$0000007e,$000000af,$00000306,$0000f8f8, $00000308,$00000000,$0000030a,$00000327,$00000332,$0000030b,$00000328,$0000030c, $00002015,$000000b9,$000000ae,$000000a9,$00002122,$00002669,$0000f8f9,$0000f8fa, $0000f8fb,$0000f8fc,$00000000,$00000000,$0000215b,$0000215c,$0000215d,$0000215e, $00002126,$000000c6,$000000d0,$0000f8fd,$00000126,$00000000,$00000132,$0000013f, $00000141,$000000d8,$00000152,$000000ba,$000000de,$00000166,$0000014a,$00000149, $00000138,$000000e6,$00000111,$000000f0,$00000127,$00000131,$00000133,$00000140, $00000142,$000000f8,$00000153,$000000df,$000000fe,$00000167,$0000f8fe,$0000f8ff); const PUCUCharSetCodePage20273:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$0000007b,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000c4,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$0000007e,$000000dc,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$0000005b,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$000000a7,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$000000df,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$00000040,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e4,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000a6,$000000f2,$000000f3,$000000f5, $000000fc,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007d,$000000f9,$000000fa,$000000ff, $000000d6,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$0000005c,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$0000005d,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20277:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$0000007d, $000000e7,$000000f1,$00000023,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000a4,$000000c5,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$00000024, $000000c7,$000000d1,$000000f8,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000a6,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$000000c6,$000000d8,$00000027,$0000003d,$00000022, $00000040,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$0000007b,$000000b8,$0000005b,$0000005d, $000000b5,$000000fc,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e6,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $000000e5,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007e,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20278:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$0000007b,$000000e0,$000000e1,$000000e3,$0000007d, $000000e7,$000000f1,$000000a7,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$00000060,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000a4,$000000c5,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$00000023,$000000c0,$000000c1,$000000c3,$00000024, $000000c7,$000000d1,$000000f6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$0000005c,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000e9,$0000003a,$000000c4,$000000d6,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$0000005d, $000000b5,$000000fc,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$0000005b,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e4,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000a6,$000000f2,$000000f3,$000000f5, $000000e5,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$0000007e,$000000f9,$000000fa,$000000ff, $000000c9,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$00000040,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20280:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$0000007b,$000000e1,$000000e3,$000000e5, $0000005c,$000000f1,$000000b0,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000005d,$000000ea,$000000eb,$0000007d,$000000ed,$000000ee,$000000ef, $0000007e,$000000df,$000000e9,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f2,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000f9,$0000003a,$000000a3,$000000a7,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $0000005b,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$000000ec,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$00000023,$000000a5,$000000b7,$000000a9,$00000040,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$000000b4,$000000d7, $000000e0,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000a6,$000000f3,$000000f5, $000000e8,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$00000060,$000000fa,$000000ff, $000000e7,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20284:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000a6,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$00000023,$000000f1,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$000000d1,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$000000a8,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005e,$00000021,$000000af,$0000007e,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20285:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$00000024,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$000000a3,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $000000b5,$000000af,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$0000005b,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005e,$0000005d,$0000007e,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20290:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$0000ff61,$0000ff62,$0000ff63,$0000ff64,$0000ff65,$0000ff66,$0000ff67, $0000ff68,$0000ff69,$000000a3,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$0000ff6a,$0000ff6b,$0000ff6c,$0000ff6d,$0000ff6e,$0000ff6f,$0000001a, $0000ff70,$0000001a,$00000021,$000000a5,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066, $00000067,$00000068,$0000001a,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000005b,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $0000005d,$0000ff71,$0000ff72,$0000ff73,$0000ff74,$0000ff75,$0000ff76,$0000ff77, $0000ff78,$0000ff79,$0000ff7a,$00000071,$0000ff7b,$0000ff7c,$0000ff7d,$0000ff7e, $0000ff7f,$0000ff80,$0000ff81,$0000ff82,$0000ff83,$0000ff84,$0000ff85,$0000ff86, $0000ff87,$0000ff88,$0000ff89,$00000072,$0000001a,$0000ff8a,$0000ff8b,$0000ff8c, $0000007e,$0000203e,$0000ff8d,$0000ff8e,$0000ff8f,$0000ff90,$0000ff91,$0000ff92, $0000ff93,$0000ff94,$0000ff95,$00000073,$0000ff96,$0000ff97,$0000ff98,$0000ff99, $0000005e,$000000a2,$0000005c,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000ff9a,$0000ff9b,$0000ff9c,$0000ff9d,$0000ff9e,$0000ff9f, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $00000024,$0000001a,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000009f); const PUCUCharSetCodePage20297:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$00000040,$000000e1,$000000e3,$000000e5, $0000005c,$000000f1,$000000b0,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000007b,$000000ea,$000000eb,$0000007d,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000a7,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000f9,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000b5,$0000003a,$000000a3,$000000e0,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $0000005b,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$000000b8,$000000c6,$000000a4, $00000060,$000000a8,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$000000dd,$000000de,$000000ae, $000000a2,$00000023,$000000a5,$000000b7,$000000a9,$0000005d,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$0000007e,$000000b4,$000000d7, $000000e9,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $000000e8,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000a6,$000000fa,$000000ff, $000000e7,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20420:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$0000fe7c,$0000fe7d,$00000640,$0000f8fc,$0000fe80,$0000fe81, $0000fe82,$0000fe83,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$0000fe84,$0000fe85,$0000001a,$0000001a,$0000fe8b,$0000fe8d,$0000fe8e, $0000fe8f,$0000fe91,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$0000fe93,$0000fe95,$0000fe97,$0000fe99,$0000fe9b,$0000fe9d, $0000fe9f,$0000fea1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000fea3,$0000fea5,$0000fea7,$0000fea9,$0000feab,$0000fead,$0000feaf,$0000f8f6, $0000feb3,$0000060c,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $0000f8f5,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000feb7,$0000f8f4,$0000febb,$0000f8f7,$0000febf,$0000fec3, $0000fec7,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000fec9,$0000feca,$0000fecb,$0000fecc,$0000fecd,$0000fece, $0000fecf,$000000f7,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000fed0,$0000fed1,$0000fed3,$0000fed5,$0000fed7,$0000fed9, $0000fedb,$0000fedd,$0000fef5,$0000fef6,$0000fef7,$0000fef8,$0000001a,$0000001a, $0000fefb,$0000fefc,$0000fedf,$0000fee1,$0000fee3,$0000fee5,$0000fee7,$0000fee9, $0000061b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$0000feeb,$0000001a,$0000feec,$0000001a,$0000feed, $0000061f,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000feef,$0000fef0,$0000fef1,$0000fef2,$0000fef3,$00000660, $000000d7,$00002007,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$00000661,$00000662,$0000001a,$00000663,$00000664,$00000665, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000001a,$00000666,$00000667,$00000668,$00000669,$0000009f); const PUCUCharSetCodePage20423:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$00000391,$00000392,$00000393,$00000394,$00000395,$00000396,$00000397, $00000398,$00000399,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$0000039a,$0000039b,$0000039c,$0000039d,$0000039e,$0000039f,$000003a0, $000003a1,$000003a3,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000003a4,$000003a5,$000003a6,$000003a7,$000003a8,$000003a9, $0000001a,$0000001a,$0000007c,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000001a,$00000386,$00000388,$00000389,$000000a0,$0000038a,$0000038c,$0000038e, $0000038f,$00000060,$0000003a,$000000a3,$000000a7,$00000027,$0000003d,$00000022, $000000c4,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000003b1,$000003b2,$000003b3,$000003b4,$000003b5,$000003b6, $000000d6,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000003b7,$000003b8,$000003b9,$000003ba,$000003bb,$000003bc, $000000dc,$000000a8,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000003bd,$000003be,$000003bf,$000003c0,$000003c1,$000003c3, $0000001a,$000003ac,$000003ad,$000003ae,$000003ca,$000003af,$000003cc,$000003cd, $000003cb,$000003ce,$000003c2,$000003c4,$000003c5,$000003c6,$000003c7,$000003c8, $000000b8,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000003c9,$000000e2,$000000e0,$000000e4,$000000ea, $000000b4,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b1,$000000e9,$000000e8,$000000eb,$000000ee,$000000ef, $000000b0,$0000001a,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000bd,$000000f6,$000000f4,$000000fb,$000000f9,$000000fc, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000ff,$000000e7,$000000c7,$0000001a,$0000001a,$0000009f); const PUCUCharSetCodePage20424:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6, $000005d7,$000005d8,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000001a,$000005ea,$0000001a,$0000001a,$000000a0,$0000001a,$0000001a,$0000001a, $00002017,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $0000001a,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$0000001a,$0000001a,$0000001a,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000001a,$0000001a,$0000001a,$000000b8,$0000001a,$000000a4, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$000000ae, $0000005e,$000000a3,$000000a5,$00002022,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$0000005b,$0000005d,$0000203e,$000000a8,$000000b4,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$0000001a,$0000001a,$0000001a,$0000001a,$0000009f); const PUCUCharSetCodePage20833:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$0000001a,$0000ffa0,$0000ffa1,$0000ffa2,$0000ffa3,$0000ffa4,$0000ffa5, $0000ffa6,$0000ffa7,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$0000001a,$0000ffa8,$0000ffa9,$0000ffaa,$0000ffab,$0000ffac,$0000ffad, $0000ffae,$0000ffaf,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$0000ffb0,$0000ffb1,$0000ffb2,$0000ffb3,$0000ffb4,$0000ffb5, $0000ffb6,$0000ffb7,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000005b,$0000001a,$0000ffb8,$0000ffb9,$0000ffba,$0000ffbb,$0000ffbc,$0000ffbd, $0000ffbe,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $0000005d,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000ffc2,$0000ffc3,$0000ffc4,$0000ffc5,$0000ffc6,$0000ffc7, $0000001a,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000ffca,$0000ffcb,$0000ffcc,$0000ffcd,$0000ffce,$0000ffcf, $0000203e,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000ffd2,$0000ffd3,$0000ffd4,$0000ffd5,$0000ffd6,$0000ffd7, $0000005e,$0000001a,$0000005c,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $0000001a,$0000001a,$0000ffda,$0000ffdb,$0000ffdc,$0000001a,$0000001a,$0000001a, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $000020a9,$0000001a,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000001a,$0000001a,$0000001a,$0000001a,$0000001a,$0000009f); const PUCUCharSetCodePage20838:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$00000e01,$00000e02,$00000e03,$00000e04,$00000e05,$00000e06, $00000e07,$0000005b,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$00000e48,$00000e08,$00000e09,$00000e0a,$00000e0b,$00000e0c,$00000e0d, $00000e0e,$0000005d,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$00000e0f,$00000e10,$00000e11,$00000e12,$00000e13,$00000e14, $00000e15,$0000005e,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $00000e3f,$00000e4e,$00000e16,$00000e17,$00000e18,$00000e19,$00000e1a,$00000e1b, $00000e1c,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $00000e4f,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$00000e1d,$00000e1e,$00000e1f,$00000e20,$00000e21,$00000e22, $00000e5a,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$00000e23,$00000e24,$00000e25,$00000e26,$00000e27,$00000e28, $00000e5b,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$00000e29,$00000e2a,$00000e2b,$00000e2c,$00000e2d,$00000e2e, $00000e50,$00000e51,$00000e52,$00000e53,$00000e54,$00000e55,$00000e56,$00000e57, $00000e58,$00000e59,$00000e2f,$00000e30,$00000e31,$00000e32,$00000e33,$00000e34, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$00000e49,$00000e35,$00000e36,$00000e37,$00000e38,$00000e39, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$00000e3a,$00000e40,$00000e41,$00000e42,$00000e43,$00000e44, $0000005c,$00000e4a,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$00000e45,$00000e46,$00000e47,$00000e48,$00000e49,$00000e4a, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$00000e4b,$00000e4c,$00000e4d,$00000e4b,$00000e4c,$0000009f); const PUCUCharSetCodePage20866:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00002500,$00002502,$0000250c,$00002510,$00002514,$00002518,$0000251c,$00002524, $0000252c,$00002534,$0000253c,$00002580,$00002584,$00002588,$0000258c,$00002590, $00002591,$00002592,$00002593,$00002320,$000025a0,$00002219,$0000221a,$00002248, $00002264,$00002265,$000000a0,$00002321,$000000b0,$000000b2,$000000b7,$000000f7, $00002550,$00002551,$00002552,$00000451,$00002553,$00002554,$00002555,$00002556, $00002557,$00002558,$00002559,$0000255a,$0000255b,$0000255c,$0000255d,$0000255e, $0000255f,$00002560,$00002561,$00000401,$00002562,$00002563,$00002564,$00002565, $00002566,$00002567,$00002568,$00002569,$0000256a,$0000256b,$0000256c,$000000a9, $0000044e,$00000430,$00000431,$00000446,$00000434,$00000435,$00000444,$00000433, $00000445,$00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e, $0000043f,$0000044f,$00000440,$00000441,$00000442,$00000443,$00000436,$00000432, $0000044c,$0000044b,$00000437,$00000448,$0000044d,$00000449,$00000447,$0000044a, $0000042e,$00000410,$00000411,$00000426,$00000414,$00000415,$00000424,$00000413, $00000425,$00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e, $0000041f,$0000042f,$00000420,$00000421,$00000422,$00000423,$00000416,$00000412, $0000042c,$0000042b,$00000417,$00000428,$0000042d,$00000429,$00000427,$0000042a); const PUCUCharSetCodePage20871:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000de,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$000000c6,$00000024,$0000002a,$00000029,$0000003b,$000000d6, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$000000a6,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$000000f0,$0000003a,$00000023,$000000d0,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$00000060,$000000fd,$0000007b,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$0000007d,$000000b8,$0000005d,$000000a4, $000000b5,$000000f6,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$00000040,$000000dd,$0000005b,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$000000bc, $000000bd,$000000be,$000000ac,$0000007c,$000000af,$000000a8,$0000005c,$000000d7, $000000fe,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$0000007e,$000000f2,$000000f3,$000000f5, $000000e6,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $000000b4,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$0000005e,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20880:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$00000452,$00000453,$00000451,$00000454,$00000455,$00000456, $00000457,$00000458,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$00000459,$0000045a,$0000045b,$0000045c,$0000045e,$0000045f,$0000042a, $00002116,$00000402,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$00000403,$00000401,$00000404,$00000405,$00000406,$00000407, $00000408,$00000409,$0000007c,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000040a,$0000040b,$0000040c,$000000ad,$0000040e,$0000040f,$0000044e,$00000430, $00000431,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $00000446,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$00000434,$00000435,$00000444,$00000433,$00000445,$00000438, $00000439,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $0000044f,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$00000440,$00000441,$00000442,$00000443,$00000436,$00000432, $0000044c,$0000044b,$00000437,$00000448,$0000044d,$00000449,$00000447,$0000044a, $0000042e,$00000410,$00000411,$00000426,$00000414,$00000415,$00000424,$00000413, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$00000425,$00000418,$00000419,$0000041a,$0000041b,$0000041c, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000041d,$0000041e,$0000041f,$0000042f,$00000420,$00000421, $0000005c,$000000a4,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$00000422,$00000423,$00000416,$00000412,$0000042c,$0000042b, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$00000417,$00000428,$0000042d,$00000429,$00000427,$0000009f); const PUCUCharSetCodePage20905:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$0000001a,$0000010b, $0000007b,$000000f1,$000000c7,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$0000011e,$00000130,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$0000001a,$0000010a, $0000005b,$000000d1,$0000015f,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000001a,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000131,$0000003a,$000000d6,$0000015e,$00000027,$0000003d,$000000dc, $000002d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$00000127,$00000109,$0000015d,$0000016d,$0000001a,$0000007c, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$00000125,$0000011d,$00000135,$000000b8,$0000001a,$000000a4, $000000b5,$000000f6,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$00000126,$00000108,$0000015c,$0000016c,$0000001a,$00000040, $000002d9,$000000a3,$0000017c,$0000007d,$0000017b,$000000a7,$0000005d,$000000b7, $000000bd,$00000024,$00000124,$0000011c,$00000134,$000000a8,$000000b4,$000000d7, $000000e7,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$0000007e,$000000f2,$000000f3,$00000121, $0000011f,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$00000060,$000000fb,$0000005c,$000000f9,$000000fa,$0000001a, $000000fc,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$00000023,$000000d2,$000000d3,$00000120, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$00000022,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage20924:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$0000000a,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$000000e2,$000000e4,$000000e0,$000000e1,$000000e3,$000000e5, $000000e7,$000000f1,$000000dd,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$000000e9,$000000ea,$000000eb,$000000e8,$000000ed,$000000ee,$000000ef, $000000ec,$000000df,$00000021,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$000000c2,$000000c4,$000000c0,$000000c1,$000000c3,$000000c5, $000000c7,$000000d1,$00000160,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $000000f8,$000000c9,$000000ca,$000000cb,$000000c8,$000000cd,$000000ce,$000000cf, $000000cc,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $000000d8,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$000000ab,$000000bb,$000000f0,$000000fd,$000000fe,$000000b1, $000000b0,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$000000aa,$000000ba,$000000e6,$0000017e,$000000c6,$000020ac, $000000b5,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$000000a1,$000000bf,$000000d0,$0000005b,$000000de,$000000ae, $000000a2,$000000a3,$000000a5,$000000b7,$000000a9,$000000a7,$000000b6,$00000152, $00000153,$00000178,$000000ac,$00000161,$000000af,$0000005d,$0000017d,$000000d7, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$000000ad,$000000f4,$000000f6,$000000f2,$000000f3,$000000f5, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$000000b9,$000000fb,$000000fc,$000000f9,$000000fa,$000000ff, $0000005c,$000000f7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$000000b2,$000000d4,$000000d6,$000000d2,$000000d3,$000000d5, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$000000b3,$000000db,$000000dc,$000000d9,$000000da,$0000009f); const PUCUCharSetCodePage21025:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$0000009c,$00000009,$00000086,$0000007f, $00000097,$0000008d,$0000008e,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$0000009d,$00000085,$00000008,$00000087, $00000018,$00000019,$00000092,$0000008f,$0000001c,$0000001d,$0000001e,$0000001f, $00000080,$00000081,$00000082,$00000083,$00000084,$0000000a,$00000017,$0000001b, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$00000005,$00000006,$00000007, $00000090,$00000091,$00000016,$00000093,$00000094,$00000095,$00000096,$00000004, $00000098,$00000099,$0000009a,$0000009b,$00000014,$00000015,$0000009e,$0000001a, $00000020,$000000a0,$00000452,$00000453,$00000451,$00000454,$00000455,$00000456, $00000457,$00000458,$0000005b,$0000002e,$0000003c,$00000028,$0000002b,$00000021, $00000026,$00000459,$0000045a,$0000045b,$0000045c,$0000045e,$0000045f,$0000042a, $00002116,$00000402,$0000005d,$00000024,$0000002a,$00000029,$0000003b,$0000005e, $0000002d,$0000002f,$00000403,$00000401,$00000404,$00000405,$00000406,$00000407, $00000408,$00000409,$0000007c,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000040a,$0000040b,$0000040c,$000000ad,$0000040e,$0000040f,$0000044e,$00000430, $00000431,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000003d,$00000022, $00000446,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$00000434,$00000435,$00000444,$00000433,$00000445,$00000438, $00000439,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $0000044f,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$00000440,$00000441,$00000442,$00000443,$00000436,$00000432, $0000044c,$0000044b,$00000437,$00000448,$0000044d,$00000449,$00000447,$0000044a, $0000042e,$00000410,$00000411,$00000426,$00000414,$00000415,$00000424,$00000413, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$00000425,$00000418,$00000419,$0000041a,$0000041b,$0000041c, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $00000051,$00000052,$0000041d,$0000041e,$0000041f,$0000042f,$00000420,$00000421, $0000005c,$000000a7,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $00000059,$0000005a,$00000422,$00000423,$00000416,$00000412,$0000042c,$0000042b, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$00000417,$00000428,$0000042d,$00000429,$00000427,$0000009f); const PUCUCharSetCodePage21027:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $0000f8c4,$0000f8c5,$0000f8c6,$0000f8c7,$0000f8c8,$0000f8c9,$0000f8ca,$0000f8cb, $0000f8cc,$0000f8cd,$0000f8ce,$0000f8cf,$0000f8d0,$0000f8d1,$0000f8d2,$0000f8d3, $0000f8d4,$0000f8d5,$0000f8d6,$0000f8d7,$0000f8d8,$0000f8d9,$0000f8da,$0000f8db, $0000f8dc,$0000f8dd,$0000f8de,$0000f8df,$0000f8e0,$0000f8e1,$00000000,$0000f8e2, $00000020,$00000000,$0000ff61,$0000ff62,$0000ff63,$0000ff64,$0000ff65,$0000ff66, $0000ff67,$0000ff68,$000000a2,$0000002e,$0000003c,$00000028,$0000002b,$0000007c, $00000026,$0000ff69,$0000ff6a,$0000ff6b,$0000ff6c,$0000ff6d,$0000ff6e,$0000ff6f, $0000ff70,$0000ff71,$00000021,$00000024,$0000002a,$00000029,$0000003b,$000000ac, $0000002d,$0000002f,$0000ff72,$0000ff73,$0000ff74,$0000ff75,$0000ff76,$0000ff77, $0000f8e3,$0000ff79,$00000000,$0000002c,$00000025,$0000005f,$0000003e,$0000003f, $0000ff7a,$0000ff7b,$0000ff7c,$0000ff7d,$0000ff7e,$0000ff7f,$0000ff80,$0000ff81, $0000ff82,$00000060,$0000003a,$00000023,$00000040,$00000027,$0000f8e4,$00000022, $00000000,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000ff83,$0000ff84,$0000ff85,$0000ff86,$0000008e,$0000ff88, $00000000,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f,$00000070, $00000071,$00000072,$0000ff89,$0000ff8a,$0000ff8b,$0000ff8c,$0000ff8d,$0000ff8e, $000000af,$0000007e,$00000073,$00000074,$00000075,$00000076,$00000077,$00000078, $00000079,$0000007a,$0000ff8f,$0000ff90,$0000ff91,$0000005b,$0000ff92,$0000ff93, $0000005e,$000000a3,$000000a5,$0000ff94,$0000ff95,$0000ff96,$0000ff97,$0000ff98, $0000ff99,$0000ff9a,$0000ff9b,$0000ff9c,$0000ff9d,$0000005d,$0000ff9e,$0000ff9f, $0000007b,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $0000f8e5,$0000f8e6,$0000f8e7,$0000f8e8,$0000f8e9,$0000f8ea,$00000000,$00000000, $0000007d,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f,$00000050, $0000f8eb,$0000f8ec,$0000f8ed,$0000f8ee,$0000f8ef,$0000f8f0,$00000000,$0000f8f1, $0000005c,$00000000,$00000053,$00000054,$00000055,$00000056,$00000057,$00000058, $0000f8f2,$0000f8f3,$0000f8f4,$0000f8f5,$0000f8f6,$0000f8f7,$00000000,$00000000, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $0000f8f8,$0000f8f9,$0000f8fa,$0000f8fb,$0000f8fc,$0000f8fd,$0000f8fe,$0000f8ff); const PUCUCharSetCodePage21866:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00002500,$00002502,$0000250c,$00002510,$00002514,$00002518,$0000251c,$00002524, $0000252c,$00002534,$0000253c,$00002580,$00002584,$00002588,$0000258c,$00002590, $00002591,$00002592,$00002593,$00002320,$000025a0,$00002219,$0000221a,$00002248, $00002264,$00002265,$000000a0,$00002321,$000000b0,$000000b2,$000000b7,$000000f7, $00002550,$00002551,$00002552,$00000451,$00000454,$00002554,$00000456,$00000457, $00002557,$00002558,$00002559,$0000255a,$0000255b,$00000491,$0000045e,$0000255e, $0000255f,$00002560,$00002561,$00000401,$00000404,$00002563,$00000406,$00000407, $00002566,$00002567,$00002568,$00002569,$0000256a,$00000490,$0000040e,$000000a9, $0000044e,$00000430,$00000431,$00000446,$00000434,$00000435,$00000444,$00000433, $00000445,$00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e, $0000043f,$0000044f,$00000440,$00000441,$00000442,$00000443,$00000436,$00000432, $0000044c,$0000044b,$00000437,$00000448,$0000044d,$00000449,$00000447,$0000044a, $0000042e,$00000410,$00000411,$00000426,$00000414,$00000415,$00000424,$00000413, $00000425,$00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e, $0000041f,$0000042f,$00000420,$00000421,$00000422,$00000423,$00000416,$00000412, $0000042c,$0000042b,$00000417,$00000428,$0000042d,$00000429,$00000427,$0000042a); const PUCUCharSetCodePage28591:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$000000a1,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000ba,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000000c0,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $000000d0,$000000d1,$000000d2,$000000d3,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$000000dd,$000000de,$000000df, $000000e0,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $000000f0,$000000f1,$000000f2,$000000f3,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$000000fd,$000000fe,$000000ff); const PUCUCharSetCodePage28592:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000104,$000002d8,$00000141,$000000a4,$0000013d,$0000015a,$000000a7, $000000a8,$00000160,$0000015e,$00000164,$00000179,$000000ad,$0000017d,$0000017b, $000000b0,$00000105,$000002db,$00000142,$000000b4,$0000013e,$0000015b,$000002c7, $000000b8,$00000161,$0000015f,$00000165,$0000017a,$000002dd,$0000017e,$0000017c, $00000154,$000000c1,$000000c2,$00000102,$000000c4,$00000139,$00000106,$000000c7, $0000010c,$000000c9,$00000118,$000000cb,$0000011a,$000000cd,$000000ce,$0000010e, $00000110,$00000143,$00000147,$000000d3,$000000d4,$00000150,$000000d6,$000000d7, $00000158,$0000016e,$000000da,$00000170,$000000dc,$000000dd,$00000162,$000000df, $00000155,$000000e1,$000000e2,$00000103,$000000e4,$0000013a,$00000107,$000000e7, $0000010d,$000000e9,$00000119,$000000eb,$0000011b,$000000ed,$000000ee,$0000010f, $00000111,$00000144,$00000148,$000000f3,$000000f4,$00000151,$000000f6,$000000f7, $00000159,$0000016f,$000000fa,$00000171,$000000fc,$000000fd,$00000163,$000002d9); const PUCUCharSetCodePage28593:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000126,$000002d8,$000000a3,$000000a4,$0000f7f5,$00000124,$000000a7, $000000a8,$00000130,$0000015e,$0000011e,$00000134,$000000ad,$0000f7f6,$0000017b, $000000b0,$00000127,$000000b2,$000000b3,$000000b4,$000000b5,$00000125,$000000b7, $000000b8,$00000131,$0000015f,$0000011f,$00000135,$000000bd,$0000f7f7,$0000017c, $000000c0,$000000c1,$000000c2,$0000f7f8,$000000c4,$0000010a,$00000108,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $0000f7f9,$000000d1,$000000d2,$000000d3,$000000d4,$00000120,$000000d6,$000000d7, $0000011c,$000000d9,$000000da,$000000db,$000000dc,$0000016c,$0000015c,$000000df, $000000e0,$000000e1,$000000e2,$0000f7fa,$000000e4,$0000010b,$00000109,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $0000f7fb,$000000f1,$000000f2,$000000f3,$000000f4,$00000121,$000000f6,$000000f7, $0000011d,$000000f9,$000000fa,$000000fb,$000000fc,$0000016d,$0000015d,$000002d9); const PUCUCharSetCodePage28594:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000104,$00000138,$00000156,$000000a4,$00000128,$0000013b,$000000a7, $000000a8,$00000160,$00000112,$00000122,$00000166,$000000ad,$0000017d,$000000af, $000000b0,$00000105,$000002db,$00000157,$000000b4,$00000129,$0000013c,$000002c7, $000000b8,$00000161,$00000113,$00000123,$00000167,$0000014a,$0000017e,$0000014b, $00000100,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$0000012e, $0000010c,$000000c9,$00000118,$000000cb,$00000116,$000000cd,$000000ce,$0000012a, $00000110,$00000145,$0000014c,$00000136,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$00000172,$000000da,$000000db,$000000dc,$00000168,$0000016a,$000000df, $00000101,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$0000012f, $0000010d,$000000e9,$00000119,$000000eb,$00000117,$000000ed,$000000ee,$0000012b, $00000111,$00000146,$0000014d,$00000137,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$00000173,$000000fa,$000000fb,$000000fc,$00000169,$0000016b,$000002d9); const PUCUCharSetCodePage28595:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$00000401,$00000402,$00000403,$00000404,$00000405,$00000406,$00000407, $00000408,$00000409,$0000040a,$0000040b,$0000040c,$000000ad,$0000040e,$0000040f, $00000410,$00000411,$00000412,$00000413,$00000414,$00000415,$00000416,$00000417, $00000418,$00000419,$0000041a,$0000041b,$0000041c,$0000041d,$0000041e,$0000041f, $00000420,$00000421,$00000422,$00000423,$00000424,$00000425,$00000426,$00000427, $00000428,$00000429,$0000042a,$0000042b,$0000042c,$0000042d,$0000042e,$0000042f, $00000430,$00000431,$00000432,$00000433,$00000434,$00000435,$00000436,$00000437, $00000438,$00000439,$0000043a,$0000043b,$0000043c,$0000043d,$0000043e,$0000043f, $00000440,$00000441,$00000442,$00000443,$00000444,$00000445,$00000446,$00000447, $00000448,$00000449,$0000044a,$0000044b,$0000044c,$0000044d,$0000044e,$0000044f, $00002116,$00000451,$00000452,$00000453,$00000454,$00000455,$00000456,$00000457, $00000458,$00000459,$0000045a,$0000045b,$0000045c,$000000a7,$0000045e,$0000045f); const PUCUCharSetCodePage28596:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$0000f7c8,$0000f7c9,$0000f7ca,$000000a4,$0000f7cb,$0000f7cc,$0000f7cd, $0000f7ce,$0000f7cf,$0000f7d0,$0000f7d1,$0000060c,$000000ad,$0000f7d2,$0000f7d3, $0000f7d4,$0000f7d5,$0000f7d6,$0000f7d7,$0000f7d8,$0000f7d9,$0000f7da,$0000f7db, $0000f7dc,$0000f7dd,$0000f7de,$0000061b,$0000f7df,$0000f7e0,$0000f7e1,$0000061f, $0000f7e2,$00000621,$00000622,$00000623,$00000624,$00000625,$00000626,$00000627, $00000628,$00000629,$0000062a,$0000062b,$0000062c,$0000062d,$0000062e,$0000062f, $00000630,$00000631,$00000632,$00000633,$00000634,$00000635,$00000636,$00000637, $00000638,$00000639,$0000063a,$0000f7e3,$0000f7e4,$0000f7e5,$0000f7e6,$0000f7e7, $00000640,$00000641,$00000642,$00000643,$00000644,$00000645,$00000646,$00000647, $00000648,$00000649,$0000064a,$0000064b,$0000064c,$0000064d,$0000064e,$0000064f, $00000650,$00000651,$00000652,$0000f7e8,$0000f7e9,$0000f7ea,$0000f7eb,$0000f7ec, $0000f7ed,$0000f7ee,$0000f7ef,$0000f7f0,$0000f7f1,$0000f7f2,$0000f7f3,$0000f7f4); const PUCUCharSetCodePage28597:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$000002bd,$000002bc,$000000a3,$0000f7c2,$0000f7c3,$000000a6,$000000a7, $000000a8,$000000a9,$0000f7c4,$000000ab,$000000ac,$000000ad,$0000f7c5,$00002015, $000000b0,$000000b1,$000000b2,$000000b3,$00000384,$00000385,$00000386,$000000b7, $00000388,$00000389,$0000038a,$000000bb,$0000038c,$000000bd,$0000038e,$0000038f, $00000390,$00000391,$00000392,$00000393,$00000394,$00000395,$00000396,$00000397, $00000398,$00000399,$0000039a,$0000039b,$0000039c,$0000039d,$0000039e,$0000039f, $000003a0,$000003a1,$0000f7c6,$000003a3,$000003a4,$000003a5,$000003a6,$000003a7, $000003a8,$000003a9,$000003aa,$000003ab,$000003ac,$000003ad,$000003ae,$000003af, $000003b0,$000003b1,$000003b2,$000003b3,$000003b4,$000003b5,$000003b6,$000003b7, $000003b8,$000003b9,$000003ba,$000003bb,$000003bc,$000003bd,$000003be,$000003bf, $000003c0,$000003c1,$000003c2,$000003c3,$000003c4,$000003c5,$000003c6,$000003c7, $000003c8,$000003c9,$000003ca,$000003cb,$000003cc,$000003cd,$000003ce,$0000f7c7); const PUCUCharSetCodePage28598:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$0000f79c,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000d7,$000000ab,$000000ac,$000000ad,$000000ae,$0000203e, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000f7,$000000bb,$000000bc,$000000bd,$000000be,$0000f79d, $0000f79e,$0000f79f,$0000f7a0,$0000f7a1,$0000f7a2,$0000f7a3,$0000f7a4,$0000f7a5, $0000f7a6,$0000f7a7,$0000f7a8,$0000f7a9,$0000f7aa,$0000f7ab,$0000f7ac,$0000f7ad, $0000f7ae,$0000f7af,$0000f7b0,$0000f7b1,$0000f7b2,$0000f7b3,$0000f7b4,$0000f7b5, $0000f7b6,$0000f7b7,$0000f7b8,$0000f7b9,$0000f7ba,$0000f7bb,$0000f7bc,$00002017, $000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6,$000005d7, $000005d8,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000005ea,$0000f7bd,$0000f7be,$0000f7bf,$0000f7c0,$0000f7c1); const PUCUCharSetCodePage28599:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$000000a1,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000ba,$000000bb,$000000bc,$000000bd,$000000be,$000000bf, $000000c0,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $0000011e,$000000d1,$000000d2,$000000d3,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$00000130,$0000015e,$000000df, $000000e0,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $0000011f,$000000f1,$000000f2,$000000f3,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$00000131,$0000015f,$000000ff); const PUCUCharSetCodePage28603:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$0000201d,$000000a2,$000000a3,$000000a4,$0000201e,$000000a6,$000000a7, $000000d8,$000000a9,$00000156,$000000ab,$000000ac,$000000ad,$000000ae,$000000c6, $000000b0,$000000b1,$000000b2,$000000b3,$0000201c,$000000b5,$000000b6,$000000b7, $000000f8,$000000b9,$00000157,$000000bb,$000000bc,$000000bd,$000000be,$000000e6, $00000104,$0000012e,$00000100,$00000106,$000000c4,$000000c5,$00000118,$00000112, $0000010c,$000000c9,$00000179,$00000116,$00000122,$00000136,$0000012a,$0000013b, $00000160,$00000143,$00000145,$000000d3,$0000014c,$000000d5,$000000d6,$000000d7, $00000172,$00000141,$0000015a,$0000016a,$000000dc,$0000017b,$0000017d,$000000df, $00000105,$0000012f,$00000101,$00000107,$000000e4,$000000e5,$00000119,$00000113, $0000010d,$000000e9,$0000017a,$00000117,$00000123,$00000137,$0000012b,$0000013c, $00000161,$00000144,$00000146,$000000f3,$0000014d,$000000f5,$000000f6,$000000f7, $00000173,$00000142,$0000015b,$0000016b,$000000fc,$0000017c,$0000017e,$00002019); const PUCUCharSetCodePage28605:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$000000a1,$000000a2,$000000a3,$000020ac,$000000a5,$00000160,$000000a7, $00000161,$000000a9,$000000aa,$000000ab,$000000ac,$000000ad,$000000ae,$000000af, $000000b0,$000000b1,$000000b2,$000000b3,$0000017d,$000000b5,$000000b6,$000000b7, $0000017e,$000000b9,$000000ba,$000000bb,$00000152,$00000153,$00000178,$000000bf, $000000c0,$000000c1,$000000c2,$000000c3,$000000c4,$000000c5,$000000c6,$000000c7, $000000c8,$000000c9,$000000ca,$000000cb,$000000cc,$000000cd,$000000ce,$000000cf, $000000d0,$000000d1,$000000d2,$000000d3,$000000d4,$000000d5,$000000d6,$000000d7, $000000d8,$000000d9,$000000da,$000000db,$000000dc,$000000dd,$000000de,$000000df, $000000e0,$000000e1,$000000e2,$000000e3,$000000e4,$000000e5,$000000e6,$000000e7, $000000e8,$000000e9,$000000ea,$000000eb,$000000ec,$000000ed,$000000ee,$000000ef, $000000f0,$000000f1,$000000f2,$000000f3,$000000f4,$000000f5,$000000f6,$000000f7, $000000f8,$000000f9,$000000fa,$000000fb,$000000fc,$000000fd,$000000fe,$000000ff); const PUCUCharSetCodePage38598:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $000000a0,$0000f79c,$000000a2,$000000a3,$000000a4,$000000a5,$000000a6,$000000a7, $000000a8,$000000a9,$000000d7,$000000ab,$000000ac,$000000ad,$000000ae,$0000203e, $000000b0,$000000b1,$000000b2,$000000b3,$000000b4,$000000b5,$000000b6,$000000b7, $000000b8,$000000b9,$000000f7,$000000bb,$000000bc,$000000bd,$000000be,$0000f79d, $0000f79e,$0000f79f,$0000f7a0,$0000f7a1,$0000f7a2,$0000f7a3,$0000f7a4,$0000f7a5, $0000f7a6,$0000f7a7,$0000f7a8,$0000f7a9,$0000f7aa,$0000f7ab,$0000f7ac,$0000f7ad, $0000f7ae,$0000f7af,$0000f7b0,$0000f7b1,$0000f7b2,$0000f7b3,$0000f7b4,$0000f7b5, $0000f7b6,$0000f7b7,$0000f7b8,$0000f7b9,$0000f7ba,$0000f7bb,$0000f7bc,$00002017, $000005d0,$000005d1,$000005d2,$000005d3,$000005d4,$000005d5,$000005d6,$000005d7, $000005d8,$000005d9,$000005da,$000005db,$000005dc,$000005dd,$000005de,$000005df, $000005e0,$000005e1,$000005e2,$000005e3,$000005e4,$000005e5,$000005e6,$000005e7, $000005e8,$000005e9,$000005ea,$0000f7bd,$0000f7be,$0000f7bf,$0000f7c0,$0000f7c1); const PUCUCharSetCodePage57002:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000901,$00000902,$00000903,$00000905,$00000906,$00000907,$00000908, $00000909,$0000090a,$0000090b,$0000090e,$0000090f,$00000910,$0000090d,$00000912, $00000913,$00000914,$00000911,$00000915,$00000916,$00000917,$00000918,$00000919, $0000091a,$0000091b,$0000091c,$0000091d,$0000091e,$0000091f,$00000920,$00000921, $00000922,$00000923,$00000924,$00000925,$00000926,$00000927,$00000928,$00000929, $0000092a,$0000092b,$0000092c,$0000092d,$0000092e,$0000092f,$0000095f,$00000930, $00000931,$00000932,$00000933,$00000934,$00000935,$00000936,$00000937,$00000938, $00000939,$0000003f,$0000093e,$0000093f,$00000940,$00000941,$00000942,$00000943, $00000946,$00000947,$00000948,$00000945,$0000094a,$0000094b,$0000094c,$00000949, $0000094d,$0000200d,$00000964,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000966,$00000967,$00000968,$00000969,$0000096a,$0000096b,$0000096c, $0000096d,$0000096e,$0000096f,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57003:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000981,$00000982,$00000983,$00000985,$00000986,$00000987,$00000988, $00000989,$0000098a,$0000098b,$0000098f,$0000098f,$00000990,$00000990,$00000993, $00000993,$00000994,$00000994,$00000995,$00000996,$00000997,$00000998,$00000999, $0000099a,$0000099b,$0000099c,$0000099d,$0000099e,$0000099f,$000009a0,$000009a1, $000009a2,$000009a3,$000009a4,$000009a5,$000009a6,$000009a7,$000009a8,$000009a8, $000009aa,$000009ab,$000009ac,$000009ad,$000009ae,$000009af,$000009df,$000009b0, $000009b0,$000009b2,$000009b2,$000009b2,$000009ac,$000009b6,$000009b7,$000009b8, $000009b9,$0000003f,$000009be,$000009bf,$000009c0,$000009c1,$000009c2,$000009c3, $000009c7,$000009c7,$000009c8,$000009c8,$000009cb,$000009cb,$000009cc,$000009cc, $000009cd,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$000009e6,$000009e7,$000009e8,$000009e9,$000009ea,$000009eb,$000009ec, $000009ed,$000009ee,$000009ef,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57004:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$0000003f,$00000b82,$00000b83,$00000b85,$00000b86,$00000b87,$00000b88, $00000b89,$00000b8a,$0000003f,$00000b8f,$00000b8f,$00000b90,$00000b90,$00000b92, $00000b93,$00000b94,$00000b94,$00000b95,$00000b95,$00000b95,$00000b95,$00000b99, $00000b9a,$00000b9a,$00000b9c,$00000b9c,$00000b9e,$00000b9f,$00000b9f,$00000b9f, $00000b9f,$00000ba3,$00000ba4,$00000ba4,$00000ba4,$00000ba4,$00000ba8,$00000ba9, $00000baa,$00000baa,$00000baa,$00000baa,$00000bae,$00000baf,$00000baf,$00000bb0, $00000bb1,$00000bb2,$00000bb3,$00000bb4,$00000bb5,$00000bb7,$00000bb7,$00000bb8, $00000bb9,$0000003f,$00000bbe,$00000bbf,$00000bc0,$00000bc1,$00000bc2,$0000003f, $00000bc6,$00000bc7,$00000bc8,$00000bc8,$00000bca,$00000bcb,$00000bcc,$00000bcc, $00000bcd,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000030,$00000be7,$00000be8,$00000be9,$00000bea,$00000beb,$00000bec, $00000bed,$00000bee,$00000bef,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57005:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000c01,$00000c02,$00000c03,$00000c05,$00000c06,$00000c07,$00000c08, $00000c09,$00000c0a,$00000c0b,$00000c0e,$00000c0f,$00000c10,$00000c10,$00000c12, $00000c13,$00000c14,$00000c14,$00000c15,$00000c16,$00000c17,$00000c18,$00000c19, $00000c1a,$00000c1b,$00000c1c,$00000c1d,$00000c1e,$00000c1f,$00000c20,$00000c21, $00000c22,$00000c23,$00000c24,$00000c25,$00000c26,$00000c27,$00000c28,$00000c28, $00000c2a,$00000c2b,$00000c2c,$00000c2d,$00000c2e,$00000c2f,$00000c2f,$00000c30, $00000c31,$00000c32,$00000c33,$00000c33,$00000c35,$00000c36,$00000c37,$00000c38, $00000c39,$0000003f,$00000c3e,$00000c3f,$00000c40,$00000c41,$00000c42,$00000c43, $00000c46,$00000c47,$00000c48,$00000c48,$00000c4a,$00000c4b,$00000c4c,$00000c4c, $00000c4d,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000c66,$00000c67,$00000c68,$00000c69,$00000c6a,$00000c6b,$00000c6c, $00000c6d,$00000c6e,$00000c6f,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57006:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000981,$00000982,$00000983,$00000985,$00000986,$00000987,$00000988, $00000989,$0000098a,$0000098b,$0000098f,$0000098f,$00000990,$00000990,$00000993, $00000993,$00000994,$00000994,$00000995,$00000996,$00000997,$00000998,$00000999, $0000099a,$0000099b,$0000099c,$0000099d,$0000099e,$0000099f,$000009a0,$000009a1, $000009a2,$000009a3,$000009a4,$000009a5,$000009a6,$000009a7,$000009a8,$000009a8, $000009aa,$000009ab,$000009ac,$000009ad,$000009ae,$000009af,$000009df,$000009b0, $000009b0,$000009b2,$000009b2,$000009b2,$000009ac,$000009b6,$000009b7,$000009b8, $000009b9,$0000003f,$000009be,$000009bf,$000009c0,$000009c1,$000009c2,$000009c3, $000009c7,$000009c7,$000009c8,$000009c8,$000009cb,$000009cb,$000009cc,$000009cc, $000009cd,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$000009e6,$000009e7,$000009e8,$000009e9,$000009ea,$000009eb,$000009ec, $000009ed,$000009ee,$000009ef,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57007:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000b01,$00000b02,$00000b03,$00000b05,$00000b06,$00000b07,$00000b08, $00000b09,$00000b0a,$00000b0b,$00000b0f,$00000b0f,$00000b10,$00000b10,$00000b10, $00000b13,$00000b14,$00000b14,$00000b15,$00000b16,$00000b17,$00000b18,$00000b19, $00000b1a,$00000b1b,$00000b1c,$00000b1d,$00000b1e,$00000b1f,$00000b20,$00000b21, $00000b22,$00000b23,$00000b24,$00000b25,$00000b26,$00000b27,$00000b28,$00000b28, $00000b2a,$00000b2b,$00000b2c,$00000b2d,$00000b2e,$00000b2f,$00000b5f,$00000b30, $00000b30,$00000b32,$00000b33,$00000b33,$00000b2c,$00000b36,$00000b37,$00000b38, $00000b39,$0000003f,$00000b3e,$00000b3f,$00000b40,$00000b41,$00000b42,$00000b43, $00000b47,$00000b47,$00000b48,$00000b48,$00000b4b,$00000b4b,$00000b4c,$00000b4c, $00000b4d,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000b66,$00000b67,$00000b68,$00000b69,$00000b6a,$00000b6b,$00000b6c, $00000b6d,$00000b6e,$00000b6f,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57008:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$0000003f,$00000c82,$00000c83,$00000c85,$00000c86,$00000c87,$00000c88, $00000c89,$00000c8a,$00000c8b,$00000c8e,$00000c8f,$00000c90,$00000c90,$00000c92, $00000c93,$00000c94,$00000c94,$00000c95,$00000c96,$00000c97,$00000c98,$00000c99, $00000c9a,$00000c9b,$00000c9c,$00000c9d,$00000c9e,$00000c9f,$00000ca0,$00000ca1, $00000ca2,$00000ca3,$00000ca4,$00000ca5,$00000ca6,$00000ca7,$00000ca8,$00000ca8, $00000caa,$00000cab,$00000cac,$00000cad,$00000cae,$00000caf,$00000caf,$00000cb0, $00000cb1,$00000cb2,$00000cb3,$00000cb3,$00000cb5,$00000cb6,$00000cb7,$00000cb8, $00000cb9,$0000003f,$00000cbe,$00000cbf,$00000cc0,$00000cc1,$00000cc2,$00000cc3, $00000cc6,$00000cc7,$00000cc8,$00000cc8,$00000cca,$00000ccb,$00000ccc,$00000ccc, $00000ccd,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000ce6,$00000ce7,$00000ce8,$00000ce9,$00000cea,$00000ceb,$00000cec, $00000ced,$00000cee,$00000cef,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57009:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$0000003f,$00000d02,$00000d03,$00000d05,$00000d06,$00000d07,$00000d08, $00000d09,$00000d0a,$00000d0b,$00000d0e,$00000d0f,$00000d10,$00000d10,$00000d12, $00000d13,$00000d14,$00000d14,$00000d15,$00000d16,$00000d17,$00000d18,$00000d19, $00000d1a,$00000d1b,$00000d1c,$00000d1d,$00000d1e,$00000d1f,$00000d20,$00000d21, $00000d22,$00000d23,$00000d24,$00000d25,$00000d26,$00000d27,$00000d28,$00000d28, $00000d2a,$00000d2b,$00000d2c,$00000d2d,$00000d2e,$00000d2f,$00000d2f,$00000d30, $00000d31,$00000d32,$00000d33,$00000d34,$00000d35,$00000d36,$00000d37,$00000d38, $00000d39,$0000003f,$00000d3e,$00000d3f,$00000d40,$00000d41,$00000d42,$00000d43, $00000d46,$00000d47,$00000d48,$00000d48,$00000d4a,$00000d4b,$00000d4c,$00000d4c, $00000d4d,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000d66,$00000d67,$00000d68,$00000d69,$00000d6a,$00000d6b,$00000d6c, $00000d6d,$00000d6e,$00000d6f,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57010:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$00000a81,$00000a82,$00000a83,$00000a85,$00000a86,$00000a87,$00000a88, $00000a89,$00000a8a,$00000a8b,$00000a8f,$00000a8f,$00000a90,$00000a8d,$00000a8d, $00000a93,$00000a94,$00000a91,$00000a95,$00000a96,$00000a97,$00000a98,$00000a99, $00000a9a,$00000a9b,$00000a9c,$00000a9d,$00000a9e,$00000a9f,$00000aa0,$00000aa1, $00000aa2,$00000aa3,$00000aa4,$00000aa5,$00000aa6,$00000aa7,$00000aa8,$00000aa8, $00000aaa,$00000aab,$00000aac,$00000aad,$00000aae,$00000aaf,$00000aaf,$00000ab0, $00000ab0,$00000ab2,$00000ab3,$00000ab3,$00000ab5,$00000ab6,$00000ab7,$00000ab8, $00000ab9,$0000003f,$00000abe,$00000abf,$00000ac0,$00000ac1,$00000ac2,$00000ac3, $00000ac7,$00000ac7,$00000ac8,$00000ac5,$00000acb,$00000acb,$00000acc,$00000ac9, $00000acd,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000ae6,$00000ae7,$00000ae8,$00000ae9,$00000aea,$00000aeb,$00000aec, $00000aed,$00000aee,$00000aef,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetCodePage57011:TPUCUCharSetCodePage=( $00000000,$00000001,$00000002,$00000003,$00000004,$00000005,$00000006,$00000007, $00000008,$00000009,$0000000a,$0000000b,$0000000c,$0000000d,$0000000e,$0000000f, $00000010,$00000011,$00000012,$00000013,$00000014,$00000015,$00000016,$00000017, $00000018,$00000019,$0000001a,$0000001b,$0000001c,$0000001d,$0000001e,$0000001f, $00000020,$00000021,$00000022,$00000023,$00000024,$00000025,$00000026,$00000027, $00000028,$00000029,$0000002a,$0000002b,$0000002c,$0000002d,$0000002e,$0000002f, $00000030,$00000031,$00000032,$00000033,$00000034,$00000035,$00000036,$00000037, $00000038,$00000039,$0000003a,$0000003b,$0000003c,$0000003d,$0000003e,$0000003f, $00000040,$00000041,$00000042,$00000043,$00000044,$00000045,$00000046,$00000047, $00000048,$00000049,$0000004a,$0000004b,$0000004c,$0000004d,$0000004e,$0000004f, $00000050,$00000051,$00000052,$00000053,$00000054,$00000055,$00000056,$00000057, $00000058,$00000059,$0000005a,$0000005b,$0000005c,$0000005d,$0000005e,$0000005f, $00000060,$00000061,$00000062,$00000063,$00000064,$00000065,$00000066,$00000067, $00000068,$00000069,$0000006a,$0000006b,$0000006c,$0000006d,$0000006e,$0000006f, $00000070,$00000071,$00000072,$00000073,$00000074,$00000075,$00000076,$00000077, $00000078,$00000079,$0000007a,$0000007b,$0000007c,$0000007d,$0000007e,$0000007f, $00000080,$00000081,$00000082,$00000083,$00000084,$00000085,$00000086,$00000087, $00000088,$00000089,$0000008a,$0000008b,$0000008c,$0000008d,$0000008e,$0000008f, $00000090,$00000091,$00000092,$00000093,$00000094,$00000095,$00000096,$00000097, $00000098,$00000099,$0000009a,$0000009b,$0000009c,$0000009d,$0000009e,$0000009f, $0000003f,$0000003f,$00000a02,$0000003f,$00000a05,$00000a06,$00000a07,$00000a08, $00000a09,$00000a0a,$0000003f,$00000a0f,$00000a0f,$00000a10,$00000a10,$00000a10, $00000a13,$00000a14,$00000a14,$00000a15,$00000a16,$00000a17,$00000a18,$00000a19, $00000a1a,$00000a1b,$00000a1c,$00000a1d,$00000a1e,$00000a1f,$00000a20,$00000a21, $00000a22,$00000a23,$00000a24,$00000a25,$00000a26,$00000a27,$00000a28,$00000a28, $00000a2a,$00000a2b,$00000a2c,$00000a2d,$00000a2e,$00000a2f,$00000a2f,$00000a30, $00000a30,$00000a32,$00000a33,$00000a33,$00000a35,$00000a36,$00000a36,$00000a38, $00000a39,$0000003f,$00000a3e,$00000a3f,$00000a40,$00000a41,$00000a42,$0000003f, $00000a47,$00000a47,$00000a48,$00000a48,$00000a4b,$00000a4b,$00000a4c,$00000a4c, $00000a4d,$0000200d,$0000002e,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f, $0000003f,$00000a66,$00000a67,$00000a68,$00000a69,$00000a6a,$00000a6b,$00000a6c, $00000a6d,$00000a6e,$00000a6f,$0000003f,$0000003f,$0000003f,$0000003f,$0000003f); const PUCUCharSetSubSubCodePage2:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, @PUCUCharSetCodePage37, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage27:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, @PUCUCharSetCodePage437, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage31:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, @PUCUCharSetCodePage500, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage44:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, @PUCUCharSetCodePage708, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage45:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage720, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage46:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage737, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage48:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage775, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage53:TPUCUCharSetSubSubCodePages=( nil, nil, @PUCUCharSetCodePage850, nil, @PUCUCharSetCodePage852, nil, nil, @PUCUCharSetCodePage855, nil, @PUCUCharSetCodePage857, @PUCUCharSetCodePage858, nil, @PUCUCharSetCodePage860, @PUCUCharSetCodePage861, @PUCUCharSetCodePage862, @PUCUCharSetCodePage863 ); const PUCUCharSetSubSubCodePage54:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage864, @PUCUCharSetCodePage865, @PUCUCharSetCodePage866, nil, nil, @PUCUCharSetCodePage869, @PUCUCharSetCodePage870, nil, nil, nil, @PUCUCharSetCodePage874, @PUCUCharSetCodePage875, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage58:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage59:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage64:TPUCUCharSetSubSubCodePages=( nil, nil, @PUCUCharSetCodePage1026, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage65:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage1047, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage71:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, @PUCUCharSetCodePage1140, @PUCUCharSetCodePage1141, @PUCUCharSetCodePage1142, @PUCUCharSetCodePage1143, @PUCUCharSetCodePage1144, @PUCUCharSetCodePage1145, @PUCUCharSetCodePage1146, @PUCUCharSetCodePage1147, @PUCUCharSetCodePage1148, @PUCUCharSetCodePage1149, nil, nil ); const PUCUCharSetSubSubCodePage78:TPUCUCharSetSubSubCodePages=( nil, nil, @PUCUCharSetCodePage1250, @PUCUCharSetCodePage1251, @PUCUCharSetCodePage1252, @PUCUCharSetCodePage1253, @PUCUCharSetCodePage1254, @PUCUCharSetCodePage1255, @PUCUCharSetCodePage1256, @PUCUCharSetCodePage1257, @PUCUCharSetCodePage1258, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage85:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage625:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage10000, nil, nil, nil, @PUCUCharSetCodePage10004, @PUCUCharSetCodePage10005, @PUCUCharSetCodePage10006, @PUCUCharSetCodePage10007, nil, nil, @PUCUCharSetCodePage10010, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage626:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage10017, nil, nil, nil, @PUCUCharSetCodePage10021, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage10029, nil, nil ); const PUCUCharSetSubSubCodePage629:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage10079 ); const PUCUCharSetSubSubCodePage630:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage10081, @PUCUCharSetCodePage10082, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1250:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1256:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20105, @PUCUCharSetCodePage20106, @PUCUCharSetCodePage20107, @PUCUCharSetCodePage20108, nil, nil, nil ); const PUCUCharSetSubSubCodePage1257:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20127 ); const PUCUCharSetSubSubCodePage1266:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20269, nil, nil ); const PUCUCharSetSubSubCodePage1267:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage20273, nil, nil, nil, @PUCUCharSetCodePage20277, @PUCUCharSetCodePage20278, nil, @PUCUCharSetCodePage20280, nil, nil, nil, @PUCUCharSetCodePage20284, @PUCUCharSetCodePage20285, nil, nil ); const PUCUCharSetSubSubCodePage1268:TPUCUCharSetSubSubCodePages=( nil, nil, @PUCUCharSetCodePage20290, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20297, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1276:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, @PUCUCharSetCodePage20420, nil, nil, @PUCUCharSetCodePage20423, @PUCUCharSetCodePage20424, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1302:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage20833, nil, nil, nil, nil, @PUCUCharSetCodePage20838, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1304:TPUCUCharSetSubSubCodePages=( nil, nil, @PUCUCharSetCodePage20866, nil, nil, nil, nil, @PUCUCharSetCodePage20871, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1305:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage20880, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1306:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20905, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1307:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage20924, nil, nil, nil ); const PUCUCharSetSubSubCodePage1308:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1309:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1314:TPUCUCharSetSubSubCodePages=( nil, @PUCUCharSetCodePage21025, nil, @PUCUCharSetCodePage21027, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1366:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage21866, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage1786:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage28591 ); const PUCUCharSetSubSubCodePage1787:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage28592, @PUCUCharSetCodePage28593, @PUCUCharSetCodePage28594, @PUCUCharSetCodePage28595, @PUCUCharSetCodePage28596, @PUCUCharSetCodePage28597, @PUCUCharSetCodePage28598, @PUCUCharSetCodePage28599, nil, nil, nil, @PUCUCharSetCodePage28603, nil, @PUCUCharSetCodePage28605, nil, nil ); const PUCUCharSetSubSubCodePage2412:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage38598, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3138:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3139:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3246:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3308:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3433:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3437:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage3562:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodePage57002, @PUCUCharSetCodePage57003, @PUCUCharSetCodePage57004, @PUCUCharSetCodePage57005, @PUCUCharSetCodePage57006, @PUCUCharSetCodePage57007 ); const PUCUCharSetSubSubCodePage3563:TPUCUCharSetSubSubCodePages=( @PUCUCharSetCodePage57008, @PUCUCharSetCodePage57009, @PUCUCharSetCodePage57010, @PUCUCharSetCodePage57011, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetSubSubCodePage4062:TPUCUCharSetSubSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage0:TPUCUCharSetSubCodePages=( nil, nil, @PUCUCharSetSubSubCodePage2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage1:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage27, nil, nil, nil, @PUCUCharSetSubSubCodePage31 ); const PUCUCharSetCodeSubPage2:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage44, @PUCUCharSetSubSubCodePage45, @PUCUCharSetSubSubCodePage46, nil ); const PUCUCharSetCodeSubPage3:TPUCUCharSetSubCodePages=( @PUCUCharSetSubSubCodePage48, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage53, @PUCUCharSetSubSubCodePage54, nil, nil, nil, @PUCUCharSetSubSubCodePage58, @PUCUCharSetSubSubCodePage59, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage4:TPUCUCharSetSubCodePages=( @PUCUCharSetSubSubCodePage64, @PUCUCharSetSubSubCodePage65, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage71, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage78, nil ); const PUCUCharSetCodeSubPage5:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage85, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage39:TPUCUCharSetSubCodePages=( nil, @PUCUCharSetSubSubCodePage625, @PUCUCharSetSubSubCodePage626, nil, nil, @PUCUCharSetSubSubCodePage629, @PUCUCharSetSubSubCodePage630, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage78:TPUCUCharSetSubCodePages=( nil, nil, @PUCUCharSetSubSubCodePage1250, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage1256, @PUCUCharSetSubSubCodePage1257, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage79:TPUCUCharSetSubCodePages=( nil, nil, @PUCUCharSetSubSubCodePage1266, @PUCUCharSetSubSubCodePage1267, @PUCUCharSetSubSubCodePage1268, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage1276, nil, nil, nil ); const PUCUCharSetCodeSubPage81:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage1302, nil, @PUCUCharSetSubSubCodePage1304, @PUCUCharSetSubSubCodePage1305, @PUCUCharSetSubSubCodePage1306, @PUCUCharSetSubSubCodePage1307, @PUCUCharSetSubSubCodePage1308, @PUCUCharSetSubSubCodePage1309, nil, nil ); const PUCUCharSetCodeSubPage82:TPUCUCharSetSubCodePages=( nil, nil, @PUCUCharSetSubSubCodePage1314, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage85:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage1366, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage111:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage1786, @PUCUCharSetSubSubCodePage1787, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage150:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage2412, nil, nil, nil ); const PUCUCharSetCodeSubPage196:TPUCUCharSetSubCodePages=( nil, nil, @PUCUCharSetSubSubCodePage3138, @PUCUCharSetSubSubCodePage3139, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage202:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage3246, nil ); const PUCUCharSetCodeSubPage206:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage3308, nil, nil, nil ); const PUCUCharSetCodeSubPage214:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage3433, nil, nil, nil, @PUCUCharSetSubSubCodePage3437, nil, nil ); const PUCUCharSetCodeSubPage222:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage3562, @PUCUCharSetSubSubCodePage3563, nil, nil, nil, nil ); const PUCUCharSetCodeSubPage253:TPUCUCharSetSubCodePages=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePage4062, nil ); const PUCUCharSetCodePages:TPUCUCharSetCodePages=( @PUCUCharSetCodeSubPage0, @PUCUCharSetCodeSubPage1, @PUCUCharSetCodeSubPage2, @PUCUCharSetCodeSubPage3, @PUCUCharSetCodeSubPage4, @PUCUCharSetCodeSubPage5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage39, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage78, @PUCUCharSetCodeSubPage79, nil, @PUCUCharSetCodeSubPage81, @PUCUCharSetCodeSubPage82, nil, nil, @PUCUCharSetCodeSubPage85, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage111, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage150, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage196, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage202, nil, nil, nil, @PUCUCharSetCodeSubPage206, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage214, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage222, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPage253, nil, nil ); const PUCUCharSetSubSubCodePageNames2:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '37 (IBM EBCDIC - U.S./Canada)', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames27:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '437 (OEM - United States)', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames31:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '500 (IBM EBCDIC - International)', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames44:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '708 (Arabic - ASMO)', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames45:TPUCUCharSetSubSubCodePageNames=( '720 (Arabic - Transparent ASMO)', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames46:TPUCUCharSetSubSubCodePageNames=( '', '737 (OEM - Greek 437G)', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames48:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '775 (OEM - Baltic)', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames53:TPUCUCharSetSubSubCodePageNames=( '', '', '850 (OEM - Multilingual Latin I)', '', '852 (OEM - Latin II)', '', '', '855 (OEM - Cyrillic)', '', '857 (OEM - Turkish)', '858 (OEM - Multilingual Latin I + Euro)', '', '860 (OEM - Portuguese)', '861 (OEM - Icelandic)', '862 (OEM - Hebrew)', '863 (OEM - Canadian French)' ); const PUCUCharSetSubSubCodePageNames54:TPUCUCharSetSubSubCodePageNames=( '864 (OEM - Arabic)', '865 (OEM - Nordic)', '866 (OEM - Russian)', '', '', '869 (OEM - Modern Greek)', '870 (IBM EBCDIC - Multilingual/ROECE (Latin-2))', '', '', '', '874 (ANSI/OEM - Thai)', '875 (IBM EBCDIC - Modern Greek)', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames58:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames59:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames64:TPUCUCharSetSubSubCodePageNames=( '', '', '1026 (IBM EBCDIC - Turkish (Latin-5))', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames65:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '1047 (IBM EBCDIC - Latin-1/Open System)', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames71:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '1140 (IBM EBCDIC - U.S./Canada (37 + Euro))', '1141 (IBM EBCDIC - Germany (20273 + Euro))', '1142 (IBM EBCDIC - Denmark/Norway (20277 + Euro))', '1143 (IBM EBCDIC - Finland/Sweden (20278 + Euro))', '1144 (IBM EBCDIC - Italy (20280 + Euro))', '1145 (IBM EBCDIC - Latin America/Spain (20284 + Euro))', '1146 (IBM EBCDIC - United Kingdom (20285 + Euro))', ''#$01'', '1148 (IBM EBCDIC - International (500 + Euro))', '1149 (IBM EBCDIC - Icelandic (20871 + Euro))', '', '' ); const PUCUCharSetSubSubCodePageNames78:TPUCUCharSetSubSubCodePageNames=( '', '', '1250 (ANSI - Central Europe)', '1251 (ANSI - Cyrillic)', '1252 (ANSI - Latin I)', '1253 (ANSI - Greek)', '1254 (ANSI - Turkish)', '1255 (ANSI - Hebrew)', '1256 (ANSI - Arabic)', '1257 (ANSI - Baltic)', '1258 (ANSI/OEM - Viet Nam)', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames85:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames625:TPUCUCharSetSubSubCodePageNames=( '10000 (MAC - Roman)', '', '', '', '10004 (MAC - Arabic)', '10005 (MAC - Hebrew)', '10006 (MAC - Greek I)', '10007 (MAC - Cyrillic)', '', '', '10010 (MAC - Romania)', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames626:TPUCUCharSetSubSubCodePageNames=( '', '10017 (MAC - Ukraine)', '', '', '', '10021 (MAC - Thai)', '', '', '', '', '', '', '', '10029 (MAC - Latin II)', '', '' ); const PUCUCharSetSubSubCodePageNames629:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '10079 (MAC - Icelandic)' ); const PUCUCharSetSubSubCodePageNames630:TPUCUCharSetSubSubCodePageNames=( '', '10081 (MAC - Turkish)', '10082 (MAC - Croatia)', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1250:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1256:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '20105 (IA5 IRV International Alphabet No.5)', '20106 (IA5 German)', '20107 (IA5 Swedish)', '20108 (IA5 Norwegian)', '', '', '' ); const PUCUCharSetSubSubCodePageNames1257:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '20127 (US-ASCII)' ); const PUCUCharSetSubSubCodePageNames1266:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '20269 (ISO 6937 Non-Spacing Accent)', '', '' ); const PUCUCharSetSubSubCodePageNames1267:TPUCUCharSetSubSubCodePageNames=( '', '20273 (IBM EBCDIC - Germany)', '', '', '', '20277 (IBM EBCDIC - Denmark/Norway)', '20278 (IBM EBCDIC - Finland/Sweden)', '', '20280 (IBM EBCDIC - Italy)', '', '', '', '20284 (IBM EBCDIC - Latin America/Spain)', '20285 (IBM EBCDIC - United Kingdom)', '', '' ); const PUCUCharSetSubSubCodePageNames1268:TPUCUCharSetSubSubCodePageNames=( '', '', '20290 (IBM EBCDIC - Japanese Katakana Extended)', '', '', '', '', '', '', '20297 (IBM EBCDIC - France)', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1276:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '20420 (IBM EBCDIC - Arabic)', '', '', '20423 (IBM EBCDIC - Greek)', '20424 (IBM EBCDIC - Hebrew)', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1302:TPUCUCharSetSubSubCodePageNames=( '', '20833 (IBM EBCDIC - Korean Extended)', '', '', '', '', '20838 (IBM EBCDIC - Thai)', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1304:TPUCUCharSetSubSubCodePageNames=( '', '', '20866 (Russian - KOI8)', '', '', '', '', '20871 (IBM EBCDIC - Icelandic)', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1305:TPUCUCharSetSubSubCodePageNames=( '20880 (IBM EBCDIC - Cyrillic (Russian))', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1306:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '20905 (IBM EBCDIC - Turkish)', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1307:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '20924 (IBM EBCDIC - Latin-1/Open System (1047 + Euro))', '', '', '' ); const PUCUCharSetSubSubCodePageNames1308:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1309:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1314:TPUCUCharSetSubSubCodePageNames=( '', '21025 (IBM EBCDIC - Cyrillic (Serbian, Bulgarian))', '', '21027 (Ext Alpha Lowercase)', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1366:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '21866 (Ukrainian - KOI8-U)', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames1786:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '28591 (ISO 8859-1 Latin I)' ); const PUCUCharSetSubSubCodePageNames1787:TPUCUCharSetSubSubCodePageNames=( '28592 (ISO 8859-2 Central Europe)', '28593 (ISO 8859-3 Latin 3)', '28594 (ISO 8859-4 Baltic)', '28595 (ISO 8859-5 Cyrillic)', '28596 (ISO 8859-6 Arabic)', '28597 (ISO 8859-7 Greek)', '28598 (ISO 8859-8 Hebrew: Visual Ordering)', '28599 (ISO 8859-9 Latin 5)', '', '', '', '28603 (ISO 8859-13 Latin 7)', '', '28605 (ISO 8859-15 Latin 9)', '', '' ); const PUCUCharSetSubSubCodePageNames2412:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '38598 (ISO 8859-8 Hebrew: Logical Ordering)', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3138:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3139:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3246:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3308:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3433:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3437:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames3562:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '57002 (ISCII - Devanagari)', '57003 (ISCII - Bengali)', '57004 (ISCII - Tamil)', '57005 (ISCII - Telugu)', '57006 (ISCII - Assamese)', '57007 (ISCII - Odia (Oriya))' ); const PUCUCharSetSubSubCodePageNames3563:TPUCUCharSetSubSubCodePageNames=( '57008 (ISCII - Kannada)', '57009 (ISCII - Malayalam)', '57010 (ISCII - Gujarati)', '57011 (ISCII - Punjabi (Gurmukhi))', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetSubSubCodePageNames4062:TPUCUCharSetSubSubCodePageNames=( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); const PUCUCharSetCodeSubPageNames0:TPUCUCharSetSubCodePageNames=( nil, nil, @PUCUCharSetSubSubCodePageNames2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames1:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames27, nil, nil, nil, @PUCUCharSetSubSubCodePageNames31 ); const PUCUCharSetCodeSubPageNames2:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames44, @PUCUCharSetSubSubCodePageNames45, @PUCUCharSetSubSubCodePageNames46, nil ); const PUCUCharSetCodeSubPageNames3:TPUCUCharSetSubCodePageNames=( @PUCUCharSetSubSubCodePageNames48, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames53, @PUCUCharSetSubSubCodePageNames54, nil, nil, nil, @PUCUCharSetSubSubCodePageNames58, @PUCUCharSetSubSubCodePageNames59, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames4:TPUCUCharSetSubCodePageNames=( @PUCUCharSetSubSubCodePageNames64, @PUCUCharSetSubSubCodePageNames65, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames71, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames78, nil ); const PUCUCharSetCodeSubPageNames5:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames85, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames39:TPUCUCharSetSubCodePageNames=( nil, @PUCUCharSetSubSubCodePageNames625, @PUCUCharSetSubSubCodePageNames626, nil, nil, @PUCUCharSetSubSubCodePageNames629, @PUCUCharSetSubSubCodePageNames630, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames78:TPUCUCharSetSubCodePageNames=( nil, nil, @PUCUCharSetSubSubCodePageNames1250, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames1256, @PUCUCharSetSubSubCodePageNames1257, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames79:TPUCUCharSetSubCodePageNames=( nil, nil, @PUCUCharSetSubSubCodePageNames1266, @PUCUCharSetSubSubCodePageNames1267, @PUCUCharSetSubSubCodePageNames1268, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames1276, nil, nil, nil ); const PUCUCharSetCodeSubPageNames81:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames1302, nil, @PUCUCharSetSubSubCodePageNames1304, @PUCUCharSetSubSubCodePageNames1305, @PUCUCharSetSubSubCodePageNames1306, @PUCUCharSetSubSubCodePageNames1307, @PUCUCharSetSubSubCodePageNames1308, @PUCUCharSetSubSubCodePageNames1309, nil, nil ); const PUCUCharSetCodeSubPageNames82:TPUCUCharSetSubCodePageNames=( nil, nil, @PUCUCharSetSubSubCodePageNames1314, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames85:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames1366, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames111:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames1786, @PUCUCharSetSubSubCodePageNames1787, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames150:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames2412, nil, nil, nil ); const PUCUCharSetCodeSubPageNames196:TPUCUCharSetSubCodePageNames=( nil, nil, @PUCUCharSetSubSubCodePageNames3138, @PUCUCharSetSubSubCodePageNames3139, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames202:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames3246, nil ); const PUCUCharSetCodeSubPageNames206:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames3308, nil, nil, nil ); const PUCUCharSetCodeSubPageNames214:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames3433, nil, nil, nil, @PUCUCharSetSubSubCodePageNames3437, nil, nil ); const PUCUCharSetCodeSubPageNames222:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames3562, @PUCUCharSetSubSubCodePageNames3563, nil, nil, nil, nil ); const PUCUCharSetCodeSubPageNames253:TPUCUCharSetSubCodePageNames=( nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetSubSubCodePageNames4062, nil ); const PUCUCharSetCodePageNames:TPUCUCharSetCodePageNames=( @PUCUCharSetCodeSubPageNames0, @PUCUCharSetCodeSubPageNames1, @PUCUCharSetCodeSubPageNames2, @PUCUCharSetCodeSubPageNames3, @PUCUCharSetCodeSubPageNames4, @PUCUCharSetCodeSubPageNames5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames39, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames78, @PUCUCharSetCodeSubPageNames79, nil, @PUCUCharSetCodeSubPageNames81, @PUCUCharSetCodeSubPageNames82, nil, nil, @PUCUCharSetCodeSubPageNames85, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames111, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames150, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames196, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames202, nil, nil, nil, @PUCUCharSetCodeSubPageNames206, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames214, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames222, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, @PUCUCharSetCodeSubPageNames253, nil, nil ); function PUCUUnicodeGetCategoryFromTable(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetScriptFromTable(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetCanonicalCombiningClassFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetUpperCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetLowerCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetTitleCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeGetDecompositionStartFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeIsWord(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} function PUCUUnicodeIsIDBegin(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} function PUCUUnicodeIsIDPart(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} function PUCUUnicodeIsWhiteSpace(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} function PUCUUnicodeToUpper(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeToLower(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} function PUCUUnicodeToTitle(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} function PUCUIsUTF8(const s:TPUCURawByteString):boolean; function PUCUUTF8Validate(const s:TPUCURawByteString):boolean; function PUCUUTF8Get(const s:TPUCURawByteString):TPUCUInt32; function PUCUUTF8PtrGet(const s:PPUCURawByteChar;Len:TPUCUInt32):TPUCUInt32; procedure PUCUUTF8SafeInc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); procedure PUCUUTF8PtrSafeInc(const s:PPUCURawByteChar;var Len,CodeUnit:TPUCUInt32); procedure PUCUUTF8Inc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); procedure PUCUUTF8PtrInc(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32); procedure PUCUUTF8Dec(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); procedure PUCUUTF8PtrDec(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32); procedure PUCUUTF8Delete(var s:TPUCURawByteString;CodeUnit:TPUCUInt32); function PUCUUTF8Length(const s:TPUCURawByteString):TPUCUInt32;{$ifdef cpu386}assembler; register;{$endif} function PUCUUTF8PtrLength(const s:TPUCURawByteString;Len:TPUCUInt32):TPUCUInt32;{$ifdef cpu386}assembler; register;{$endif} function PUCUUTF8LengthEx(const s:TPUCURawByteString):TPUCUInt32; function PUCUUTF8GetCodePoint(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUInt32; function PUCUUTF8PtrGetCodePoint(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUInt32; function PUCUUTF8GetCodeUnit(const s:TPUCURawByteString;CodePoint:TPUCUInt32):TPUCUInt32; function PUCUUTF8PtrGetCodeUnit(const s:TPUCURawByteString;Len,CodePoint:TPUCUInt32):TPUCUInt32; function PUCUUTF8CodeUnitGetChar(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8PtrCodeUnitGetChar(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8PtrCodeUnitGetCharFallback(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8CodeUnitGetCharAndInc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8PtrCodeUnitGetCharAndInc(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8CodeUnitGetCharFallback(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8CodeUnitGetCharAndIncFallback(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8PtrCodeUnitGetCharAndIncFallback(const s:PPUCURawByteChar;const Len:TPUCUInt32;var CodeUnit:TPUCUInt32):TPUCUUInt32; function PUCUUTF8CodePointGetChar(const s:TPUCURawByteString;CodePoint:TPUCUInt32;Fallback:boolean=false):TPUCUUInt32; function PUCUUTF8GetCharLen(const s:TPUCURawByteString;i:TPUCUInt32):TPUCUUInt32; function PUCUUTF8Pos(const FindStr,InStr:TPUCURawByteString):TPUCUInt32; function PUCUUTF8LastPos(const FindStr,InStr:TPUCURawByteString):TPUCUInt32; function PUCUUTF8Copy(const Str:TPUCURawByteString;Start,Len:TPUCUInt32):TPUCURawByteString; function PUCUUTF8UpperCase(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8LowerCase(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8Trim(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8TrimLeft(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8TrimRight(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8Correct(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8FromLatin1(const Str:TPUCURawByteString):TPUCURawByteString; function PUCUUTF8LevenshteinDistance(const s,t:TPUCURawByteString):TPUCUInt32; function PUCUUTF8DamerauLevenshteinDistance(const s,t:TPUCURawByteString):TPUCUInt32; function PUCUStringLength(const s:TPUCURawByteString):TPUCUInt32; function PUCUUTF16Correct(const Str:TPUCUUTF16String):TPUCUUTF16String; function PUCUUTF16UpperCase(const Str:TPUCUUTF16String):TPUCUUTF16String; function PUCUUTF16LowerCase(const Str:TPUCUUTF16String):TPUCUUTF16String; function PUCUUTF32CharToUTF8(CharValue:TPUCUUTF32Char):TPUCURawByteString; function PUCUUTF32CharToUTF8At(CharValue:TPUCUUTF32Char;var s:TPUCURawByteString;const Index:TPUCUInt32):TPUCUInt32; function PUCUUTF32CharToUTF8Len(CharValue:TPUCUUTF32Char):TPUCUInt32; function PUCUUTF32ToUTF8(const s:TPUCUUTF32String):TPUCUUTF8String; function PUCUUTF8ToUTF32(const s:TPUCUUTF8String):TPUCUUTF32String; function PUCUUTF8ToUTF16(const s:TPUCUUTF8String):TPUCUUTF16STRING; function PUCUUTF16ToUTF8(const s:TPUCUUTF16STRING):TPUCUUTF8String; function PUCUUTF16ToUTF32(const Value:TPUCUUTF16String):TPUCUUTF32String; function PUCUUTF32ToUTF16(const Value:TPUCUUTF32String):TPUCUUTF16String; function PUCUUTF32CharToUTF16(const Value:TPUCUUTF32Char):TPUCUUTF16String; function PUCUUTF32CharToUTF16Len(const Value:TPUCUUTF32Char):TPUCUInt32; function PUCURawDataToUTF8String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; function PUCURawDataToUTF16String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; function PUCURawDataToUTF32String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; function PUCURawByteStringToUTF8String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; function PUCURawByteStringToUTF16String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; function PUCURawByteStringToUTF32String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; function PUCURawStreamToUTF8String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; function PUCURawStreamToUTF16String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; function PUCURawStreamToUTF32String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; function PUCUUTF32Normalize(const aString:TPUCUUTF32String;const aCompose:boolean=true):TPUCUUTF32String; function PUCUUTF16Normalize(const aString:TPUCUUTF16String;const aCompose:boolean=true):TPUCUUTF16String; function PUCUUTF8Normalize(const aString:TPUCUUTF8String;const aCompose:boolean=true):TPUCUUTF8String; implementation function PUCUUnicodeGetCategoryFromTable(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeCategoryArrayBlockBits; result:=PUCUUnicodeCategoryArrayBlockData[PUCUUnicodeCategoryArrayIndexBlockData[PUCUUnicodeCategoryArrayIndexIndexData[Index shr PUCUUnicodeCategoryArrayIndexBlockBits],Index and PUCUUnicodeCategoryArrayIndexBlockMask],c and PUCUUnicodeCategoryArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetScriptFromTable(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeScriptArrayBlockBits; result:=PUCUUnicodeScriptArrayBlockData[PUCUUnicodeScriptArrayIndexBlockData[PUCUUnicodeScriptArrayIndexIndexData[Index shr PUCUUnicodeScriptArrayIndexBlockBits],Index and PUCUUnicodeScriptArrayIndexBlockMask],c and PUCUUnicodeScriptArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetCanonicalCombiningClassFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeCanonicalCombiningClassArrayBlockBits; result:=PUCUUnicodeCanonicalCombiningClassArrayBlockData[PUCUUnicodeCanonicalCombiningClassArrayIndexBlockData[PUCUUnicodeCanonicalCombiningClassArrayIndexIndexData[Index shr PUCUUnicodeCanonicalCombiningClassArrayIndexBlockBits],Index and PUCUUnicodeCanonicalCombiningClassArrayIndexBlockMask],c and PUCUUnicodeCanonicalCombiningClassArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetUpperCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeUpperCaseDeltaArrayBlockBits; result:=PUCUUnicodeUpperCaseDeltaArrayBlockData[PUCUUnicodeUpperCaseDeltaArrayIndexBlockData[PUCUUnicodeUpperCaseDeltaArrayIndexIndexData[Index shr PUCUUnicodeUpperCaseDeltaArrayIndexBlockBits],Index and PUCUUnicodeUpperCaseDeltaArrayIndexBlockMask],c and PUCUUnicodeUpperCaseDeltaArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetLowerCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeLowerCaseDeltaArrayBlockBits; result:=PUCUUnicodeLowerCaseDeltaArrayBlockData[PUCUUnicodeLowerCaseDeltaArrayIndexBlockData[PUCUUnicodeLowerCaseDeltaArrayIndexIndexData[Index shr PUCUUnicodeLowerCaseDeltaArrayIndexBlockBits],Index and PUCUUnicodeLowerCaseDeltaArrayIndexBlockMask],c and PUCUUnicodeLowerCaseDeltaArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetTitleCaseDeltaFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeTitleCaseDeltaArrayBlockBits; result:=PUCUUnicodeTitleCaseDeltaArrayBlockData[PUCUUnicodeTitleCaseDeltaArrayIndexBlockData[PUCUUnicodeTitleCaseDeltaArrayIndexIndexData[Index shr PUCUUnicodeTitleCaseDeltaArrayIndexBlockBits],Index and PUCUUnicodeTitleCaseDeltaArrayIndexBlockMask],c and PUCUUnicodeTitleCaseDeltaArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeGetDecompositionStartFromTable(c:TPUCUUInt32):TPUCUInt32; {$ifdef caninline}inline;{$endif} var Index:TPUCUUInt32; begin if c<=$10ffff then begin Index:=c shr PUCUUnicodeDecompositionStartArrayBlockBits; result:=PUCUUnicodeDecompositionStartArrayBlockData[PUCUUnicodeDecompositionStartArrayIndexBlockData[PUCUUnicodeDecompositionStartArrayIndexIndexData[Index shr PUCUUnicodeDecompositionStartArrayIndexBlockBits],Index and PUCUUnicodeDecompositionStartArrayIndexBlockMask],c and PUCUUnicodeDecompositionStartArrayBlockMask]; end else begin result:=0; end; end; function PUCUUnicodeIsWord(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} begin result:=(PUCUUnicodeGetCategoryFromTable(c) in [PUCUUnicodeCategoryLu,PUCUUnicodeCategoryLl,PUCUUnicodeCategoryLt,PUCUUnicodeCategoryLm,PUCUUnicodeCategoryLo,PUCUUnicodeCategoryNd,PUCUUnicodeCategoryNl,PUCUUnicodeCategoryNo,PUCUUnicodeCategoryPc]) or (c=ord('_')); end; function PUCUUnicodeIsIDBegin(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} begin result:=(PUCUUnicodeGetCategoryFromTable(c) in [PUCUUnicodeCategoryLu,PUCUUnicodeCategoryLl,PUCUUnicodeCategoryLt,PUCUUnicodeCategoryLm,PUCUUnicodeCategoryLo,PUCUUnicodeCategoryNl,PUCUUnicodeCategoryNo,PUCUUnicodeCategoryPc]) or (c=ord('_')); end; function PUCUUnicodeIsIDPart(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} begin result:=(PUCUUnicodeGetCategoryFromTable(c) in [PUCUUnicodeCategoryLu,PUCUUnicodeCategoryLl,PUCUUnicodeCategoryLt,PUCUUnicodeCategoryLm,PUCUUnicodeCategoryLo,PUCUUnicodeCategoryNd,PUCUUnicodeCategoryNl,PUCUUnicodeCategoryNo,PUCUUnicodeCategoryPc]) or (c=ord('_')); end; function PUCUUnicodeIsWhiteSpace(c:TPUCUUInt32):boolean; {$ifdef caninline}inline;{$endif} begin //result:=UnicodeGetCategoryFromTable(c) in [PUCUUnicodeCategoryZs,PUCUUnicodeCategoryZp,PUCUUnicodeCategoryZl]; result:=((c>=$0009) and (c<=$000d)) or (c=$0020) or (c=$00a0) or (c=$1680) or (c=$180e) or ((c>=$2000) and (c<=$200b)) or (c=$2028) or (c=$2029) or (c=$202f) or (c=$205f) or (c=$3000) or (c=$feff) or (c=$fffe); end; function PUCUUnicodeToUpper(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} begin result:=TPUCUUInt32(TPUCUInt32(TPUCUInt32(c)+PUCUUnicodeGetUpperCaseDeltaFromTable(c))); end; function PUCUUnicodeToLower(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} begin result:=TPUCUUInt32(TPUCUInt32(TPUCUInt32(c)+PUCUUnicodeGetLowerCaseDeltaFromTable(c))); end; function PUCUUnicodeToTitle(c:TPUCUUInt32):TPUCUUInt32; {$ifdef caninline}inline;{$endif} begin result:=TPUCUUInt32(TPUCUInt32(TPUCUInt32(c)+PUCUUnicodeGetTitleCaseDeltaFromTable(c))); end; function PUCUIsUTF8(const s:TPUCURawByteString):boolean; var CodeUnit,CodePoints:TPUCUInt32; State:TPUCUUInt32; begin State:=ucACCEPT; CodePoints:=0; for CodeUnit:=1 to length(s) do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; case State of ucACCEPT:begin inc(CodePoints); end; ucERROR:begin result:=false; exit; end; end; end; result:=(State=ucACCEPT) and (length(s)<>CodePoints); end; function PUCUUTF8Validate(const s:TPUCURawByteString):boolean; var CodeUnit:TPUCUInt32; State:TPUCUUInt32; begin State:=ucACCEPT; for CodeUnit:=1 to length(s) do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; if State=ucERROR then begin result:=false; exit; end; end; result:=State=ucACCEPT; end; function PUCUUTF8Get(const s:TPUCURawByteString):TPUCUInt32; var CodeUnit,CodePoints:TPUCUInt32; State:TPUCUUInt32; begin State:=ucACCEPT; CodePoints:=0; for CodeUnit:=1 to length(s) do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; case State of ucACCEPT:begin inc(CodePoints); end; ucERROR:begin result:=suNOUTF8; exit; end; end; end; if State=ucACCEPT then begin if length(s)<>CodePoints then begin result:=suISUTF8; end else begin result:=suPOSSIBLEUTF8; end; end else begin result:=suNOUTF8; end; end; function PUCUUTF8PtrGet(const s:PPUCURawByteChar;Len:TPUCUInt32):TPUCUInt32; var CodeUnit,CodePoints:TPUCUInt32; State:TPUCUUInt32; begin State:=ucACCEPT; CodePoints:=0; for CodeUnit:=0 to Len-1 do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; case State of ucACCEPT:begin inc(CodePoints); end; ucERROR:begin result:=suNOUTF8; exit; end; end; end; if State=ucACCEPT then begin if length(s)<>CodePoints then begin result:=suISUTF8; end else begin result:=suPOSSIBLEUTF8; end; end else begin result:=suNOUTF8; end; end; procedure PUCUUTF8SafeInc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); var Len:TPUCUInt32; StartCodeUnit,State:TPUCUUInt32; begin Len:=length(s); if CodeUnit>0 then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; while CodeUnit<=Len do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; inc(CodeUnit); if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin CodeUnit:=StartCodeUnit+1; end; end; end; procedure PUCUUTF8PtrSafeInc(const s:PPUCURawByteChar;var Len,CodeUnit:TPUCUInt32); var StartCodeUnit,State:TPUCUUInt32; begin if CodeUnit>=0 then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; while CodeUnit<Len do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; inc(CodeUnit); if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin CodeUnit:=StartCodeUnit+1; end; end; end; procedure PUCUUTF8Inc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); begin if (CodeUnit>0) and (CodeUnit<=length(s)) then begin inc(CodeUnit,PUCUUTF8CharSteps[s[CodeUnit]]); end; end; procedure PUCUUTF8PtrInc(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32); begin if (CodeUnit>=0) and (CodeUnit<Len) then begin inc(CodeUnit,PUCUUTF8CharSteps[s[CodeUnit]]); end; end; procedure PUCUUTF8Dec(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32); begin if (CodeUnit>=1) and (CodeUnit<=(length(s)+1)) then begin dec(CodeUnit); while CodeUnit>0 do begin if s[CodeUnit] in [#$80..#$bf] then begin dec(CodeUnit); end else begin break; end; end; end; end; procedure PUCUUTF8PtrDec(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32); begin if (CodeUnit>0) and (CodeUnit<=Len) then begin dec(CodeUnit); while CodeUnit>=0 do begin if s[CodeUnit] in [#$80..#$bf] then begin dec(CodeUnit); end else begin break; end; end; end; end; procedure PUCUUTF8Delete(var s:TPUCURawByteString;CodeUnit:TPUCUInt32); begin if (CodeUnit>=1) and (CodeUnit<=length(s)) then begin Delete(s,CodeUnit,1); while ((CodeUnit>=1) and (CodeUnit<=length(s))) and (s[CodeUnit] in [#$80..#$bf]) do begin Delete(s,CodeUnit,1); end; end; end; function PUCUUTF8Length(const s:TPUCURawByteString):TPUCUInt32; {$ifdef cpu386} assembler; register; asm test eax,eax jz @End push esi cld mov esi,eax mov ecx,dword ptr [esi-4] xor edx,edx jecxz @LoopEnd @Loop: lodsb shl al,1 js @IsASCIICharOrUTF8Begin jc @IsUTF8Part @IsASCIICharOrUTF8Begin: inc edx @IsUTF8Part: dec ecx jnz @Loop @LoopEnd: mov eax,edx pop esi @End: end; {$else} var CodeUnit:TPUCUInt32; begin result:=0; for CodeUnit:=1 to length(s) do begin if (TPUCUUInt8(s[CodeUnit]) and $c0)<>$80 then begin inc(result); end; end; end; {$endif} function PUCUUTF8PtrLength(const s:TPUCURawByteString;Len:TPUCUInt32):TPUCUInt32; {$ifdef cpu386} assembler; register; asm test eax,eax jz @End push esi cld mov esi,eax mov ecx,edx xor edx,edx jecxz @LoopEnd @Loop: lodsb shl al,1 js @IsASCIICharOrUTF8Begin jc @IsUTF8Part @IsASCIICharOrUTF8Begin: inc edx @IsUTF8Part: dec ecx jnz @Loop @LoopEnd: mov eax,edx pop esi @End: end; {$else} var CodeUnit:TPUCUInt32; begin result:=0; for CodeUnit:=0 to Len-1 do begin if (TPUCUUInt8(s[CodeUnit]) and $c0)<>$80 then begin inc(result); end; end; end; {$endif} function PUCUUTF8LengthEx(const s:TPUCURawByteString):TPUCUInt32; var State:TPUCUUInt32; CodeUnit:TPUCUInt32; begin result:=0; State:=ucACCEPT; for CodeUnit:=1 to length(s) do begin State:=PUCUUTF8DFATransitions[State+PUCUUTF8DFACharClasses[s[CodeUnit]]]; case State of ucACCEPT:begin inc(result); end; ucERROR:begin result:=0; exit; end; end; end; if State=ucERROR then begin result:=0; end; end; function PUCUUTF8GetCodePoint(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUInt32; var CurrentCodeUnit,Len:TPUCUInt32; begin if CodeUnit<1 then begin result:=-1; end else begin result:=0; CurrentCodeUnit:=1; Len:=length(s); while (CurrentCodeUnit<=Len) and (CurrentCodeUnit<>CodeUnit) do begin inc(result); inc(CurrentCodeUnit,PUCUUTF8CharSteps[s[CurrentCodeUnit]]); end; end; end; function PUCUUTF8PtrGetCodePoint(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUInt32; var CurrentCodeUnit:TPUCUInt32; begin result:=-1; if CodeUnit<0 then begin CurrentCodeUnit:=0; while (CurrentCodeUnit<Len) and (CurrentCodeUnit<>CodeUnit) do begin inc(result); inc(CurrentCodeUnit,PUCUUTF8CharSteps[s[CurrentCodeUnit]]); end; end; end; function PUCUUTF8GetCodeUnit(const s:TPUCURawByteString;CodePoint:TPUCUInt32):TPUCUInt32; var CurrentCodePoint,Len:TPUCUInt32; begin if CodePoint<0 then begin result:=0; end else begin result:=1; CurrentCodePoint:=0; Len:=length(s); while (result<=Len) and (CurrentCodePoint<>CodePoint) do begin inc(CurrentCodePoint); inc(result,PUCUUTF8CharSteps[s[result]]); end; end; end; function PUCUUTF8PtrGetCodeUnit(const s:TPUCURawByteString;Len,CodePoint:TPUCUInt32):TPUCUInt32; var CurrentCodePoint:TPUCUInt32; begin result:=-1; if CodePoint>=0 then begin result:=1; CurrentCodePoint:=0; Len:=length(s); while (result<Len) and (CurrentCodePoint<>CodePoint) do begin inc(CurrentCodePoint); inc(result,PUCUUTF8CharSteps[s[result]]); end; end; end; function PUCUUTF8CodeUnitGetChar(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUUInt32; var Value,CharClass,State:TPUCUUInt32; begin result:=0; if (CodeUnit>0) and (CodeUnit<=length(s)) then begin State:=ucACCEPT; for CodeUnit:=CodeUnit to length(s) do begin Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin result:=$fffd; end; end; end; function PUCUUTF8PtrCodeUnitGetChar(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUUInt32; var Value,CharClass,State:TPUCUUInt32; begin result:=0; if (CodeUnit>=0) and (CodeUnit<Len) then begin State:=ucACCEPT; for CodeUnit:=CodeUnit to Len-1 do begin Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin result:=$fffd; end; end; end; function PUCUUTF8PtrCodeUnitGetCharFallback(const s:PPUCURawByteChar;Len,CodeUnit:TPUCUInt32):TPUCUUInt32; var Value,CharClass,State:TPUCUUInt32; StartCodeUnit:TPUCUInt32; begin result:=0; if (CodeUnit>=0) and (CodeUnit<Len) then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; for CodeUnit:=CodeUnit to Len-1 do begin Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin result:=TPUCUUInt8(TPUCURawByteChar(s[StartCodeUnit])); end; end; end; function PUCUUTF8CodeUnitGetCharAndInc(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32):TPUCUUInt32; var Len:TPUCUInt32; Value,CharClass,State:TPUCUUInt32; begin result:=0; Len:=length(s); if (CodeUnit>0) and (CodeUnit<=Len) then begin State:=ucACCEPT; repeat Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; until (State<=ucERROR) or (CodeUnit>Len); if State<>ucACCEPT then begin result:=$fffd; end; end; end; function PUCUUTF8PtrCodeUnitGetCharAndInc(const s:PPUCURawByteChar;Len:TPUCUInt32;var CodeUnit:TPUCUInt32):TPUCUUInt32; var Value,CharClass,State:TPUCUUInt32; begin result:=0; if (CodeUnit>=0) and (CodeUnit<Len) then begin State:=ucACCEPT; repeat Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; until (State<=ucERROR) or (CodeUnit>=Len); if State<>ucACCEPT then begin result:=$fffd; end; end; end; function PUCUUTF8CodeUnitGetCharFallback(const s:TPUCURawByteString;CodeUnit:TPUCUInt32):TPUCUUInt32; var Len:TPUCUInt32; StartCodeUnit,Value,CharClass,State:TPUCUUInt32; begin result:=0; Len:=length(s); if (CodeUnit>0) and (CodeUnit<=Len) then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; repeat Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; until (State<=ucERROR) or (CodeUnit>Len); if State<>ucACCEPT then begin result:=TPUCUUInt8(TPUCURawByteChar(s[StartCodeUnit])); end; end; end; function PUCUUTF8CodeUnitGetCharAndIncFallback(const s:TPUCURawByteString;var CodeUnit:TPUCUInt32):TPUCUUInt32; var Len:TPUCUInt32; StartCodeUnit,Value,CharClass,State:TPUCUUInt32; begin result:=0; Len:=length(s); if (CodeUnit>0) and (CodeUnit<=Len) then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; repeat Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; until (State<=ucERROR) or (CodeUnit>Len); if State<>ucACCEPT then begin result:=TPUCUUInt8(TPUCURawByteChar(s[StartCodeUnit])); CodeUnit:=StartCodeUnit+1; end; end; end; function PUCUUTF8PtrCodeUnitGetCharAndIncFallback(const s:PPUCURawByteChar;const Len:TPUCUInt32;var CodeUnit:TPUCUInt32):TPUCUUInt32; var StartCodeUnit,Value,CharClass,State:TPUCUUInt32; begin result:=0; if (CodeUnit>=0) and (CodeUnit<Len) then begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; repeat Value:=TPUCUUInt8(TPUCURawByteChar(s[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin result:=Value and ($ff shr CharClass); end else begin result:=(result shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; until (State<=ucERROR) or (CodeUnit>=Len); if State<>ucACCEPT then begin result:=TPUCUUInt8(TPUCURawByteChar(s[StartCodeUnit])); CodeUnit:=StartCodeUnit+1; end; end; end; function PUCUUTF8CodePointGetChar(const s:TPUCURawByteString;CodePoint:TPUCUInt32;Fallback:boolean=false):TPUCUUInt32; begin result:=PUCUUTF8CodeUnitGetChar(s,PUCUUTF8GetCodeUnit(s,CodePoint)); end; function PUCUUTF8GetCharLen(const s:TPUCURawByteString;i:TPUCUInt32):TPUCUUInt32; begin if (i>0) and (i<=length(s)) then begin result:=PUCUUTF8CharSteps[s[i]]; end else begin result:=0; end; end; function PUCUUTF8Pos(const FindStr,InStr:TPUCURawByteString):TPUCUInt32; var i,j,l:TPUCUInt32; ok:boolean; begin result:=0; i:=1; while i<=length(InStr) do begin l:=i+length(FindStr)-1; if l>length(InStr) then begin exit; end; ok:=true; for j:=1 to length(FindStr) do begin if InStr[i+j-1]<>FindStr[j] then begin ok:=false; break; end; end; if ok then begin result:=i; exit; end; inc(i,PUCUUTF8CharSteps[InStr[i]]); end; end; function PUCUUTF8LastPos(const FindStr,InStr:TPUCURawByteString):TPUCUInt32; var i,j,l:TPUCUInt32; ok:boolean; begin result:=0; i:=1; while i<=length(InStr) do begin l:=i+length(FindStr)-1; if l>length(InStr) then begin exit; end; ok:=true; for j:=1 to length(FindStr) do begin if InStr[i+j-1]<>FindStr[j] then begin ok:=false; break; end; end; if ok then begin result:=i; end; inc(i,PUCUUTF8CharSteps[InStr[i]]); end; end; function PUCUUTF8Copy(const Str:TPUCURawByteString;Start,Len:TPUCUInt32):TPUCURawByteString; var CodeUnit:TPUCUInt32; begin result:=''; CodeUnit:=1; while (CodeUnit<=length(Str)) and (Start>0) do begin inc(CodeUnit,PUCUUTF8CharSteps[Str[CodeUnit]]); dec(Start); end; if Start=0 then begin Start:=CodeUnit; while (CodeUnit<=length(Str)) and (Len>0) do begin inc(CodeUnit,PUCUUTF8CharSteps[Str[CodeUnit]]); dec(Len); end; if Start<CodeUnit then begin result:=copy(Str,Start,CodeUnit-Start); end; end; end; function PUCUUTF8UpperCase(const Str:TPUCURawByteString):TPUCURawByteString; var CodeUnit,Len,ResultLen:TPUCUInt32; StartCodeUnit,Value,CharClass,State,CharValue:TPUCUUInt32; Data:PPUCURawByteChar; begin result:=''; CodeUnit:=1; Len:=length(Str); if Len>0 then begin SetLength(result,Len*{$ifdef PUCUStrictUTF8}4{$else}6{$endif}); Data:=@result[1]; ResultLen:=0; while CodeUnit<=Len do begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; CharValue:=0; while CodeUnit<=Len do begin Value:=TPUCUUInt8(TPUCURawByteChar(Str[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin CharValue:=Value and ($ff shr CharClass); end else begin CharValue:=(CharValue shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin CharValue:=TPUCUUInt8(TPUCURawByteChar(Str[StartCodeUnit])); CodeUnit:=StartCodeUnit+1; end; if CharValue<=$10ffff then begin Value:=CharValue shr PUCUUnicodeUpperCaseDeltaArrayBlockBits; CharValue:=TPUCUUInt32(TPUCUInt32(TPUCUInt32(CharValue)+PUCUUnicodeUpperCaseDeltaArrayBlockData[PUCUUnicodeUpperCaseDeltaArrayIndexBlockData[PUCUUnicodeUpperCaseDeltaArrayIndexIndexData[Value shr PUCUUnicodeUpperCaseDeltaArrayIndexBlockBits],Value and PUCUUnicodeUpperCaseDeltaArrayIndexBlockMask],CharValue and PUCUUnicodeUpperCaseDeltaArrayBlockMask])); end; if CharValue<=$7f then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8(CharValue)); inc(ResultLen); end else if CharValue<=$7ff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($c0 or ((CharValue shr 6) and $1f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,2); {$ifdef PUCUStrictUTF8} end else if CharValue<=$d7ff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,3); end else if CharValue<=$dfff then begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; inc(ResultLen,3); {$endif} end else if CharValue<=$ffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,3); end else if CharValue<=$1fffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f0 or ((CharValue shr 18) and $07))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,4); {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f8 or ((CharValue shr 24) and $03))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,5); end else if CharValue<=$7fffffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($fc or ((CharValue shr 30) and $01))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 24) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+5]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,6); {$endif} end else begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; inc(ResultLen,3); end; end; SetLength(result,ResultLen); end; end; function PUCUUTF8LowerCase(const Str:TPUCURawByteString):TPUCURawByteString; var CodeUnit,Len,ResultLen:TPUCUInt32; StartCodeUnit,Value,CharClass,State,CharValue:TPUCUUInt32; Data:PPUCURawByteChar; begin result:=''; CodeUnit:=1; Len:=length(Str); if Len>0 then begin SetLength(result,Len*{$ifdef PUCUStrictUTF8}4{$else}6{$endif}); Data:=@result[1]; ResultLen:=0; while CodeUnit<=Len do begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; CharValue:=0; while CodeUnit<=Len do begin Value:=TPUCUUInt8(TPUCURawByteChar(Str[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin CharValue:=Value and ($ff shr CharClass); end else begin CharValue:=(CharValue shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin CharValue:=TPUCUUInt8(TPUCURawByteChar(Str[StartCodeUnit])); CodeUnit:=StartCodeUnit+1; end; if CharValue<=$10ffff then begin Value:=CharValue shr PUCUUnicodeLowerCaseDeltaArrayBlockBits; CharValue:=TPUCUUInt32(TPUCUInt32(TPUCUInt32(CharValue)+PUCUUnicodeLowerCaseDeltaArrayBlockData[PUCUUnicodeLowerCaseDeltaArrayIndexBlockData[PUCUUnicodeLowerCaseDeltaArrayIndexIndexData[Value shr PUCUUnicodeLowerCaseDeltaArrayIndexBlockBits],Value and PUCUUnicodeLowerCaseDeltaArrayIndexBlockMask],CharValue and PUCUUnicodeLowerCaseDeltaArrayBlockMask])); end; if CharValue<=$7f then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8(CharValue)); inc(ResultLen); end else if CharValue<=$7ff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($c0 or ((CharValue shr 6) and $1f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,2); {$ifdef PUCUStrictUTF8} end else if CharValue<=$d7ff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,3); end else if CharValue<=$dfff then begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; inc(ResultLen,3); {$endif} end else if CharValue<=$ffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,3); end else if CharValue<=$1fffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f0 or ((CharValue shr 18) and $07))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,4); {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f8 or ((CharValue shr 24) and $03))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,5); end else if CharValue<=$7fffffff then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($fc or ((CharValue shr 30) and $01))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 24) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+5]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); inc(ResultLen,6); {$endif} end else begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; inc(ResultLen,3); end; end; SetLength(result,ResultLen); end; end; function PUCUUTF8Trim(const Str:TPUCURawByteString):TPUCURawByteString; var i,j:TPUCUInt32; begin i:=1; while (i<=length(Str)) and PUCUUnicodeIsWhiteSpace(PUCUUTF8CodeUnitGetChar(Str,i)) do begin inc(i,PUCUUTF8CharSteps[Str[i]]); end; j:=length(Str)+1; PUCUUTF8Dec(Str,j); while (j>0) and (j<=length(Str)) and PUCUUnicodeIsWhiteSpace(PUCUUTF8CodeUnitGetChar(Str,j)) do begin PUCUUTF8Dec(Str,j); end; if (j>0) and (j<=length(Str)) and (Str[j]>=#80) then begin inc(j,TPUCUInt32(PUCUUTF8GetCharLen(Str,j))-1); end; if i<=j then begin result:=copy(Str,i,(j-i)+1); end else begin result:=''; end; end; function PUCUUTF8TrimLeft(const Str:TPUCURawByteString):TPUCURawByteString; var i,j:TPUCUInt32; begin i:=1; while (i<=length(Str)) and PUCUUnicodeIsWhiteSpace(PUCUUTF8CodeUnitGetChar(Str,i)) do begin inc(i,PUCUUTF8CharSteps[Str[i]]); end; j:=length(Str)+1; PUCUUTF8Dec(Str,j); if (j>0) and (j<=length(Str)) and (Str[j]>=#80) then begin inc(j,TPUCUInt32(PUCUUTF8GetCharLen(Str,j))-1); end; if i<=j then begin result:=copy(Str,i,(j-i)+1); end else begin result:=''; end; end; function PUCUUTF8TrimRight(const Str:TPUCURawByteString):TPUCURawByteString; var i,j:TPUCUInt32; begin i:=1; j:=length(Str)+1; PUCUUTF8Dec(Str,j); while (j>0) and (j<=length(Str)) and PUCUUnicodeIsWhiteSpace(PUCUUTF8CodeUnitGetChar(Str,j)) do begin PUCUUTF8Dec(Str,j); end; if (j>0) and (j<=length(Str)) and (Str[j]>=#80) then begin inc(j,TPUCUInt32(PUCUUTF8GetCharLen(Str,j))-1); end; if i<=j then begin result:=copy(Str,i,(j-i)+1); end else begin result:=''; end; end; function PUCUUTF8Correct(const Str:TPUCURawByteString):TPUCURawByteString; var CodeUnit,Len,ResultLen,Pass:TPUCUInt32; StartCodeUnit,Value,CharClass,State,CharValue:TPUCUUInt32; Data:PPUCURawByteChar; begin if (length(Str)=0) or PUCUUTF8Validate(Str) then begin result:=Str; end else begin result:=''; Len:=length(Str); SetLength(result,Len); for Pass:=0 to 1 do begin Data:=@result[1]; ResultLen:=0; CodeUnit:=1; while CodeUnit<=Len do begin StartCodeUnit:=CodeUnit; State:=ucACCEPT; CharValue:=0; while CodeUnit<=Len do begin Value:=TPUCUUInt8(TPUCURawByteChar(Str[CodeUnit])); inc(CodeUnit); CharClass:=PUCUUTF8DFACharClasses[TPUCURawByteChar(Value)]; if State=ucACCEPT then begin CharValue:=Value and ($ff shr CharClass); end else begin CharValue:=(CharValue shl 6) or (Value and $3f); end; State:=PUCUUTF8DFATransitions[State+CharClass]; if State<=ucERROR then begin break; end; end; if State<>ucACCEPT then begin CharValue:=TPUCUUInt8(TPUCURawByteChar(Str[StartCodeUnit])); CodeUnit:=StartCodeUnit+1; end; if (Pass=1) and ((ResultLen+6)>length(result)) then begin SetLength(result,((TPUCUInt64(ResultLen)*5) shr 2)+$10000); Data:=@result[1]; end; if CharValue<=$7f then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8(CharValue)); end; inc(ResultLen); end else if CharValue<=$7ff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($c0 or ((CharValue shr 6) and $1f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,2); {$ifdef PUCUStrictUTF8} end else if CharValue<=$d7ff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,3); end else if CharValue<=$dfff then begin if Pass=1 then begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; end; inc(ResultLen,3); {$endif} end else if CharValue<=$ffff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,3); end else if CharValue<=$1fffff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f0 or ((CharValue shr 18) and $07))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,4); {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($f8 or ((CharValue shr 24) and $03))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,5); end else if CharValue<=$7fffffff then begin if Pass=1 then begin Data[ResultLen]:=TPUCURawByteChar(TPUCUUInt8($fc or ((CharValue shr 30) and $01))); Data[ResultLen+1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 24) and $3f))); Data[ResultLen+2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[ResultLen+3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[ResultLen+4]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[ResultLen+5]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); end; inc(ResultLen,6); {$endif} end else begin if Pass=1 then begin Data[ResultLen]:=#$ef; // $fffd Data[ResultLen+1]:=#$bf; Data[ResultLen+2]:=#$bd; end; inc(ResultLen,3); end; end; if Pass=0 then begin inc(ResultLen,8); end; SetLength(result,ResultLen); end; end; end; function PUCUUTF8FromLatin1(const Str:TPUCURawByteString):TPUCURawByteString; var CodeUnit:TPUCUInt32; begin if PUCUUTF8Validate(Str) then begin result:=Str; end else begin result:=''; for CodeUnit:=1 to length(Str) do begin result:=result+PUCUUTF32CharToUTF8(TPUCUUInt8(TPUCURawByteChar(Str[CodeUnit]))); end; end; end; function PUCUUTF8LevenshteinDistance(const s,t:TPUCURawByteString):TPUCUInt32; var d:array of array of TPUCUInt32; n,m,i,j,ci,cj,oi,oj,Deletion,Insertion,Substitution:TPUCUInt32; si,tj:TPUCUUInt32; begin n:=PUCUUTF8LengthEx(s); m:=PUCUUTF8LengthEx(t); oi:=1; oj:=1; while ((n>0) and (m>0)) and (PUCUUTF8CodeUnitGetChar(s,oi)=PUCUUTF8CodeUnitGetChar(t,oj)) do begin if (oi>0) and (oi<=length(s)) then begin inc(oi,PUCUUTF8CharSteps[s[oi]]); end else begin break; end; if (oj>0) and (oj<=length(t)) then begin inc(oj,PUCUUTF8CharSteps[t[oj]]); end else begin break; end; dec(n); dec(m); end; if ((n>0) and (m>0)) and (s[length(s)]=t[length(t)]) then begin ci:=length(s)+1; cj:=length(t)+1; PUCUUTF8Dec(s,ci); PUCUUTF8Dec(t,cj); while ((n>0) and (m>0)) and (PUCUUTF8CodeUnitGetChar(s,ci)=PUCUUTF8CodeUnitGetChar(t,cj)) do begin PUCUUTF8Dec(s,ci); PUCUUTF8Dec(t,cj); dec(n); dec(m); end; end; if n=0 then begin result:=m; end else if m=0 then begin result:=n; end else begin d:=nil; SetLength(d,n+1,m+1); for i:=0 to n do begin d[i,0]:=i; end; for j:=0 to m do begin d[0,j]:=j; end; ci:=oi; for i:=1 to n do begin si:=PUCUUTF8CodeUnitGetCharAndInc(s,ci); cj:=oj; for j:=1 to m do begin tj:=PUCUUTF8CodeUnitGetCharAndInc(t,cj); if si<>tj then begin Deletion:=d[i-1,j]+1; Insertion:=d[i,j-1]+1; Substitution:=d[i-1,j-1]+1; if Deletion<Insertion then begin if Deletion<Substitution then begin d[i,j]:=Deletion; end else begin d[i,j]:=Substitution; end; end else begin if Insertion<Substitution then begin d[i,j]:=Insertion; end else begin d[i,j]:=Substitution; end; end; end else begin d[i,j]:=d[i-1,j-1]; end; end; end; result:=d[n,m]; SetLength(d,0); end; end; function PUCUUTF8DamerauLevenshteinDistance(const s,t:TPUCURawByteString):TPUCUInt32; var d:array of array of TPUCUInt32; n,m,i,j,ci,cj,oi,oj,Cost,Deletion,Insertion,Substitution,Transposition,Value:TPUCUInt32; si,tj,lsi,ltj:TPUCUUInt32; begin n:=PUCUUTF8LengthEx(s); m:=PUCUUTF8LengthEx(t); oi:=1; oj:=1; while ((n>0) and (m>0)) and (PUCUUTF8CodeUnitGetChar(s,oi)=PUCUUTF8CodeUnitGetChar(t,oj)) do begin if (oi>0) and (oi<=length(s)) then begin inc(oi,PUCUUTF8CharSteps[s[oi]]); end else begin break; end; if (oj>0) and (oj<=length(t)) then begin inc(oj,PUCUUTF8CharSteps[t[oj]]); end else begin break; end; dec(n); dec(m); end; if ((n>0) and (m>0)) and (s[length(s)]=t[length(t)]) then begin ci:=length(s)+1; cj:=length(t)+1; PUCUUTF8Dec(s,ci); PUCUUTF8Dec(t,cj); while ((n>0) and (m>0)) and (PUCUUTF8CodeUnitGetChar(s,ci)=PUCUUTF8CodeUnitGetChar(t,cj)) do begin PUCUUTF8Dec(s,ci); PUCUUTF8Dec(t,cj); dec(n); dec(m); end; end; if n=0 then begin result:=m; end else if m=0 then begin result:=n; end else begin d:=nil; SetLength(d,n+1,m+1); for i:=0 to n do begin d[i,0]:=i; end; for j:=0 to m do begin d[0,j]:=j; end; ci:=oi; si:=0; for i:=1 to n do begin lsi:=si; si:=PUCUUTF8CodeUnitGetCharAndInc(s,ci); cj:=oj; tj:=0; for j:=1 to m do begin ltj:=tj; tj:=PUCUUTF8CodeUnitGetCharAndInc(t,cj); if si<>tj then begin Cost:=1; end else begin Cost:=0; end; Deletion:=d[i-1,j]+1; Insertion:=d[i,j-1]+1; Substitution:=d[i-1,j-1]+Cost; if Deletion<Insertion then begin if Deletion<Substitution then begin Value:=Deletion; end else begin Value:=Substitution; end; end else begin if Insertion<Substitution then begin Value:=Insertion; end else begin Value:=Substitution; end; end; if ((i>1) and (j>1)) and ((si=ltj) and (lsi=tj)) then begin Transposition:=d[i-2,j-2]+Cost; if Transposition<Value then begin Value:=Transposition; end; end; d[i,j]:=Value; end; end; result:=d[n,m]; SetLength(d,0); end; end; function PUCUStringLength(const s:TPUCURawByteString):TPUCUInt32; begin if PUCUIsUTF8(s) then begin result:=PUCUUTF8Length(s); end else begin result:=length(s); end; end; function PUCUUTF16Correct(const Str:TPUCUUTF16String):TPUCUUTF16String; var i,j:TPUCUInt32; w:TPUCUUTF32Char; begin result:=''; j:=0; i:=1; SetLength(result,length(Str)*2); while i<=length(Str) do begin w:=TPUCUUInt16(TPUCUUTF16Char(Str[i])); inc(i); if (i<=length(Str)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(w and $3ff)) shl 10) or TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $3ff))+$10000; inc(i); end; if w<=$d7ff then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$dfff then begin inc(j); result[j]:=#$fffd; end else if w<=$fffd then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$ffff then begin inc(j); result[j]:=#$fffd; end else if w<=$10ffff then begin dec(w,$10000); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w shr 10) or $d800)); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w and $3ff) or $dc00)); end else begin inc(j); result[j]:=#$fffd; end; end; SetLength(result,j); end; function PUCUUTF16UpperCase(const Str:TPUCUUTF16String):TPUCUUTF16String; var i,j:TPUCUInt32; w:TPUCUUTF32Char; begin result:=''; j:=0; i:=1; SetLength(result,length(Str)*2); while i<=length(Str) do begin w:=TPUCUUInt16(TPUCUUTF16Char(Str[i])); inc(i); if (i<=length(Str)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(w and $3ff)) shl 10) or TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $3ff))+$10000; inc(i); end; w:=PUCUUnicodeToUpper(w); if w<=$d7ff then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$dfff then begin inc(j); result[j]:=#$fffd; end else if w<=$fffd then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$ffff then begin inc(j); result[j]:=#$fffd; end else if w<=$10ffff then begin dec(w,$10000); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w shr 10) or $d800)); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w and $3ff) or $dc00)); end else begin inc(j); result[j]:=#$fffd; end; end; SetLength(result,j); end; function PUCUUTF16LowerCase(const Str:TPUCUUTF16String):TPUCUUTF16String; var i,j:TPUCUInt32; w:TPUCUUTF32Char; begin result:=''; j:=0; i:=1; SetLength(result,length(Str)*2); while i<=length(Str) do begin w:=TPUCUUInt16(TPUCUUTF16Char(Str[i])); inc(i); if (i<=length(Str)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(w and $3ff)) shl 10) or TPUCUUTF32Char(TPUCUUInt16(TPUCUUTF16Char(Str[i])) and $3ff))+$10000; inc(i); end; w:=PUCUUnicodeToLower(w); if w<=$d7ff then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$dfff then begin inc(j); result[j]:=#$fffd; end else if w<=$fffd then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$ffff then begin inc(j); result[j]:=#$fffd; end else if w<=$10ffff then begin dec(w,$10000); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w shr 10) or $d800)); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w and $3ff) or $dc00)); end else begin inc(j); result[j]:=#$fffd; end; end; SetLength(result,j); end; function PUCUUTF32CharToUTF8(CharValue:TPUCUUTF32Char):TPUCURawByteString; var Data:array[0..{$ifdef PUCUStrictUTF8}3{$else}5{$endif}] of TPUCURawByteChar; ResultLen:TPUCUInt32; begin if CharValue=0 then begin result:=#0; end else begin if CharValue<=$7f then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8(CharValue)); ResultLen:=1; end else if CharValue<=$7ff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($c0 or ((CharValue shr 6) and $1f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=2; {$ifdef PUCUStrictUTF8} end else if CharValue<=$d7ff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=3; end else if CharValue<=$dfff then begin Data[0]:=#$ef; // $fffd Data[1]:=#$bf; Data[2]:=#$bd; ResultLen:=3; {$endif} end else if CharValue<=$ffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=3; end else if CharValue<=$1fffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($f0 or ((CharValue shr 18) and $07))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=4; {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($f8 or ((CharValue shr 24) and $03))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[4]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=5; end else if CharValue<=$7fffffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($fc or ((CharValue shr 30) and $01))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 24) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[4]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[5]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=6; {$endif} end else begin Data[0]:=#$ef; // $fffd Data[1]:=#$bf; Data[2]:=#$bd; ResultLen:=3; end; SetString(result,PPUCURawByteChar(@Data[0]),ResultLen); end; end; {$ifdef fpc}{$notes off}{$endif} function PUCUUTF32CharToUTF8At(CharValue:TPUCUUTF32Char;var s:TPUCURawByteString;const Index:TPUCUInt32):TPUCUInt32; var Data:array[0..{$ifdef PUCUStrictUTF8}3{$else}5{$endif}] of TPUCURawByteChar; ResultLen:TPUCUInt32; begin if CharValue=0 then begin result:=0; end else begin if CharValue<=$7f then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8(CharValue)); ResultLen:=1; end else if CharValue<=$7ff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($c0 or ((CharValue shr 6) and $1f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=2; {$ifdef PUCUStrictUTF8} end else if CharValue<=$d7ff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=3; end else if CharValue<=$dfff then begin Data[0]:=#$ef; // $fffd Data[1]:=#$bf; Data[2]:=#$bd; ResultLen:=3; {$endif} end else if CharValue<=$ffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($e0 or ((CharValue shr 12) and $0f))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=3; end else if CharValue<=$1fffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($f0 or ((CharValue shr 18) and $07))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=4; {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($f8 or ((CharValue shr 24) and $03))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[4]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=5; end else if CharValue<=$7fffffff then begin Data[0]:=TPUCURawByteChar(TPUCUUInt8($fc or ((CharValue shr 30) and $01))); Data[1]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 24) and $3f))); Data[2]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 18) and $3f))); Data[3]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 12) and $3f))); Data[4]:=TPUCURawByteChar(TPUCUUInt8($80 or ((CharValue shr 6) and $3f))); Data[5]:=TPUCURawByteChar(TPUCUUInt8($80 or (CharValue and $3f))); ResultLen:=6; {$endif} end else begin Data[0]:=#$ef; // $fffd Data[1]:=#$bf; Data[2]:=#$bd; ResultLen:=3; end; if (Index+ResultLen)>length(s) then begin SetLength(s,Index+ResultLen); end; Move(Data[0],s[Index],ResultLen); result:=ResultLen; end; end; {$ifdef fpc}{$notes on}{$endif} function PUCUUTF32CharToUTF8Len(CharValue:TPUCUUTF32Char):TPUCUInt32; begin if CharValue<=$7f then begin result:=1; end else if CharValue<=$7ff then begin result:=2; end else if CharValue<=$ffff then begin result:=3; end else if CharValue<=$1fffff then begin result:=4; {$ifndef PUCUStrictUTF8} end else if CharValue<=$3ffffff then begin result:=5; end else if CharValue<=$7fffffff then begin result:=6; {$endif} end else begin result:=3; end; end; function PUCUUTF32ToUTF8(const s:TPUCUUTF32String):TPUCUUTF8String; var i,j:TPUCUInt32; u4c:TPUCUUTF32Char; begin result:=''; j:=0; for i:=0 to length(s)-1 do begin u4c:=s[i]; if u4c<=$7f then begin inc(j); end else if u4c<=$7ff then begin inc(j,2); end else if u4c<=$ffff then begin inc(j,3); end else if u4c<=$1fffff then begin inc(j,4); {$ifndef PUCUStrictUTF8} end else if u4c<=$3ffffff then begin inc(j,5); end else if u4c<=$7fffffff then begin inc(j,6); {$endif} end else begin inc(j,3); end; end; SetLength(result,j); j:=1; for i:=0 to length(s)-1 do begin u4c:=s[i]; if u4c<=$7f then begin result[j]:=AnsiChar(TPUCUUInt8(u4c)); inc(j); end else if u4c<=$7ff then begin result[j]:=AnsiChar(TPUCUUInt8($c0 or ((u4c shr 6) and $1f))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,2); end else if u4c<=$ffff then begin result[j]:=AnsiChar(TPUCUUInt8($e0 or ((u4c shr 12) and $0f))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 6) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,3); end else if u4c<=$1fffff then begin result[j]:=AnsiChar(TPUCUUInt8($f0 or ((u4c shr 18) and $07))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 12) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 6) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,4); {$ifndef PUCUStrictUTF8} end else if u4c<=$3ffffff then begin result[j]:=AnsiChar(TPUCUUInt8($f8 or ((u4c shr 24) and $03))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 18) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 12) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 6) and $3f))); result[j+4]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,5); end else if u4c<=$7fffffff then begin result[j]:=AnsiChar(TPUCUUInt8($fc or ((u4c shr 30) and $01))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 24) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 18) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 12) and $3f))); result[j+4]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 6) and $3f))); result[j+5]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,6); {$endif} end else begin u4c:=$fffd; result[j]:=AnsiChar(TPUCUUInt8($e0 or ((u4c shr 12) and $0f))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((u4c shr 6) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or (u4c and $3f))); inc(j,3); end; end; end; function PUCUUTF8ToUTF32(const s:TPUCUUTF8String):TPUCUUTF32String; var i,j:TPUCUInt32; b:TPUCUUInt8; begin j:=0; i:=1; while i<=length(s) do begin b:=TPUCUUInt8(s[i]); if (b and $80)=0 then begin inc(i); inc(j); end else if ((i+1)<=length(s)) and ((b and $e0)=$c0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) then begin inc(i,2); inc(j); end else if ((i+2)<=length(s)) and ((b and $f0)=$e0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) then begin inc(i,3); inc(j); end else if ((i+3)<=length(s)) and ((b and $f8)=$f0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) then begin inc(i,4); inc(j); {$ifndef PUCUStrictUTF8} end else if ((i+4)<=length(s)) and ((b and $fc)=$f8) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) then begin inc(i,5); inc(j); end else if ((i+5)<=length(s)) and ((b and $fe)=$fc) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) and ((TPUCUUInt8(s[i+5]) and $c0)=$80) then begin inc(i,6); inc(j); {$endif} end else begin inc(i); inc(j); end; end; result:=nil; if j=0 then begin exit; end; SetLength(result,j); j:=0; i:=1; while i<=length(s) do begin b:=TPUCUUInt8(s[i]); if (b and $80)=0 then begin result[j]:=b; inc(i); inc(j); end else if ((i+1)<=length(s)) and ((b and $e0)=$c0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) then begin result[j]:=((TPUCUUInt8(s[i]) and $1f) shl 6) or (TPUCUUInt8(s[i+1]) and $3f); inc(i,2); inc(j); end else if ((i+2)<=length(s)) and ((b and $f0)=$e0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) then begin result[j]:=((TPUCUUInt8(s[i]) and $0f) shl 12) or ((TPUCUUInt8(s[i+1]) and $3f) shl 6) or (TPUCUUInt8(s[i+2]) and $3f); inc(i,3); inc(j); end else if ((i+3)<=length(s)) and ((b and $f8)=$f0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) then begin result[j]:=((TPUCUUInt8(s[i]) and $07) shl 18) or ((TPUCUUInt8(s[i+1]) and $3f) shl 12) or ((TPUCUUInt8(s[i+2]) and $3f) shl 6) or (TPUCUUInt8(s[i+3]) and $3f); inc(i,4); inc(j); {$ifndef PUCUStrictUTF8} end else if ((i+4)<=length(s)) and ((b and $fc)=$f8) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) then begin result[j]:=((TPUCUUInt8(s[i]) and $03) shl 24) or ((TPUCUUInt8(s[i+1]) and $3f) shl 18) or ((TPUCUUInt8(s[i+2]) and $3f) shl 12) or ((TPUCUUInt8(s[i+3]) and $3f) shl 6) or (TPUCUUInt8(s[i+4]) and $3f); inc(i,5); inc(j); end else if ((i+5)<=length(s)) and ((b and $fe)=$fc) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) and ((TPUCUUInt8(s[i+5]) and $c0)=$80) then begin result[j]:=((TPUCUUInt8(s[i]) and $01) shl 30) or ((TPUCUUInt8(s[i+1]) and $3f) shl 24) or ((TPUCUUInt8(s[i+2]) and $3f) shl 18) or ((TPUCUUInt8(s[i+3]) and $3f) shl 12) or ((TPUCUUInt8(s[i+4]) and $3f) shl 6) or (TPUCUUInt8(s[i+5]) and $3f); inc(i,6); inc(j); {$endif} end else begin result[j]:=$fffd; inc(i); inc(j); end; end; end; function PUCUUTF8ToUTF16(const s:TPUCUUTF8String):TPUCUUTF16STRING; var i,j:TPUCUInt32; w:TPUCUUInt32; b:TPUCUUInt8; begin result:=''; i:=1; j:=0; while i<=length(s) do begin b:=TPUCUUInt8(s[i]); if (b and $80)=0 then begin w:=b; inc(i); end else if ((i+1)<=length(s)) and ((b and $e0)=$c0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $1f) shl 6) or (TPUCUUInt8(s[i+1]) and $3f); inc(i,2); end else if ((i+2)<=length(s)) and ((b and $f0)=$e0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $0f) shl 12) or ((TPUCUUInt8(s[i+1]) and $3f) shl 6) or (TPUCUUInt8(s[i+2]) and $3f); inc(i,3); end else if ((i+3)<=length(s)) and ((b and $f8)=$f0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $07) shl 18) or ((TPUCUUInt8(s[i+1]) and $3f) shl 12) or ((TPUCUUInt8(s[i+2]) and $3f) shl 6) or (TPUCUUInt8(s[i+3]) and $3f); inc(i,4); {$ifndef PUCUStrictUTF8} end else if ((i+4)<=length(s)) and ((b and $fc)=$f8) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $03) shl 24) or ((TPUCUUInt8(s[i+1]) and $3f) shl 18) or ((TPUCUUInt8(s[i+2]) and $3f) shl 12) or ((TPUCUUInt8(s[i+3]) and $3f) shl 6) or (TPUCUUInt8(s[i+4]) and $3f); inc(i,5); end else if ((i+5)<=length(s)) and ((b and $fe)=$fc) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) and ((TPUCUUInt8(s[i+5]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $01) shl 30) or ((TPUCUUInt8(s[i+1]) and $3f) shl 24) or ((TPUCUUInt8(s[i+2]) and $3f) shl 18) or ((TPUCUUInt8(s[i+3]) and $3f) shl 12) or ((TPUCUUInt8(s[i+4]) and $3f) shl 6) or (TPUCUUInt8(s[i+5]) and $3f); inc(i,6); {$endif} end else begin w:=$fffd; inc(i); end; if w<=$d7ff then begin inc(j); end else if w<=$dfff then begin inc(j); end else if w<=$fffd then begin inc(j); end else if w<=$ffff then begin inc(j); end else if w<=$10ffff then begin inc(j,2); end else begin inc(j); end; end; SetLength(result,j); i:=1; j:=0; while i<=length(s) do begin b:=TPUCUUInt8(s[i]); if (b and $80)=0 then begin w:=b; inc(i); end else if ((i+1)<=length(s)) and ((b and $e0)=$c0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $1f) shl 6) or (TPUCUUInt8(s[i+1]) and $3f); inc(i,2); end else if ((i+2)<=length(s)) and ((b and $f0)=$e0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $0f) shl 12) or ((TPUCUUInt8(s[i+1]) and $3f) shl 6) or (TPUCUUInt8(s[i+2]) and $3f); inc(i,3); end else if ((i+3)<=length(s)) and ((b and $f8)=$f0) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $07) shl 18) or ((TPUCUUInt8(s[i+1]) and $3f) shl 12) or ((TPUCUUInt8(s[i+2]) and $3f) shl 6) or (TPUCUUInt8(s[i+3]) and $3f); inc(i,4); {$ifndef PUCUStrictUTF8} end else if ((i+4)<=length(s)) and ((b and $fc)=$f8) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $03) shl 24) or ((TPUCUUInt8(s[i+1]) and $3f) shl 18) or ((TPUCUUInt8(s[i+2]) and $3f) shl 12) or ((TPUCUUInt8(s[i+3]) and $3f) shl 6) or (TPUCUUInt8(s[i+4]) and $3f); inc(i,5); end else if ((i+5)<=length(s)) and ((b and $fe)=$fc) and ((TPUCUUInt8(s[i+1]) and $c0)=$80) and ((TPUCUUInt8(s[i+2]) and $c0)=$80) and ((TPUCUUInt8(s[i+3]) and $c0)=$80) and ((TPUCUUInt8(s[i+4]) and $c0)=$80) and ((TPUCUUInt8(s[i+5]) and $c0)=$80) then begin w:=((TPUCUUInt8(s[i]) and $01) shl 30) or ((TPUCUUInt8(s[i+1]) and $3f) shl 24) or ((TPUCUUInt8(s[i+2]) and $3f) shl 18) or ((TPUCUUInt8(s[i+3]) and $3f) shl 12) or ((TPUCUUInt8(s[i+4]) and $3f) shl 6) or (TPUCUUInt8(s[i+5]) and $3f); inc(i,6); {$endif} end else begin w:=$fffd; inc(i); end; if w<=$d7ff then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$dfff then begin inc(j); result[j]:=#$fffd; end else if w<=$fffd then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$ffff then begin inc(j); result[j]:=#$fffd; end else if w<=$10ffff then begin dec(w,$10000); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w shr 10) or $d800)); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w and $3ff) or $dc00)); end else begin inc(j); result[j]:=#$fffd; end; end; end; function PUCUUTF16ToUTF8(const s:TPUCUUTF16STRING):TPUCUUTF8String; var i,j:TPUCUInt32; w:TPUCUUInt32; begin result:=''; j:=0; i:=1; while i<=length(s) do begin w:=TPUCUUInt16(s[i]); inc(i); if (i<=length(s)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(s[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUTF32Char(w and $3ff) shl 10) or TPUCUUTF32Char(TPUCUUInt16(s[i]) and $3ff))+$10000; inc(i); end; if w<=$7f then begin inc(j); end else if w<=$7ff then begin inc(j,2); end else if w<=$ffff then begin inc(j,3); end else if w<=$1fffff then begin inc(j,4); {$ifndef PUCUStrictUTF8} end else if w<=$3ffffff then begin inc(j,5); end else if w<=$7fffffff then begin inc(j,6); {$endif} end else begin inc(j,3); end; end; SetLength(result,j); j:=1; i:=1; while i<=length(s) do begin w:=TPUCUUInt16(s[i]); inc(i); if (i<=length(s)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(s[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUTF32Char(w and $3ff) shl 10) or TPUCUUTF32Char(TPUCUUInt16(s[i]) and $3ff))+$10000; inc(i); end; if w<=$7f then begin result[j]:=AnsiChar(TPUCUUInt8(w)); inc(j); end else if w<=$7ff then begin result[j]:=AnsiChar(TPUCUUInt8($c0 or ((w shr 6) and $1f))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,2); end else if w<=$ffff then begin result[j]:=AnsiChar(TPUCUUInt8($e0 or ((w shr 12) and $0f))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((w shr 6) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,3); end else if w<=$1fffff then begin result[j]:=AnsiChar(TPUCUUInt8($f0 or ((w shr 18) and $07))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((w shr 12) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((w shr 6) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,4); {$ifndef PUCUStrictUTF8} end else if w<=$3ffffff then begin result[j]:=AnsiChar(TPUCUUInt8($f8 or ((w shr 24) and $03))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((w shr 18) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((w shr 12) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or ((w shr 6) and $3f))); result[j+4]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,5); end else if w<=$7fffffff then begin result[j]:=AnsiChar(TPUCUUInt8($fc or ((w shr 30) and $01))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((w shr 24) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or ((w shr 18) and $3f))); result[j+3]:=AnsiChar(TPUCUUInt8($80 or ((w shr 12) and $3f))); result[j+4]:=AnsiChar(TPUCUUInt8($80 or ((w shr 6) and $3f))); result[j+5]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,6); {$endif} end else begin w:=$fffd; result[j]:=AnsiChar(TPUCUUInt8($e0 or (w shr 12))); result[j+1]:=AnsiChar(TPUCUUInt8($80 or ((w shr 6) and $3f))); result[j+2]:=AnsiChar(TPUCUUInt8($80 or (w and $3f))); inc(j,3); end; end; end; function PUCUUTF16ToUTF32(const Value:TPUCUUTF16String):TPUCUUTF32String; var i,j:TPUCUInt32; w:TPUCUUInt32; begin i:=1; j:=0; result:=nil; try SetLength(result,length(Value)); while i<=length(Value) do begin w:=TPUCUUInt16(Value[i]); inc(i); if (i<=length(Value)) and ((w and $fc00)=$d800) and ((TPUCUUInt16(TPUCUUTF16Char(Value[i])) and $fc00)=$dc00) then begin w:=(TPUCUUTF32Char(TPUCUUTF32Char(w and $3ff) shl 10) or TPUCUUTF32Char(TPUCUUInt16(Value[i]) and $3ff))+$10000; inc(i); end; result[j]:=w; inc(j); end; finally SetLength(result,j); end; end; function PUCUUTF32ToUTF16(const Value:TPUCUUTF32String):TPUCUUTF16String; var i,j:TPUCUInt32; w:TPUCUUInt32; begin result:=''; j:=0; for i:=0 to length(Value)-1 do begin w:=Value[i]; if w<=$d7ff then begin inc(j); end else if w<=$dfff then begin inc(j); end else if w<=$fffd then begin inc(j); end else if w<=$ffff then begin inc(j); end else if w<=$10ffff then begin inc(j,2); end else begin inc(j); end; end; SetLength(result,j); j:=0; for i:=0 to length(Value)-1 do begin w:=Value[i]; if w<=$d7ff then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$dfff then begin inc(j); result[j]:=#$fffd; end else if w<=$fffd then begin inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16(w)); end else if w<=$ffff then begin inc(j); result[j]:=#$fffd; end else if w<=$10ffff then begin dec(w,$10000); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w shr 10) or $d800)); inc(j); result[j]:=TPUCUUTF16Char(TPUCUUInt16((w and $3ff) or $dc00)); end else begin inc(j); result[j]:=#$fffd; end; end; end; function PUCUUTF32CharToUTF16(const Value:TPUCUUTF32Char):TPUCUUTF16String; begin if Value<=$d7ff then begin result:=TPUCUUTF16Char(TPUCUUInt16(Value)); end else if Value<=$dfff then begin result:=#$fffd; end else if Value<=$fffd then begin result:=TPUCUUTF16Char(TPUCUUInt16(Value)); end else if Value<=$ffff then begin result:=#$fffd; end else if Value<=$10ffff then begin result:=TPUCUUTF16String(TPUCUUTF16Char(TPUCUUInt16(((Value-$10000) shr 10) or $d800)))+TPUCUUTF16String(TPUCUUTF16Char(TPUCUUInt16(((Value-$10000) and $3ff) or $dc00))); end else begin result:=#$fffd; end; end; function PUCUUTF32CharToUTF16Len(const Value:TPUCUUTF32Char):TPUCUInt32; begin if Value<=$d7ff then begin result:=1; end else if Value<=$dfff then begin result:=1; end else if Value<=$fffd then begin result:=1; end else if Value<=$ffff then begin result:=1; end else if Value<=$10ffff then begin result:=2; end else begin result:=1; end; end; const UTF16LittleEndianBigEndianShifts:array[0..1,0..1] of TPUCUInt32=((0,8),(8,0)); UTF32LittleEndianBigEndianShifts:array[0..1,0..3] of TPUCUInt32=((0,8,16,24),(24,16,8,0)); function PUCURawDataToUTF8String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; type PBytes=^TBytes; TBytes=array[0..65535] of TPUCUUInt8; var Bytes:PBytes; BytesPerCodeUnit,BytesPerCodeUnitMask,LittleEndianBigEndian, PassIndex,CodeUnit,CodePoint,Temp,InputLen,OutputLen:TPUCUInt32; CodePage:PPUCUCharSetCodePage; SubCodePages:PPUCUCharSetSubCodePages; SubSubCodePages:PPUCUCharSetSubSubCodePages; begin begin CodePage:=nil; if (aCodePage>=0) and (aCodePage<=65535) then begin SubCodePages:=PUCUCharSetCodePages[(aCodePage shr 8) and $ff]; if assigned(SubCodePages) then begin SubSubCodePages:=SubCodePages^[(aCodePage shr 4) and $f]; if assigned(SubSubCodePages) then begin CodePage:=SubSubCodePages^[(aCodePage shr 0) and $f]; end; end; end; end; result:=''; Bytes:=@aData; if aCodePage=cpUTF16LE then begin // UTF16 little endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=0; if (aDataLength>=2) and ((Bytes^[0]=$ff) and (Bytes^[1]=$fe)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF16BE then begin // UTF16 big endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=1; if (aDataLength>=2) and ((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF7 then begin // UTF7 (per code page) raise Exception.Create('UTF-7 not supported'); end else if aCodePage=cpUTF8 then begin // UTF8 (per code page) BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if assigned(CodePage) then begin // Code page BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end else if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin // UTF8 BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else if (aDataLength>=4) and (((Bytes^[0]=$00) and (Bytes^[1]=$00) and (Bytes^[2]=$fe) and (Bytes^[3]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe) and (Bytes^[2]=$00) and (Bytes^[3]=$00))) then begin // UTF32 BytesPerCodeUnit:=4; BytesPerCodeUnitMask:=3; if Bytes^[0]=$00 then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[4]; InputLen:=aDataLength-4; end else if (aDataLength>=2) and (((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe))) then begin // UTF16 BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; if Bytes^[0]=$fe then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin // Latin1 BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; for PassIndex:=0 to 1 do begin CodeUnit:=0; OutputLen:=0; while (CodeUnit+BytesPerCodeUnitMask)<InputLen do begin case BytesPerCodeUnit of 1:begin // UTF8 CodePoint:=PUCUUTF8PtrCodeUnitGetCharAndIncFallback(pointer(Bytes),InputLen,CodeUnit); end; 2:begin // UTF16 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); inc(CodeUnit,2); if ((CodeUnit+1)<InputLen) and ((CodePoint and $fc00)=$d800) then begin Temp:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); if (Temp and $fc00)=$dc00 then begin CodePoint:=(TPUCUUTF32Char(TPUCUUTF32Char(CodePoint and $3ff) shl 10) or TPUCUUTF32Char(Temp and $3ff))+$10000; inc(CodeUnit,2); end; end; end; 4:begin // UTF32 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,1]) or (TPUCUInt32(Bytes^[CodeUnit+2]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,2]) or (TPUCUInt32(Bytes^[CodeUnit+3]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,3]); inc(CodeUnit,4); end; else begin // Latin1 or custom code page CodePoint:=Bytes^[CodeUnit]; inc(CodeUnit); if assigned(CodePage) then begin CodePoint:=CodePage^[CodePoint and $ff]; end; end; end; if PassIndex=0 then begin if CodePoint<=$7f then begin inc(OutputLen); end else if CodePoint<=$7ff then begin inc(OutputLen,2); end else if CodePoint<=$ffff then begin inc(OutputLen,3); end else if CodePoint<=$1fffff then begin inc(OutputLen,4); {$ifndef PUCUStrictUTF8} end else if CodePoint<=$3ffffff then begin inc(OutputLen,5); end else if TPUCUUInt32(CodePoint)<=$7fffffff then begin inc(OutputLen,6); {$endif} end else begin inc(OutputLen,3); end; end else begin if CodePoint<=$7f then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8(CodePoint)); end else if CodePoint<=$7ff then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($c0 or ((CodePoint shr 6) and $1f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); end else if CodePoint<=$ffff then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($e0 or ((CodePoint shr 12) and $0f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 6) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); end else if CodePoint<=$1fffff then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($f0 or ((CodePoint shr 18) and $07))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 12) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 6) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); {$ifndef PUCUStrictUTF8} end else if CodePoint<=$3ffffff then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($f8 or ((CodePoint shr 24) and $03))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 18) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 12) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 6) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); end else if TPUCUUInt32(CodePoint)<=$7fffffff then begin inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($fc or ((CodePoint shr 30) and $01))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 24) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 18) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 12) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 6) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); {$endif} end else begin CodePoint:=$fffd; inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($e0 or ((CodePoint shr 12) and $0f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or ((CodePoint shr 6) and $3f))); inc(OutputLen); result[OutputLen]:=AnsiChar(TPUCUUInt8($80 or (CodePoint and $3f))); end; end; end; if PassIndex=0 then begin SetLength(result,OutputLen); end; end; end; function PUCURawDataToUTF16String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; type PBytes=^TBytes; TBytes=array[0..65535] of TPUCUUInt8; var Bytes:PBytes; BytesPerCodeUnit,BytesPerCodeUnitMask,LittleEndianBigEndian, PassIndex,CodeUnit,CodePoint,Temp,InputLen,OutputLen:TPUCUInt32; CodePage:PPUCUCharSetCodePage; SubCodePages:PPUCUCharSetSubCodePages; SubSubCodePages:PPUCUCharSetSubSubCodePages; begin begin CodePage:=nil; if (aCodePage>=0) and (aCodePage<=65535) then begin SubCodePages:=PUCUCharSetCodePages[(aCodePage shr 8) and $ff]; if assigned(SubCodePages) then begin SubSubCodePages:=SubCodePages^[(aCodePage shr 4) and $f]; if assigned(SubSubCodePages) then begin CodePage:=SubSubCodePages^[(aCodePage shr 0) and $f]; end; end; end; end; result:=''; Bytes:=@aData; if aCodePage=cpUTF16LE then begin // UTF16 little endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=0; if (aDataLength>=2) and ((Bytes^[0]=$ff) and (Bytes^[1]=$fe)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF16BE then begin // UTF16 big endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=1; if (aDataLength>=2) and ((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF7 then begin // UTF7 (per code page) raise Exception.Create('UTF-7 not supported'); end else if aCodePage=cpUTF8 then begin // UTF8 (per code page) BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if assigned(CodePage) then begin // Code page BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end else if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin // UTF8 BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else if (aDataLength>=4) and (((Bytes^[0]=$00) and (Bytes^[1]=$00) and (Bytes^[2]=$fe) and (Bytes^[3]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe) and (Bytes^[2]=$00) and (Bytes^[3]=$00))) then begin // UTF32 BytesPerCodeUnit:=4; BytesPerCodeUnitMask:=3; if Bytes^[0]=$00 then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[4]; InputLen:=aDataLength-4; end else if (aDataLength>=2) and (((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe))) then begin // UTF16 BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; if Bytes^[0]=$fe then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin // Latin1 BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; for PassIndex:=0 to 1 do begin CodeUnit:=0; OutputLen:=0; while (CodeUnit+BytesPerCodeUnitMask)<InputLen do begin case BytesPerCodeUnit of 1:begin // UTF8 CodePoint:=PUCUUTF8PtrCodeUnitGetCharAndIncFallback(pointer(Bytes),InputLen,CodeUnit); end; 2:begin // UTF16 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); inc(CodeUnit,2); if ((CodeUnit+1)<InputLen) and ((CodePoint and $fc00)=$d800) then begin Temp:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); if (Temp and $fc00)=$dc00 then begin CodePoint:=(TPUCUUTF32Char(TPUCUUTF32Char(CodePoint and $3ff) shl 10) or TPUCUUTF32Char(Temp and $3ff))+$10000; inc(CodeUnit,2); end; end; end; 4:begin // UTF32 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,1]) or (TPUCUInt32(Bytes^[CodeUnit+2]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,2]) or (TPUCUInt32(Bytes^[CodeUnit+3]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,3]); inc(CodeUnit,4); end; else begin // Latin1 or custom code page CodePoint:=Bytes^[CodeUnit]; inc(CodeUnit); if assigned(CodePage) then begin CodePoint:=CodePage^[CodePoint and $ff]; end; end; end; if PassIndex=0 then begin if (CodePoint>=$10000) and (CodePoint<=$10ffff) then begin inc(OutputLen,2); end else begin inc(OutputLen); end; end else begin if (CodePoint>=$10000) and (CodePoint<=$10ffff) then begin dec(CodePoint,$10000); inc(OutputLen); result[OutputLen]:=TPUCUUTF16Char(TPUCUUInt16((CodePoint shr 10) or $d800)); inc(OutputLen); result[OutputLen]:=TPUCUUTF16Char(TPUCUUInt16((CodePoint and $3ff) or $dc00)); end else begin inc(OutputLen); result[OutputLen]:=TPUCUUTF16Char(TPUCUUInt16(CodePoint)); end; end; end; if PassIndex=0 then begin SetLength(result,OutputLen); end; end; end; function PUCURawDataToUTF32String(const aData;const aDataLength:TPUCUInt32;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; type PBytes=^TBytes; TBytes=array[0..65535] of TPUCUUInt8; var Bytes:PBytes; BytesPerCodeUnit,BytesPerCodeUnitMask,LittleEndianBigEndian, PassIndex,CodeUnit,CodePoint,Temp,InputLen,OutputLen:TPUCUInt32; CodePage:PPUCUCharSetCodePage; SubCodePages:PPUCUCharSetSubCodePages; SubSubCodePages:PPUCUCharSetSubSubCodePages; begin begin CodePage:=nil; if (aCodePage>=0) and (aCodePage<=65535) then begin SubCodePages:=PUCUCharSetCodePages[(aCodePage shr 8) and $ff]; if assigned(SubCodePages) then begin SubSubCodePages:=SubCodePages^[(aCodePage shr 4) and $f]; if assigned(SubSubCodePages) then begin CodePage:=SubSubCodePages^[(aCodePage shr 0) and $f]; end; end; end; end; result:=nil; Bytes:=@aData; if aCodePage=cpUTF16LE then begin // UTF16 little endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=0; if (aDataLength>=2) and ((Bytes^[0]=$ff) and (Bytes^[1]=$fe)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF16BE then begin // UTF16 big endian (per code page) BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; LittleEndianBigEndian:=1; if (aDataLength>=2) and ((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) then begin Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if aCodePage=cpUTF7 then begin // UTF7 (per code page) raise Exception.Create('UTF-7 not supported'); end else if aCodePage=cpUTF8 then begin // UTF8 (per code page) BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else begin Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; end else if assigned(CodePage) then begin // Code page BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end else if (aDataLength>=3) and (Bytes^[0]=$ef) and (Bytes^[1]=$bb) and (Bytes^[2]=$bf) then begin // UTF8 BytesPerCodeUnit:=1; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[3]; InputLen:=aDataLength-3; end else if (aDataLength>=4) and (((Bytes^[0]=$00) and (Bytes^[1]=$00) and (Bytes^[2]=$fe) and (Bytes^[3]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe) and (Bytes^[2]=$00) and (Bytes^[3]=$00))) then begin // UTF32 BytesPerCodeUnit:=4; BytesPerCodeUnitMask:=3; if Bytes^[0]=$00 then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[4]; InputLen:=aDataLength-4; end else if (aDataLength>=2) and (((Bytes^[0]=$fe) and (Bytes^[1]=$ff)) or ((Bytes^[0]=$ff) and (Bytes^[1]=$fe))) then begin // UTF16 BytesPerCodeUnit:=2; BytesPerCodeUnitMask:=1; if Bytes^[0]=$fe then begin // Big endian LittleEndianBigEndian:=1; end else begin // Little endian LittleEndianBigEndian:=0; end; Bytes:=@Bytes^[2]; InputLen:=aDataLength-2; end else begin // Latin1 BytesPerCodeUnit:=0; BytesPerCodeUnitMask:=0; LittleEndianBigEndian:=0; Bytes:=@Bytes^[0]; InputLen:=aDataLength; end; for PassIndex:=0 to 1 do begin CodeUnit:=0; OutputLen:=0; while (CodeUnit+BytesPerCodeUnitMask)<InputLen do begin case BytesPerCodeUnit of 1:begin // UTF8 CodePoint:=PUCUUTF8PtrCodeUnitGetCharAndIncFallback(pointer(Bytes),InputLen,CodeUnit); end; 2:begin // UTF16 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); inc(CodeUnit,2); if ((CodeUnit+1)<InputLen) and ((CodePoint and $fc00)=$d800) then begin Temp:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF16LittleEndianBigEndianShifts[LittleEndianBigEndian,1]); if (Temp and $fc00)=$dc00 then begin CodePoint:=(TPUCUUTF32Char(TPUCUUTF32Char(CodePoint and $3ff) shl 10) or TPUCUUTF32Char(Temp and $3ff))+$10000; inc(CodeUnit,2); end; end; end; 4:begin // UTF32 CodePoint:=(TPUCUInt32(Bytes^[CodeUnit+0]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,0]) or (TPUCUInt32(Bytes^[CodeUnit+1]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,1]) or (TPUCUInt32(Bytes^[CodeUnit+2]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,2]) or (TPUCUInt32(Bytes^[CodeUnit+3]) shl UTF32LittleEndianBigEndianShifts[LittleEndianBigEndian,3]); inc(CodeUnit,4); end; else begin // Latin1 or custom code page CodePoint:=Bytes^[CodeUnit]; inc(CodeUnit); if assigned(CodePage) then begin CodePoint:=CodePage^[CodePoint and $ff]; end; end; end; if PassIndex=0 then begin inc(OutputLen); end else begin result[OutputLen]:=CodePoint; inc(OutputLen); end; end; if PassIndex=0 then begin SetLength(result,OutputLen); end; end; end; function PUCURawByteStringToUTF8String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; var p:PPUCURawByteChar; begin if length(aString)>0 then begin p:=PPUCURawByteChar(@aString[1]); result:=PUCURawDataToUTF8String(p^,length(aString),aCodePage); end else begin result:=''; end; end; function PUCURawByteStringToUTF16String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; var p:PPUCURawByteChar; begin if length(aString)>0 then begin p:=PPUCURawByteChar(@aString[1]); result:=PUCURawDataToUTF16String(p^,length(aString),aCodePage); end else begin result:=''; end; end; function PUCURawByteStringToUTF32String(const aString:TPUCURawByteString;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; var p:PPUCURawByteChar; begin if length(aString)>0 then begin p:=PPUCURawByteChar(@aString[1]); result:=PUCURawDataToUTF32String(p^,length(aString),aCodePage); end else begin result:=nil; end; end; function PUCURawStreamToUTF8String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF8String; var Memory:pointer; Size:TPUCUPtrInt; begin result:=''; if assigned(aStream) and (aStream.Seek(0,soBeginning)=0) then begin Size:=aStream.Size; GetMem(Memory,Size); try if aStream.Read(Memory^,Size)=Size then begin result:=PUCURawDataToUTF8String(Memory^,Size,aCodePage); end; finally FreeMem(Memory); end; end; end; function PUCURawStreamToUTF16String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF16String; var Memory:pointer; Size:TPUCUPtrInt; begin result:=''; if assigned(aStream) and (aStream.Seek(0,soBeginning)=0) then begin Size:=aStream.Size; GetMem(Memory,Size); try if aStream.Read(Memory^,Size)=Size then begin result:=PUCURawDataToUTF16String(Memory^,Size,aCodePage); end; finally FreeMem(Memory); end; end; end; function PUCURawStreamToUTF32String(const aStream:TStream;const aCodePage:TPUCUInt32=-1):TPUCUUTF32String; var Memory:pointer; Size:TPUCUPtrInt; begin result:=nil; if assigned(aStream) and (aStream.Seek(0,soBeginning)=0) then begin Size:=aStream.Size; GetMem(Memory,Size); try if aStream.Read(Memory^,Size)=Size then begin result:=PUCURawDataToUTF32String(Memory^,Size,aCodePage); end; finally FreeMem(Memory); end; end; end; function PUCUUTF32Normalize(const aString:TPUCUUTF32String;const aCompose:boolean=true):TPUCUUTF32String; var Index,Len,DecompositionTableStartIndex,DecompositionTableItemLength,SubIndex,StartIndex, EndIndex,TargetIndex,CodePointClass,LastClass,CompositionSequenceIndex:TPUCUInt32; CodePoint,StartCodePoint,CompositeCodePoint:TPUCUUTF32Char; OutputString:TPUCUUTF32String; CharacterCompositionSequence:PPUCUUnicodeCharacterCompositionSequence; procedure AddCodePoint(const aCodePoint:TPUCUUTF32Char); begin if length(OutputString)<(Len+1) then begin SetLength(OutputString,(Len+1)*2); end; OutputString[Len]:=aCodePoint; inc(Len); end; begin if length(aString)=0 then begin result:=nil; end else begin OutputString:=nil; Len:=0; for Index:=0 to length(aString)-1 do begin CodePoint:=aString[Index]; case CodePoint of $ac00..$d7a4:begin AddCodePoint($1100+((CodePoint-$ac00) div 588)); AddCodePoint($1161+(((CodePoint-$ac00) mod 588) div 28)); if ((CodePoint-$ac00) mod 28)<>0 then begin AddCodePoint($11a7+((CodePoint-$ac00) mod 28)); end; end; else begin DecompositionTableStartIndex:=PUCUUnicodeGetDecompositionStartFromTable(CodePoint); if DecompositionTableStartIndex>0 then begin DecompositionTableItemLength:=(DecompositionTableStartIndex shr 14)+1; DecompositionTableStartIndex:=DecompositionTableStartIndex and ((1 shl 14)-1); for SubIndex:=0 to DecompositionTableItemLength-1 do begin AddCodePoint(PUCUUnicodeDecompositionSequenceArrayData[DecompositionTableStartIndex+SubIndex]); end; end else begin AddCodePoint(CodePoint); end; end; end; end; result:=copy(OutputString,0,Len); StartIndex:=0; while StartIndex<length(result) do begin if PUCUUnicodeGetCanonicalCombiningClassFromTable(result[StartIndex])=0 then begin inc(StartIndex); end else begin EndIndex:=StartIndex+1; while (EndIndex<length(result)) and (PUCUUnicodeGetCanonicalCombiningClassFromTable(result[EndIndex])<>0) do begin inc(EndIndex); end; if (EndIndex-StartIndex)>1 then begin Index:=StartIndex; while (Index+1)<EndIndex do begin if PUCUUnicodeGetCanonicalCombiningClassFromTable(result[Index])>=PUCUUnicodeGetCanonicalCombiningClassFromTable(result[Index+1]) then begin CodePoint:=result[Index]; result[Index]:=result[Index+1]; result[Index+1]:=CodePoint; if Index>StartIndex then begin dec(Index); end else begin inc(Index); end; end else begin inc(Index); end; end; end; StartIndex:=EndIndex+1; end; end; if aCompose then begin Index:=1; LastClass:=-1; StartIndex:=0; TargetIndex:=1; StartCodePoint:=result[0]; while Index<length(result) do begin CodePoint:=result[Index]; CodePointClass:=PUCUUnicodeGetCanonicalCombiningClassFromTable(CodePoint); if (StartCodePoint>=$1100) and (StartCodePoint<$1113) and (CodePoint>=$1161) and (CodePoint<$1176) then begin CompositeCodePoint:=(((((StartCodePoint-$1100)*21)+CodePoint)-$1161)*28)+$ac00; end else if (StartCodePoint>=$ac00) and (StartCodePoint<$d7a4) and (((StartCodePoint-$ac00) mod 28)=0) and (CodePoint>=$11a8) and (CodePoint<$11c3) then begin CompositeCodePoint:=(StartCodePoint+CodePoint)-$11a7; end else begin CompositeCodePoint:=0; CompositionSequenceIndex:=PUCUUnicodeCharacterCompositionHashTableData[TPUCUUInt32((TPUCUUInt32(StartCodePoint)*98303927) xor (TPUCUUInt32(CodePoint)*24710753)) and PUCUUnicodeCharacterCompositionHashTableMask]; while (CompositionSequenceIndex>0) and (CompositionSequenceIndex<PUCUUnicodeCharacterCompositionSequenceCount) do begin CharacterCompositionSequence:=@PUCUUnicodeCharacterCompositionSequences[CompositionSequenceIndex]; if (longword(CharacterCompositionSequence^.Sequence[0])=longword(StartCodePoint)) and (longword(CharacterCompositionSequence^.Sequence[1])=longword(CodePoint)) then begin CompositeCodePoint:=CharacterCompositionSequence^.CodePoint; break; end else begin CompositionSequenceIndex:=PUCUUnicodeCharacterCompositionSequences[CompositionSequenceIndex].Next; end; end; end; if (CompositeCodePoint<>0) and (LastClass<CodePointClass) then begin if length(result)<(StartIndex+1) then begin SetLength(result,(StartIndex+1)*2); end; result[StartIndex]:=CompositeCodePoint; StartCodePoint:=CompositeCodePoint; end else if CodePointClass=0 then begin StartIndex:=TargetIndex; StartCodePoint:=CodePoint; LastClass:=-1; if length(result)<(TargetIndex+1) then begin SetLength(result,(TargetIndex+1)*2); end; result[TargetIndex]:=CodePoint; inc(TargetIndex); end else begin LastClass:=CodePointClass; if length(result)<(TargetIndex+1) then begin SetLength(result,(TargetIndex+1)*2); end; result[TargetIndex]:=CodePoint; inc(TargetIndex); end; inc(Index); end; SetLength(result,TargetIndex); end; end; end; function PUCUUTF16Normalize(const aString:TPUCUUTF16String;const aCompose:boolean=true):TPUCUUTF16String; begin result:=PUCUUTF32ToUTF16(PUCUUTF32Normalize(PUCUUTF16ToUTF32(aString),aCompose)); end; function PUCUUTF8Normalize(const aString:TPUCUUTF8String;const aCompose:boolean=true):TPUCUUTF8String; begin result:=PUCUUTF32ToUTF8(PUCUUTF32Normalize(PUCUUTF8ToUTF32(aString),aCompose)); end; end.