diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
index bd02caedf4..0f1083c00d 100644
--- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
+++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
@@ -1961,6 +1961,18 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
@@ -4428,6 +4440,18 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
index 0f3ec2b1bd..d8c62afb32 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj
@@ -2375,6 +2375,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -4184,6 +4211,9 @@
+
+
+
diff --git a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
index 2b57cf6a32..ab5dfc1a8b 100644
--- a/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2017/DemoRunner_App.vcxproj.filters
@@ -650,6 +650,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -3127,6 +3130,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -7281,6 +7311,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
index 3a854ab3d6..e451963cb3 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj
@@ -2375,6 +2375,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -4184,6 +4211,9 @@
+
+
+
diff --git a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
index 4f4e610ce8..a310001ffc 100644
--- a/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2019/DemoRunner_App.vcxproj.filters
@@ -650,6 +650,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -3127,6 +3130,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -7281,6 +7311,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
index edd7e938c0..fd376e9cac 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj
@@ -2375,6 +2375,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -4184,6 +4211,9 @@
+
+
+
diff --git a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
index 5eefb125db..142266e7ec 100644
--- a/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
+++ b/examples/DemoRunner/Builds/VisualStudio2022/DemoRunner_App.vcxproj.filters
@@ -650,6 +650,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -3127,6 +3130,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -7281,6 +7311,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
index 24ec153d78..1485234462 100644
--- a/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPerformanceTest/Builds/Android/app/CMakeLists.txt
@@ -1723,6 +1723,18 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
@@ -3872,6 +3884,18 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
index 6c6b6171e0..cf4a415e56 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj
@@ -2068,6 +2068,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3655,6 +3682,9 @@
+
+
+
diff --git a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
index 21d1d475f9..9ebb523905 100644
--- a/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
+++ b/extras/AudioPerformanceTest/Builds/VisualStudio2022/AudioPerformanceTest_App.vcxproj.filters
@@ -560,6 +560,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2671,6 +2674,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6336,6 +6366,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
index 90fe96883a..4efb8e866a 100644
--- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
@@ -1853,6 +1853,18 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
@@ -4155,6 +4167,18 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
index 7d626e177c..584720edb8 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj
@@ -2202,6 +2202,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3888,6 +3915,9 @@
+
+
+
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
index 936d1ef379..0d9568477c 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2017/AudioPluginHost_App.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2878,6 +2881,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6771,6 +6801,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
index 4668af2d54..2a662bf4a0 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj
@@ -2202,6 +2202,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3888,6 +3915,9 @@
+
+
+
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
index 2ebb1d8ac5..0032492f73 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2019/AudioPluginHost_App.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2878,6 +2881,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6771,6 +6801,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
index 3bbe7ef09c..ebffe8f28b 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj
@@ -2202,6 +2202,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3888,6 +3915,9 @@
+
+
+
diff --git a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
index 18edd907e1..509aeef509 100644
--- a/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
+++ b/extras/AudioPluginHost/Builds/VisualStudio2022/AudioPluginHost_App.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2878,6 +2881,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6771,6 +6801,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
index 5f74a91ad0..a6f2cb09c3 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
@@ -1742,6 +1742,18 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
@@ -3971,6 +3983,18 @@ set_source_files_properties(
"../../../../../modules/juce_graphics/placement/juce_Justification.h"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"
"../../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"
+ "../../../../../modules/juce_graphics/unicode/juce_LineBreakTable.inl"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_Unicode.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBidi.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeLine.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeScript.h"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeTestData.cpp"
+ "../../../../../modules/juce_graphics/unicode/juce_UnicodeUtils.cpp"
"../../../../../modules/juce_graphics/juce_graphics.cpp"
"../../../../../modules/juce_graphics/juce_graphics.mm"
"../../../../../modules/juce_graphics/juce_graphics_Harfbuzz.cpp"
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
index f41a0b1b50..00a02de191 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj
@@ -2089,6 +2089,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3753,6 +3780,9 @@
+
+
+
diff --git a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
index d62be98448..a5793a3a37 100644
--- a/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
+++ b/extras/NetworkGraphicsDemo/Builds/VisualStudio2022/NetworkGraphicsDemo_App.vcxproj.filters
@@ -569,6 +569,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2725,6 +2728,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6498,6 +6528,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
index ba755b72da..099666c65e 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj
@@ -1271,6 +1271,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -2570,6 +2597,9 @@
+
+
+
diff --git a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
index 51582ef6e7..7e73019c6d 100644
--- a/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2017/Projucer_App.vcxproj.filters
@@ -293,6 +293,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -1669,6 +1672,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -4476,6 +4506,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
index aa8cce2e6e..972934764c 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj
@@ -1271,6 +1271,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -2570,6 +2597,9 @@
+
+
+
diff --git a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
index be02e304aa..69b9891396 100644
--- a/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2019/Projucer_App.vcxproj.filters
@@ -293,6 +293,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -1669,6 +1672,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -4476,6 +4506,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
index 04a7e1e18c..36fdf41129 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj
@@ -1271,6 +1271,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -2570,6 +2597,9 @@
+
+
+
diff --git a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
index d6601bcb6c..adec1e1553 100644
--- a/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
+++ b/extras/Projucer/Builds/VisualStudio2022/Projucer_App.vcxproj.filters
@@ -293,6 +293,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -1669,6 +1672,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -4476,6 +4506,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
index abb1c4a151..b4656cef05 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj
@@ -2210,6 +2210,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3984,6 +4011,9 @@
+
+
+
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
index 5e59635cc0..1af2a35963 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2017/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2899,6 +2902,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6885,6 +6915,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
index 1d4bca0512..5220d10436 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj
@@ -2210,6 +2210,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3984,6 +4011,9 @@
+
+
+
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
index d2c3a222c6..e51dcbfcca 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2019/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2899,6 +2902,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6885,6 +6915,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
index 24ef0ecc25..24fa671013 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj
@@ -2210,6 +2210,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3984,6 +4011,9 @@
+
+
+
diff --git a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
index df59c80670..26ad8d49b3 100644
--- a/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
+++ b/extras/UnitTestRunner/Builds/VisualStudio2022/UnitTestRunner_ConsoleApp.vcxproj.filters
@@ -602,6 +602,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2899,6 +2902,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6885,6 +6915,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
index f5fcb509ef..20fc979d61 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj
@@ -2088,6 +2088,33 @@
true
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
true
@@ -3729,6 +3756,9 @@
+
+
+
diff --git a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
index fa7ac63b6a..a7a1b3e4d4 100644
--- a/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
+++ b/extras/WindowsDLL/Builds/VisualStudio2022/WindowsDLL_StaticLibrary.vcxproj.filters
@@ -563,6 +563,9 @@
{160D9882-0F68-278D-C5F9-8960FD7421D2}
+
+ {A4846E15-C7B2-BB61-80BA-E284529F3AAA}
+
{4CED05DA-E0A2-E548-F753-1F2EF299A8E3}
@@ -2722,6 +2725,33 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
@@ -6465,6 +6495,15 @@
JUCE Modules\juce_graphics\placement
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
+
+ JUCE Modules\juce_graphics\unicode
+
JUCE Modules\juce_graphics
diff --git a/modules/juce_graphics/juce_graphics.cpp b/modules/juce_graphics/juce_graphics.cpp
index b36197e59f..ad58699773 100644
--- a/modules/juce_graphics/juce_graphics.cpp
+++ b/modules/juce_graphics/juce_graphics.cpp
@@ -121,6 +121,15 @@
//==============================================================================
#include "fonts/juce_FunctionPointerDestructor.h"
+#include "unicode/juce_UnicodeScript.h"
+#include "unicode/juce_Unicode.h"
+#include "unicode/juce_UnicodeUtils.cpp"
+#include "unicode/juce_UnicodeLine.cpp"
+#include "unicode/juce_UnicodeScript.cpp"
+#include "unicode/juce_UnicodeBrackets.cpp"
+#include "unicode/juce_UnicodeBidi.cpp"
+#include "unicode/juce_UnicodeGrapheme.cpp"
+#include "unicode/juce_Unicode.cpp"
#include "colour/juce_Colour.cpp"
#include "colour/juce_ColourGradient.cpp"
#include "colour/juce_Colours.cpp"
diff --git a/modules/juce_graphics/unicode/juce_LineBreakTable.inl b/modules/juce_graphics/unicode/juce_LineBreakTable.inl
new file mode 100644
index 0000000000..2b4e19c05a
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_LineBreakTable.inl
@@ -0,0 +1,1058 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+set (BreakClass::op, BreakClass::op, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::qu, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::gl, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::ns, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::pr, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::po, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::nu, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::al, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::hl, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::id, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::in, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::hy, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::ba, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::bb, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::b2, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::cm, BreakOppurtunity::combinedProhibited);
+set (BreakClass::op, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::h2, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::h3, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::jl, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::jv, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::jt, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::ri, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::eb, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::em, BreakOppurtunity::prohibited);
+set (BreakClass::op, BreakClass::zwj, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::ns, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::cl, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::cl, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::cl, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::cl, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::ns, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::cp, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::cp, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::cp, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::cp, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::op, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::bb, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::b2, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::qu, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::qu, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::ri, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::qu, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::bb, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::b2, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::gl, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::gl, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::ri, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::gl, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::ns, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::ns, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::ns, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::ns, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::ex, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::ex, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::ex, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::ex, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::sy, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::sy, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::sy, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::sy, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::is, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::is, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::is, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::is, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::pr, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::pr, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::pr, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::pr, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::po, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::po, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::po, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::po, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::nu, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::nu, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::nu, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::nu, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::al, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::al, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::al, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::al, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::hl, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::hl, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::hl, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::hl, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::id, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::id, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::id, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::id, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::in, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::in, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::in, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::in, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::gl, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::hy, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::hy, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::hy, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::hy, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::ba, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::ba, BreakClass::gl, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::ba, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::ba, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::ba, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::ba, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::ba, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::ba, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::bb, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::b2, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::bb, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::bb, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::ri, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::bb, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::b2, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::b2, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::b2, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::b2, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::b2, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::zw, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::cl, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::cp, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::qu, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::gl, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::ns, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::ex, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::sy, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::is, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::hy, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::ba, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::zw, BreakClass::cm, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::wj, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::zw, BreakClass::zwj, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::cm, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::cm, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::cm, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::cm, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::op, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::pr, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::nu, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::al, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::hl, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::bb, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::b2, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::wj, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::wj, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::ri, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::wj, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::h2, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::h2, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::h2, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::h2, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::h3, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::h3, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::h3, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::h3, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::jl, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::jl, BreakClass::h2, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::h3, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::jl, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::jl, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::jl, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::jv, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::jv, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::jv, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::jv, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::jv, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::jt, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::jt, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::jt, BreakOppurtunity::indirect);
+set (BreakClass::jt, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::jt, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::ri, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::ri, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::ri, BreakOppurtunity::indirect);
+set (BreakClass::ri, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::ri, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::eb, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::eb, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::eb, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::eb, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::po, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::id, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::in, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::em, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::em, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::em, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::eb, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::em, BreakOppurtunity::direct);
+set (BreakClass::em, BreakClass::zwj, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::op, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::cl, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::cp, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::qu, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::gl, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::ns, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::ex, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::sy, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::is, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::pr, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::po, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::nu, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::al, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::hl, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::id, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::in, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::hy, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::ba, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::bb, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::b2, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::zw, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::cm, BreakOppurtunity::combinedIndirect);
+set (BreakClass::zwj, BreakClass::wj, BreakOppurtunity::prohibited);
+set (BreakClass::zwj, BreakClass::h2, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::h3, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::jl, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::jv, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::jt, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::ri, BreakOppurtunity::direct);
+set (BreakClass::zwj, BreakClass::eb, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::em, BreakOppurtunity::indirect);
+set (BreakClass::zwj, BreakClass::zwj, BreakOppurtunity::indirect);
diff --git a/modules/juce_graphics/unicode/juce_Unicode.cpp b/modules/juce_graphics/unicode/juce_Unicode.cpp
new file mode 100644
index 0000000000..a5982121f6
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_Unicode.cpp
@@ -0,0 +1,328 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+Array Unicode::performAnalysis (const String& string)
+{
+ if (string.isEmpty())
+ return {};
+
+ thread_local std::unordered_map> cache;
+ auto& result = cache[string];
+
+ if (! result.isEmpty())
+ return result;
+
+ auto analysisBuffer = [&str = std::as_const (string)]
+ {
+ std::vector points;
+
+ const auto data = str.toUTF32();
+ const auto length = data.length();
+
+ points.reserve (length);
+
+ std::transform (data.getAddress(), data.getAddress() + length, std::back_inserter (points), [] (uint32_t cp)
+ {
+ UnicodeAnalysisPoint p;
+
+ p.character = cp;
+ p.data = getUnicodeDataForCodepoint (cp);
+ p.bidi.level = 0;
+
+ //#define JUCE_TR9_UPPERCASE_IS_RTL
+ #if defined (JUCE_TR9_UPPERCASE_IS_RTL)
+ if (cp >= 65 && cp <= 90)
+ p.data.bidi = BidiType::al;
+ #undef JUCE_TR9_UPPERCASE_IS_RTL
+ #endif
+
+ return p;
+ });
+
+ return points;
+ }();
+
+ struct ParagraphIterator
+ {
+ explicit ParagraphIterator (Span Span) : data (Span) {}
+
+ std::optional> next()
+ {
+ const auto start = head;
+ auto end = start;
+
+ if ((size_t) start < data.size())
+ {
+ while ((size_t) end < data.size())
+ {
+ if (data[(size_t) end].character == 0x2029)
+ break;
+
+ end++;
+ }
+
+
+ head = end + 1;
+ return std::make_optional (Range { start, end });
+ }
+
+ return nullopt;
+ }
+
+ Span data;
+ int head = 0;
+ };
+
+ result.resize ((int) analysisBuffer.size());
+
+ for (size_t i = 0; i < analysisBuffer.size(); i++)
+ result.getReference ((int) i).codepoint = analysisBuffer[i].character;
+
+ tr24::analyseScripts (analysisBuffer, [&result] (int index, TextScript script)
+ {
+ result.getReference (index).script = script;
+ });
+
+ tr14::analyseLineBreaks (analysisBuffer, [&result] (int index, TextBreakType type)
+ {
+ result.getReference ((int) index).breaking = type;
+ });
+
+ ParagraphIterator iter { analysisBuffer };
+
+ while (auto range = iter.next())
+ {
+ const auto run = Span { analysisBuffer.data() + (size_t) range->getStart(), (size_t) range->getLength() };
+ const auto bidi = tr9::analyseBidiRun (run);
+
+ for (size_t i = 0; i < (size_t) range->getLength(); i++)
+ {
+ auto& point = result.getReference ((int) i + range->getStart());
+
+ point.direction = bidi.resolvedLevels[i] % 2 == 0 ? TextDirection::ltr : TextDirection::rtl;
+ point.logicalIndex = (size_t) range->getStart() + i;
+ point.visualIndex = (size_t) bidi.visualOrder[i];
+ }
+ }
+
+ return result;
+}
+
+// https://unicode-org.github.io/icu/userguide/transforms/bidi.html#logical-order-versus-visual-order
+Array Unicode::convertLogicalToVisual (Span codepoints)
+{
+ Array visual;
+
+ visual.resize ((int) codepoints.size());
+
+ for (const auto& codepoint : codepoints)
+ visual.set ((int) codepoint.visualIndex, codepoint);
+
+ return visual;
+}
+
+bool UnicodeFunctions::isRenderableCharacter (juce_wchar character)
+{
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+ switch (getUnicodeDataForCodepoint ((uint32_t) character).bt)
+ {
+ case LineBreakType::cr:
+ case LineBreakType::lf:
+ case LineBreakType::bk:
+ case LineBreakType::nl:
+ case LineBreakType::sp:
+ case LineBreakType::zw:
+ case LineBreakType::zwj:
+ case LineBreakType::cm:
+ case LineBreakType::cb:
+ return false;
+
+ default: break;
+ }
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+
+ return true;
+}
+
+bool UnicodeFunctions::isBreakableWhitespace (juce_wchar character)
+{
+ switch (character)
+ {
+ case 0x0020: case 0x1680: case 0x180E: case 0x2000:
+ case 0x2001: case 0x2002: case 0x2003: case 0x2004:
+ case 0x2005: case 0x2006: case 0x2007: case 0x2008:
+ case 0x2009: case 0x200A: case 0x200B: case 0x202F:
+ case 0x205F: case 0x3000:
+ return true;
+
+ default: break;
+ }
+
+ return false;
+}
+
+bool UnicodeFunctions::isEmoji (juce_wchar character)
+{
+ return getEmojiType ((uint32_t) character) != EmojiType::no;
+}
+
+bool UnicodeFunctions::shouldVerticalGlyphRotate (juce_wchar character)
+{
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+ switch (getUnicodeDataForCodepoint ((uint32_t) character).vertical)
+ {
+ case VerticalTransformType::R:
+ case VerticalTransformType::Tr:
+ case VerticalTransformType::Tu: return true;
+
+ default: break;
+ }
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+
+ return false;
+}
+
+//#define JUCE_UNICODE_UNIT_TESTS
+
+#if defined(JUCE_UNIT_TESTS) && defined(JUCE_UNICODE_UNIT_TESTS)
+struct LineBreakTests : UnitTest
+{
+ LineBreakTests() : UnitTest ("UnicodeLineBreakTests", UnitTestCategories::unicode)
+ {
+ }
+
+ void runTest()
+ {
+ static const auto data = []
+ {
+ using namespace generated;
+
+ MemoryInputStream mStream {tr14TestData, sizeof (tr14TestData), false};
+ GZIPDecompressorInputStream zStream {&mStream, false};
+
+ MemoryBlock data {tr14TestDataUncompressedSize, false};
+ zStream.read (data.getData(), data.getSize());
+
+ return std::move (data);
+ }();
+
+ MemoryInputStream stream {data, false};
+
+ int testCounter = 0;
+
+ while (! stream.isExhausted())
+ {
+ uint32_t input[256]{};
+ bool output[256]{};
+
+ const auto inputStringLength = (size_t) stream.readShort();
+ jassert (inputStringLength < std::size (input));
+
+ for (size_t i = 0; i < inputStringLength; i++)
+ input[i] = (uint32_t) stream.readInt();
+
+ for (size_t i = 0; i < inputStringLength + 1; i++)
+ output[i] = (bool) stream.readBool();
+
+ beginTest ("Test " + String (++testCounter));
+ expect (runTest (Span { input, inputStringLength },
+ Span { output, inputStringLength + 1 }));
+ }
+ }
+
+ static bool runTest (Span input, Span output)
+ {
+ UnicodeAnalysisPoint points[256]{};
+ bool result[256]{};
+
+ std::transform (input.begin(), input.end(), points, [] (uint32_t cp)
+ {
+ auto data = getUnicodePointForCodepoint (cp);
+ return UnicodeAnalysisPoint {cp, data};
+ });
+
+ const auto resultCount = tr14::analyseLineBreaks ({ points, input.size() }, [&result, output] (int index, TextBreakType type)
+ {
+ jassert (index <= output.size());
+ result[index] = type != TextBreakType::noBreak;
+ });
+
+ const auto s = std::equal (output.begin(), output.end(), std::begin (result)) &&
+ resultCount == output.size();
+
+ #if JUCE_DEBUG
+ if (! s)
+ {
+ String expected, actual;
+
+ DBG ("Test Failed:");
+
+ if (resultCount != output.size())
+ {
+ DBG ("\tIncorrect output size. Expected " << output.size() << " got " << resultCount);
+ jassertfalse;
+ }
+
+ for (size_t i = 0; i < output.size(); i++)
+ {
+ expected << (output[i] ? "True" : "False") << " ";
+ actual << (result[i] ? "True" : "False") << " ";
+ }
+
+ String inputString;
+
+ for (auto value : input)
+ inputString << String::formatted ("%04X ", value);
+
+ DBG ("\tInput: { " << inputString << "}");
+ DBG ("\tOutput: { " << actual << "}");
+ DBG ("\tExpected: { " << expected << "}");
+
+ DBG (tr14::debugString);
+ jassertfalse;
+ }
+ #endif
+
+ return s;
+ }
+};
+
+static LineBreakTests lineBreakTests;
+
+#endif
+
+}
diff --git a/modules/juce_graphics/unicode/juce_Unicode.h b/modules/juce_graphics/unicode/juce_Unicode.h
new file mode 100644
index 0000000000..f7ab6f03eb
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_Unicode.h
@@ -0,0 +1,169 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+enum class TextBreakType { none, soft, hard };
+enum class TextDirection { ltr, rtl };
+
+struct Unicode
+{
+ struct Codepoint
+ {
+ auto getLogicalIndex() const { return logicalIndex; }
+ auto getVisualIndex() const { return visualIndex; }
+
+ uint32_t codepoint;
+
+ // Index of the character in the source string
+ size_t logicalIndex;
+ size_t visualIndex;
+
+ // Breaking characteristics of this codepoint
+ TextBreakType breaking;
+
+ // Direction of this codepoint
+ TextDirection direction;
+
+ // Script class for this codepoint
+ TextScript script;
+ };
+
+ template
+ static auto prefix (Span v, size_t num)
+ {
+ return Span { v.data(), std::min (v.size(), num) };
+ }
+
+ template
+ static auto removePrefix (Span v, size_t num)
+ {
+ const auto increment = std::min (v.size(), num);
+ return Span { v.data() + increment, v.size() - increment };
+ }
+
+ static Array performAnalysis (const String&);
+ static Array convertLogicalToVisual (Span);
+
+ template
+ struct Iterator
+ {
+ using ValueType = typename Traits::ValueType;
+
+ Iterator() = default;
+ explicit Iterator (Span s) : data (s) {}
+
+ std::optional> next()
+ {
+ if (data.empty())
+ return {};
+
+ const auto breakpoint = std::find_if (data.begin(), data.end(), [&] (const auto& i)
+ {
+ return ! Traits::compare (i, data.front());
+ });
+ const auto lengthToBreak = (size_t) std::distance (data.begin(), breakpoint) + (Traits::includeBreakingIndex() ? 1 : 0);
+ const ScopeGuard scope { [&] { data = removePrefix (data, lengthToBreak); } };
+ return prefix (data, lengthToBreak);
+ }
+
+ private:
+ Span data;
+ };
+
+ struct BidiTraits
+ {
+ using ValueType = const Codepoint;
+
+ static bool compare (const Codepoint& t1, const Codepoint& t2)
+ {
+ return t1.direction == t2.direction;
+ }
+
+ static bool includeBreakingIndex() { return false; }
+ };
+
+ using BidiRunIterator = Iterator;
+
+ struct LineTraits
+ {
+ using ValueType = const Codepoint;
+
+ static bool compare (const Codepoint& t1, const Codepoint&)
+ {
+ return t1.breaking != TextBreakType::hard;
+ }
+
+ static bool includeBreakingIndex() { return true; }
+ };
+
+ using LineBreakIterator = Iterator;
+
+ struct WordTraits
+ {
+ using ValueType = const Codepoint;
+
+ static bool compare (const Codepoint& t1, const Codepoint&)
+ {
+ return t1.breaking != TextBreakType::soft;
+ }
+
+ static bool includeBreakingIndex() { return false; }
+ };
+
+ using WordBreakIterator = Iterator;
+
+ struct ScriptTraits
+ {
+ using ValueType = const Codepoint;
+
+ static bool compare (const Codepoint& t1, const Codepoint& t2)
+ {
+ return t1.script == t2.script;
+ }
+
+ static bool includeBreakingIndex() { return false; }
+ };
+
+ using ScriptRunIterator = Iterator;
+};
+
+struct UnicodeFunctions
+{
+ static bool isRenderableCharacter (juce_wchar character);
+ static bool isBreakableWhitespace (juce_wchar character);
+ static bool isEmoji (juce_wchar character);
+ static bool shouldVerticalGlyphRotate (juce_wchar character);
+};
+} // namespace juce
diff --git a/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp
new file mode 100644
index 0000000000..71cee307f6
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp
@@ -0,0 +1,692 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce::tr9
+{
+
+enum EmbeddingLevel
+{
+ left = 0,
+ right = 1
+};
+
+static inline auto isOdd (int level) { return bool (level & 1); }
+static inline auto computeLeastEven (int level) { return isOdd (level) ? level + 1 : level + 2; }
+static inline auto computeLeastOdd (int level) { return isOdd (level) ? level + 2 : level + 1; }
+static inline auto getEmbeddingDirection (int level) { return isOdd (level) ? BidiType::rtl : BidiType::ltr; }
+
+struct Atom final : UnicodeAnalysisPoint
+{
+ auto getCharacter() const { return character; }
+ auto getType() const { return data.bidi; }
+ auto getLevel() const { return bidi.level; }
+
+ bool isIsolate() const { return isIsolateInitiator() || isIsolateTerminator(); }
+ bool isIsolateInitiator() const { return any (getType(), BidiType::lri, BidiType::rli, BidiType::fsi); }
+ bool isIsolateTerminator() const { return any (getType(), BidiType::pdi); }
+ bool isStrong() const { return any (getType(), BidiType::rtl, BidiType::ltr, BidiType::al); }
+ bool isNeutral() const { return any (getType(), BidiType::b, BidiType::s, BidiType::ws, BidiType::on); }
+ bool isWeak() const { return any (getType(), BidiType::en, BidiType::es, BidiType::et, BidiType::an,
+ BidiType::cs, BidiType::nsm, BidiType::bn); }
+ operator BidiType() const { return getType(); }
+
+ bool operator== (BidiType other) const { return getType() == other; }
+ bool operator== (Atom other) const { return getType() == other.getType(); }
+
+ void setType (BidiType newType) { data.bidi = newType; }
+ void setLevel (uint16_t newLevel) { bidi.level = newLevel; }
+
+ static Atom make (BidiType type)
+ {
+ Atom a{};
+ a.data.bidi = type;
+ return a;
+ }
+
+ static Atom none()
+ {
+ return make (BidiType::none);
+ }
+};
+
+struct RunIterator
+{
+ RunIterator (Span span) : data (span) {}
+
+ std::optional> next()
+ {
+ if (data.size() <= head)
+ return {};
+
+ const auto start = head;
+ const auto currentLevel = data[start].getLevel();
+
+ const auto iter = std::find_if_not (data.begin() + start, data.end(),
+ [currentLevel] (const Atom& atom)
+ {
+ return atom.getLevel() != currentLevel;
+ });
+
+ const auto end = iter != data.end() ? (size_t) std::distance (data.begin(), iter) : data.size();
+ head = end + 1;
+
+ return Range { (int) start, (int) end };
+ }
+
+private:
+ Span data;
+ size_t head = 0;
+};
+
+template
+struct FixedStack
+{
+ constexpr FixedStack() = default;
+
+ constexpr auto depth() const { return head; }
+ constexpr bool full() const { return head == Capacity; }
+ constexpr bool empty() const { return head == 0; }
+ constexpr void reset() { head = 0; }
+
+ void push (T val)
+ {
+ jassert (head < Capacity);
+ data[head++] = val;
+ }
+
+ T pop()
+ {
+ jassert (head > 0);
+ return data[--head];
+ }
+
+ constexpr T operator[] (int index) const { return data[index]; }
+
+ constexpr T& peek() { return data[head - 1]; }
+ constexpr auto begin() const { return data + 0; }
+ constexpr auto end() const { return data + head; }
+
+private:
+ T data[(size_t) Capacity] {};
+ int head {};
+
+ JUCE_DECLARE_NON_COPYABLE (FixedStack)
+ JUCE_DECLARE_NON_MOVEABLE (FixedStack)
+};
+
+static inline int resolveParagraphEmbeddingLevel (const Span buffer, Range range = {})
+{
+ range = range.isEmpty() ? Range {0, (int) buffer.size()} : range;
+
+ auto seek = [buffer] (BidiType type, Range seekRange) -> std::optional
+ {
+ for (int i = seekRange.getStart(); i < seekRange.getEnd(); i++)
+ {
+ if (buffer[(size_t) i].getType() == type)
+ return std::make_optional (i);
+ }
+
+ return {};
+ };
+
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ const auto& atom = buffer[(size_t) i];
+
+ if (atom.isStrong())
+ {
+ return atom == BidiType::ltr ? EmbeddingLevel::left : EmbeddingLevel::right;
+ }
+ else if (atom.isIsolateInitiator())
+ {
+ // skip to past matching PDI or EOS
+ const auto end = seek (BidiType::pdi, { i, range.getEnd() });
+ i = end.has_value() ? *end + 1 : range.getEnd();
+ }
+ }
+
+ return EmbeddingLevel::left;
+}
+
+static inline void resolveNeutralTypes (Span buffer, int embeddingLevel, Range range)
+{
+ range = range.isEmpty() ? Range {0, (int) buffer.size()} : range;
+
+ // BD13:
+ const auto bracketRanges = [buffer, range]
+ {
+ struct Bracket
+ {
+ int position;
+ uint32_t character;
+ BracketType type;
+ };
+
+ FixedStack stack;
+ std::vector> brackets;
+
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ const auto& curr = buffer[(size_t) i];
+
+ if (curr == BidiType::on)
+ {
+ const auto type = getBracketType (curr.getCharacter());
+
+ if (type == BracketType::open)
+ {
+ if (stack.full())
+ return brackets;
+
+ stack.push ({ i, curr.getCharacter(), BracketType::open });
+ }
+ else if (type == BracketType::close)
+ {
+ while (! stack.empty())
+ {
+ const auto head = stack.pop();
+
+ if (head.type == BracketType::open)
+ {
+ if (isMatchingBracketPair (head.character, curr.getCharacter()))
+ {
+ brackets.push_back ({ head.position, i });
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return brackets;
+ }();
+
+ // N0:
+ for (auto bracketRange : bracketRanges)
+ {
+ const auto dir = getEmbeddingDirection (embeddingLevel);
+ const auto span = Span { buffer.data() + bracketRange.getStart(), (size_t) bracketRange.getLength() };
+ const auto strong = std::find_if (span.begin(), span.end(), [] (const Atom& atom)
+ {
+ return atom.isStrong();
+ });
+
+ // TODO: refactor this
+ if (strong != span.end())
+ {
+ if (strong->getType() == dir)
+ {
+ // B:
+ buffer[(size_t) bracketRange.getStart()].setType (dir);
+ buffer[(size_t) bracketRange.getEnd()].setType (dir);
+ }
+ else
+ {
+ // C:
+ const auto strongContext = [&buf = std::as_const (buffer),
+ start = bracketRange.getStart(),
+ dir]
+ {
+ for (int i = start; i >= 0; i--)
+ {
+ if (buf[(size_t) i].isStrong())
+ return buf[(size_t) i].getType();
+ }
+
+ return dir;
+ }();
+
+ buffer[(size_t) bracketRange.getStart()].setType (strongContext);
+ buffer[(size_t) bracketRange.getEnd()].setType (strongContext);
+ }
+ }
+ }
+
+ // N1:
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ const auto curr = buffer[(size_t) i];
+ const auto prev = i > 0 ? buffer[(size_t) i - 1] : Atom::none(); // SOS type?
+
+ if (curr.isNeutral() || curr.isIsolate())
+ {
+ const auto endIndex = [buffer, start = i, end = range.getEnd()]
+ {
+ for (int j = start; j < end; j++)
+ {
+ const auto atom = buffer[(size_t) j];
+
+ if (! (atom.isNeutral() || atom.isIsolate()))
+ return j;
+ }
+
+ return end - 1;
+ }();
+
+ auto isNumber = [] (BidiType type) { return any (type, BidiType::an, BidiType::en); };
+ const auto start = isNumber (prev) ? BidiType::rtl : prev.getType();
+ const auto end = isNumber (buffer[(size_t) endIndex]) ? BidiType::rtl : buffer[(size_t) endIndex].getType();
+
+ const auto type = start == end ? start : getEmbeddingDirection (embeddingLevel);
+ std::for_each (buffer.begin() + i, buffer.begin() + endIndex, [type] (Atom& atom)
+ {
+ atom.setType (type);
+ });
+
+ i = endIndex;
+ }
+ }
+}
+
+static inline void resolveWeakTypes (Span buffer, Range range)
+{
+ range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range;
+
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ auto& curr = buffer[(size_t) i];
+ const auto prev = i > 0 ? buffer[(size_t) i - 1] : Atom::none();
+ const auto next = i < range.getEnd() - 1 ? buffer[(size_t) i + 1] : Atom::none();
+
+ // W1:
+ if (curr == BidiType::nsm)
+ curr.setType (prev.isIsolate() ? BidiType::on : prev.getType());
+
+ // W2:
+ else if (curr == BidiType::en)
+ {
+ for (int j = i - 1; j >= 1; j--)
+ {
+ if (buffer[(size_t) j] == BidiType::al)
+ curr.setType (BidiType::al);
+
+ if (buffer[(size_t) j].isStrong())
+ break;
+ }
+ }
+
+ // W3:
+ else if (curr == BidiType::al)
+ curr.setType (BidiType::rtl);
+
+ // W4:
+ else if (curr == BidiType::es || curr == BidiType::cs)
+ {
+ if (prev == BidiType::en && next == BidiType::en)
+ {
+ curr.setType (BidiType::en);
+ }
+ else if (curr == BidiType::cs)
+ {
+ if (prev == BidiType::an && next == BidiType::an)
+ curr.setType (BidiType::an);
+ }
+ }
+
+ // W5:
+ else if (curr == BidiType::et)
+ {
+ //jassertfalse;
+ if (prev == BidiType::en || next == BidiType::en)
+ curr.setType (BidiType::en);
+ }
+
+ // W6
+ if (any (curr.getType(), BidiType::es, BidiType::cs))
+ curr.setType (BidiType::on);
+
+ // W7:
+ else if (curr == BidiType::en)
+ {
+ for (int j = i - 1; j >= 1; j--)
+ {
+ if (buffer[(size_t) j] == BidiType::ltr)
+ curr.setType (BidiType::ltr);
+
+ if (buffer[(size_t) j].isStrong())
+ break;
+ }
+ }
+ }
+}
+
+static inline void resolveImplicitTypes (Span buffer, int embeddingLevel, Range range)
+{
+ range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range;
+
+ // I1, I2
+ // https://www.unicode.org/reports/tr9/#Resolving_Implicit_Levels
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ auto& curr = buffer[(size_t) i];
+
+ const auto level = (uint16_t) embeddingLevel;
+ const auto isEven = isOdd (level) == false;
+
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+ switch (curr.getType())
+ {
+ case BidiType::ltr: curr.setLevel (isEven ? level : level + 1); break;
+ case BidiType::rtl: curr.setLevel (isEven ? level + 1 : level ); break;
+ case BidiType::an: curr.setLevel (isEven ? level + 2 : level + 1); break;
+ case BidiType::en: curr.setLevel (isEven ? level + 2 : level + 1); break;
+
+ default: break;
+ }
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+ }
+}
+
+static inline void resolveExplicitLevels (Span buffer, int embeddingLevel)
+{
+ constexpr auto MAX_DEPTH = 126 - 1;
+
+ struct State
+ {
+ int embeddingLevel;
+ enum { Neutral, rtl, ltr } directionalOverride;
+ bool isolateStatus;
+ };
+
+ // X1
+ struct
+ {
+ int isolate = 0;
+ int embedded = 0;
+ } overflow {};
+
+ FixedStack stack;
+
+ stack.push ({ embeddingLevel, State::Neutral, false });
+
+ auto getHead = [&stack] { return &stack.peek(); };
+ auto save = [&stack] { stack.push (stack.peek()); };
+ auto restore = [&stack] { stack.pop(); };
+
+ auto isValid = [&] (auto value) { return (value < MAX_DEPTH) && (overflow.isolate == 0 && overflow.embedded == 0); };
+
+ // X2-X6a
+ for (size_t i = 0; i < buffer.size(); i++)
+ {
+ auto& atom = buffer[i];
+
+ // X2-X3: Explicit embeddings
+ if (atom == BidiType::rle || atom == BidiType::lre)
+ {
+ auto* state = getHead();
+ state->embeddingLevel = atom == BidiType::rle ? computeLeastOdd (state->embeddingLevel)
+ : computeLeastEven (state->embeddingLevel);
+
+ if (isValid (state->embeddingLevel))
+ {
+ state->directionalOverride = State::Neutral;
+ state->isolateStatus = false;
+ save();
+ }
+ else if (overflow.isolate == 0)
+ {
+ overflow.embedded++;
+ }
+ }
+
+ // X4-X5: Explicit Overrides
+ else if (atom == BidiType::rlo || atom == BidiType::lro)
+ {
+ auto* state = getHead();
+ state->embeddingLevel = atom == BidiType::rlo ? computeLeastOdd (state->embeddingLevel)
+ : computeLeastEven (state->embeddingLevel);
+
+ if (isValid (state->embeddingLevel))
+ {
+ state->directionalOverride = atom == BidiType::rlo ? State::rtl : State::ltr;
+ state->isolateStatus = false;
+ save();
+ }
+ else if (overflow.isolate == 0)
+ {
+ overflow.embedded++;
+ }
+ }
+
+ // X5a-X5b: Isolates
+ else if (atom == BidiType::rli || atom == BidiType::lri)
+ {
+ auto* state = getHead();
+ state->embeddingLevel = atom == BidiType::rli ? computeLeastOdd (state->embeddingLevel)
+ : computeLeastEven (state->embeddingLevel);
+
+ if (state->directionalOverride == State::ltr)
+ atom.setType (BidiType::ltr);
+ else if (state->directionalOverride == State::rtl)
+ atom.setType (BidiType::rtl);
+
+ if (isValid (state->embeddingLevel))
+ {
+ state->directionalOverride = State::Neutral;
+ state->isolateStatus = true;
+ save();
+ }
+ else
+ {
+ overflow.isolate++;
+ }
+ }
+
+ // X5c
+ else if (atom == BidiType::fsi)
+ {
+ //auto pEmbedLevel = resolveParagraphEmbeddingLevel(buffer, { i + 1, (int) buffer.size() });
+ jassertfalse;
+ }
+
+ // X6a: Terminating Isolates
+ else if (atom == BidiType::pdi)
+ {
+ if (overflow.isolate > 0)
+ {
+ overflow.isolate--;
+ }
+ else
+ {
+ overflow.embedded = 0;
+
+ while (! getHead()->isolateStatus)
+ restore();
+
+ restore();
+ }
+
+ atom.setLevel ((uint16_t) getHead()->embeddingLevel);
+ }
+
+ // X7
+ else if (atom == BidiType::pdf)
+ {
+ if (overflow.isolate > 0)
+ {
+ // Maybe???
+ overflow.isolate--;
+ }
+ else if (overflow.embedded > 0)
+ {
+ overflow.embedded--;
+ }
+ else if (getHead()->isolateStatus == false && stack.depth() >= 2)
+ {
+ restore();
+ }
+ }
+
+ // X8
+ else if (atom == BidiType::b)
+ {
+ atom.setLevel ((uint16_t) getHead()->embeddingLevel);
+
+ overflow.embedded = 0;
+ overflow.isolate = 0;
+ stack.reset();
+ stack.push ({ embeddingLevel, State::Neutral, false });
+ }
+
+ // X6: Everything else
+ // ! (B | BN | RLE | LRE | RLO | LRO | PDF | RLI | LRI | FSI | PDI)
+ else
+ {
+ auto* head = getHead();
+ atom.setLevel ((uint16_t) head->embeddingLevel);
+ }
+ }
+}
+
+static inline std::vector resolveReorderedIndices (const Span buffer, int embeddingLevel, Range range = {})
+{
+ range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range;
+
+ std::vector levels;
+ levels.resize ((size_t) range.getLength());
+
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ levels[(size_t) i] = buffer[(size_t) i].getLevel();
+
+ // L1:
+ for (int i = range.getStart(); i < range.getEnd(); i++)
+ {
+ auto curr = buffer[(size_t) i];
+
+ if (any (curr, BidiType::s, BidiType::b))
+ levels[(size_t) i] = embeddingLevel;
+
+ for (int j = i - 1; j >= 0; j--)
+ {
+ curr = buffer[(size_t) j];
+
+ if (! curr.isIsolate())
+ break;
+
+ levels[(size_t) j] = embeddingLevel;
+ }
+ }
+
+ // TODO: line breaks
+
+ // L2:
+ std::vector reordered;
+ reordered.resize ((size_t) range.getLength());
+ std::iota (reordered.begin(), reordered.end(), 0);
+ const auto high = *std::max_element (levels.begin(), levels.end());
+
+ for (int level = high; level > 0; level--)
+ {
+ for (int i = 0; i < range.getLength(); i++)
+ {
+ const auto indexLevel = levels[(size_t) i];
+
+ if (level > 0 && (indexLevel >= level))
+ {
+ // Find the longest consecutive run of the current level and above
+ // 1111 = 4
+ // 1001 = 1
+ // 1123 = 4
+ const auto start = i;
+ const auto end = [start, levels, level]
+ {
+ auto e = (size_t) start + 1;
+
+ while (e < levels.size() && levels[e] >= level)
+ e++;
+
+ return e;
+ }();
+
+ std::reverse (reordered.begin() + start, reordered.begin() + (int) end);
+ i = (int) end;
+ }
+ }
+ }
+
+ return reordered;
+}
+
+struct BidiOutput
+{
+ int embeddedingLevel = -1;
+ std::vector resolvedLevels;
+ std::vector visualOrder;
+};
+
+static BidiOutput analyseBidiRun (Span buffer, std::optional rtlOverride = std::nullopt)
+{
+ auto stream = Span {(Atom*) buffer.data(), buffer.size()};
+
+ // BD1
+ const auto baseLevel = rtlOverride.has_value() ? *rtlOverride ? 1 : 0
+ : resolveParagraphEmbeddingLevel (stream);
+
+ std::for_each (stream.begin(), stream.end(), [baseLevel] (Atom& atom)
+ {
+ atom.setLevel ((uint16_t) baseLevel);
+ });
+
+ resolveExplicitLevels (stream, baseLevel);
+
+ // X9 replace override characters
+ const auto pred = [] (auto atom) { return any (atom.getType(), BidiType::rle, BidiType::lre,
+ BidiType::lro, BidiType::rlo,
+ BidiType::pdf); };
+ std::replace_if (stream.begin(), stream.end(), pred, Atom::make (BidiType::bn));
+ //buffer.erase (remove_if (stream.begin(), stream.end(), pred), stream.end());
+
+ // W1-W7
+ resolveWeakTypes (stream, {});
+
+ // N0-N2
+ resolveNeutralTypes (stream, baseLevel, {});
+
+ // I1-I2
+ resolveImplicitTypes (stream, baseLevel, {});
+
+ BidiOutput output;
+
+ output.embeddedingLevel = baseLevel;
+
+ for (const auto& atom : stream)
+ output.resolvedLevels.push_back (atom.getLevel());
+
+ output.visualOrder = resolveReorderedIndices (stream, baseLevel, {});
+
+ return output;
+}
+
+} // namespace juce::tr9
diff --git a/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp b/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp
new file mode 100644
index 0000000000..5ce66de3de
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp
@@ -0,0 +1,451 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+enum class BracketType
+{
+ none,
+ open,
+ close
+};
+
+static inline BracketType getBracketType (uint32_t cp)
+{
+ #define OPEN(code) case code: return BracketType::open
+ #define CLOSE(code) case code: return BracketType::close
+
+ switch (cp)
+ {
+ OPEN(0x0028);
+ CLOSE(0x0029);
+ OPEN(0x005B);
+ CLOSE(0x005D);
+ OPEN(0x007B);
+ CLOSE(0x007D);
+ OPEN(0x0F3A);
+ CLOSE(0x0F3B);
+ OPEN(0x0F3C);
+ CLOSE(0x0F3D);
+ OPEN(0x169B);
+ CLOSE(0x169C);
+ OPEN(0x2045);
+ CLOSE(0x2046);
+ OPEN(0x207D);
+ CLOSE(0x207E);
+ OPEN(0x208D);
+ CLOSE(0x208E);
+ OPEN(0x2308);
+ CLOSE(0x2309);
+ OPEN(0x230A);
+ CLOSE(0x230B);
+ OPEN(0x2329);
+ CLOSE(0x232A);
+ OPEN(0x2768);
+ CLOSE(0x2769);
+ OPEN(0x276A);
+ CLOSE(0x276B);
+ OPEN(0x276C);
+ CLOSE(0x276D);
+ OPEN(0x276E);
+ CLOSE(0x276F);
+ OPEN(0x2770);
+ CLOSE(0x2771);
+ OPEN(0x2772);
+ CLOSE(0x2773);
+ OPEN(0x2774);
+ CLOSE(0x2775);
+ OPEN(0x27C5);
+ CLOSE(0x27C6);
+ OPEN(0x27E6);
+ CLOSE(0x27E7);
+ OPEN(0x27E8);
+ CLOSE(0x27E9);
+ OPEN(0x27EA);
+ CLOSE(0x27EB);
+ OPEN(0x27EC);
+ CLOSE(0x27ED);
+ OPEN(0x27EE);
+ CLOSE(0x27EF);
+ OPEN(0x2983);
+ CLOSE(0x2984);
+ OPEN(0x2985);
+ CLOSE(0x2986);
+ OPEN(0x2987);
+ CLOSE(0x2988);
+ OPEN(0x2989);
+ CLOSE(0x298A);
+ OPEN(0x298B);
+ CLOSE(0x298C);
+ OPEN(0x298D);
+ CLOSE(0x298E);
+ OPEN(0x298F);
+ CLOSE(0x2990);
+ OPEN(0x2991);
+ CLOSE(0x2992);
+ OPEN(0x2993);
+ CLOSE(0x2994);
+ OPEN(0x2995);
+ CLOSE(0x2996);
+ OPEN(0x2997);
+ CLOSE(0x2998);
+ OPEN(0x29D8);
+ CLOSE(0x29D9);
+ OPEN(0x29DA);
+ CLOSE(0x29DB);
+ OPEN(0x29FC);
+ CLOSE(0x29FD);
+ OPEN(0x2E22);
+ CLOSE(0x2E23);
+ OPEN(0x2E24);
+ CLOSE(0x2E25);
+ OPEN(0x2E26);
+ CLOSE(0x2E27);
+ OPEN(0x2E28);
+ CLOSE(0x2E29);
+ OPEN(0x2E55);
+ CLOSE(0x2E56);
+ OPEN(0x2E57);
+ CLOSE(0x2E58);
+ OPEN(0x2E59);
+ CLOSE(0x2E5A);
+ OPEN(0x2E5B);
+ CLOSE(0x2E5C);
+ OPEN(0x3008);
+ CLOSE(0x3009);
+ OPEN(0x300A);
+ CLOSE(0x300B);
+ OPEN(0x300C);
+ CLOSE(0x300D);
+ OPEN(0x300E);
+ CLOSE(0x300F);
+ OPEN(0x3010);
+ CLOSE(0x3011);
+ OPEN(0x3014);
+ CLOSE(0x3015);
+ OPEN(0x3016);
+ CLOSE(0x3017);
+ OPEN(0x3018);
+ CLOSE(0x3019);
+ OPEN(0x301A);
+ CLOSE(0x301B);
+ OPEN(0xFE59);
+ CLOSE(0xFE5A);
+ OPEN(0xFE5B);
+ CLOSE(0xFE5C);
+ OPEN(0xFE5D);
+ CLOSE(0xFE5E);
+ OPEN(0xFF08);
+ CLOSE(0xFF09);
+ OPEN(0xFF3B);
+ CLOSE(0xFF3D);
+ OPEN(0xFF5B);
+ CLOSE(0xFF5D);
+ OPEN(0xFF5F);
+ CLOSE(0xFF60);
+ OPEN(0xFF62);
+ CLOSE(0xFF63);
+ }
+
+ #undef OPEN
+ #undef CLOSE
+
+ return BracketType::none;
+}
+
+static inline auto isMatchingBracketPair (uint32_t b1, uint32_t b2)
+{
+ // TODO: remove duplicates
+ if (b1 == 0x0028 && b2 == 0x0029) return true;
+ if (b1 == 0x0029 && b2 == 0x0028) return true;
+ if (b1 == 0x0029 && b2 == 0x0028) return true;
+ if (b1 == 0x0028 && b2 == 0x0029) return true;
+ if (b1 == 0x005B && b2 == 0x005D) return true;
+ if (b1 == 0x005D && b2 == 0x005B) return true;
+ if (b1 == 0x005D && b2 == 0x005B) return true;
+ if (b1 == 0x005B && b2 == 0x005D) return true;
+ if (b1 == 0x007B && b2 == 0x007D) return true;
+ if (b1 == 0x007D && b2 == 0x007B) return true;
+ if (b1 == 0x007D && b2 == 0x007B) return true;
+ if (b1 == 0x007B && b2 == 0x007D) return true;
+ if (b1 == 0x0F3A && b2 == 0x0F3B) return true;
+ if (b1 == 0x0F3B && b2 == 0x0F3A) return true;
+ if (b1 == 0x0F3B && b2 == 0x0F3A) return true;
+ if (b1 == 0x0F3A && b2 == 0x0F3B) return true;
+ if (b1 == 0x0F3C && b2 == 0x0F3D) return true;
+ if (b1 == 0x0F3D && b2 == 0x0F3C) return true;
+ if (b1 == 0x0F3D && b2 == 0x0F3C) return true;
+ if (b1 == 0x0F3C && b2 == 0x0F3D) return true;
+ if (b1 == 0x169B && b2 == 0x169C) return true;
+ if (b1 == 0x169C && b2 == 0x169B) return true;
+ if (b1 == 0x169C && b2 == 0x169B) return true;
+ if (b1 == 0x169B && b2 == 0x169C) return true;
+ if (b1 == 0x2045 && b2 == 0x2046) return true;
+ if (b1 == 0x2046 && b2 == 0x2045) return true;
+ if (b1 == 0x2046 && b2 == 0x2045) return true;
+ if (b1 == 0x2045 && b2 == 0x2046) return true;
+ if (b1 == 0x207D && b2 == 0x207E) return true;
+ if (b1 == 0x207E && b2 == 0x207D) return true;
+ if (b1 == 0x207E && b2 == 0x207D) return true;
+ if (b1 == 0x207D && b2 == 0x207E) return true;
+ if (b1 == 0x208D && b2 == 0x208E) return true;
+ if (b1 == 0x208E && b2 == 0x208D) return true;
+ if (b1 == 0x208E && b2 == 0x208D) return true;
+ if (b1 == 0x208D && b2 == 0x208E) return true;
+ if (b1 == 0x2308 && b2 == 0x2309) return true;
+ if (b1 == 0x2309 && b2 == 0x2308) return true;
+ if (b1 == 0x2309 && b2 == 0x2308) return true;
+ if (b1 == 0x2308 && b2 == 0x2309) return true;
+ if (b1 == 0x230A && b2 == 0x230B) return true;
+ if (b1 == 0x230B && b2 == 0x230A) return true;
+ if (b1 == 0x230B && b2 == 0x230A) return true;
+ if (b1 == 0x230A && b2 == 0x230B) return true;
+ if (b1 == 0x2329 && b2 == 0x232A) return true;
+ if (b1 == 0x232A && b2 == 0x2329) return true;
+ if (b1 == 0x232A && b2 == 0x2329) return true;
+ if (b1 == 0x2329 && b2 == 0x232A) return true;
+ if (b1 == 0x2768 && b2 == 0x2769) return true;
+ if (b1 == 0x2769 && b2 == 0x2768) return true;
+ if (b1 == 0x2769 && b2 == 0x2768) return true;
+ if (b1 == 0x2768 && b2 == 0x2769) return true;
+ if (b1 == 0x276A && b2 == 0x276B) return true;
+ if (b1 == 0x276B && b2 == 0x276A) return true;
+ if (b1 == 0x276B && b2 == 0x276A) return true;
+ if (b1 == 0x276A && b2 == 0x276B) return true;
+ if (b1 == 0x276C && b2 == 0x276D) return true;
+ if (b1 == 0x276D && b2 == 0x276C) return true;
+ if (b1 == 0x276D && b2 == 0x276C) return true;
+ if (b1 == 0x276C && b2 == 0x276D) return true;
+ if (b1 == 0x276E && b2 == 0x276F) return true;
+ if (b1 == 0x276F && b2 == 0x276E) return true;
+ if (b1 == 0x276F && b2 == 0x276E) return true;
+ if (b1 == 0x276E && b2 == 0x276F) return true;
+ if (b1 == 0x2770 && b2 == 0x2771) return true;
+ if (b1 == 0x2771 && b2 == 0x2770) return true;
+ if (b1 == 0x2771 && b2 == 0x2770) return true;
+ if (b1 == 0x2770 && b2 == 0x2771) return true;
+ if (b1 == 0x2772 && b2 == 0x2773) return true;
+ if (b1 == 0x2773 && b2 == 0x2772) return true;
+ if (b1 == 0x2773 && b2 == 0x2772) return true;
+ if (b1 == 0x2772 && b2 == 0x2773) return true;
+ if (b1 == 0x2774 && b2 == 0x2775) return true;
+ if (b1 == 0x2775 && b2 == 0x2774) return true;
+ if (b1 == 0x2775 && b2 == 0x2774) return true;
+ if (b1 == 0x2774 && b2 == 0x2775) return true;
+ if (b1 == 0x27C5 && b2 == 0x27C6) return true;
+ if (b1 == 0x27C6 && b2 == 0x27C5) return true;
+ if (b1 == 0x27C6 && b2 == 0x27C5) return true;
+ if (b1 == 0x27C5 && b2 == 0x27C6) return true;
+ if (b1 == 0x27E6 && b2 == 0x27E7) return true;
+ if (b1 == 0x27E7 && b2 == 0x27E6) return true;
+ if (b1 == 0x27E7 && b2 == 0x27E6) return true;
+ if (b1 == 0x27E6 && b2 == 0x27E7) return true;
+ if (b1 == 0x27E8 && b2 == 0x27E9) return true;
+ if (b1 == 0x27E9 && b2 == 0x27E8) return true;
+ if (b1 == 0x27E9 && b2 == 0x27E8) return true;
+ if (b1 == 0x27E8 && b2 == 0x27E9) return true;
+ if (b1 == 0x27EA && b2 == 0x27EB) return true;
+ if (b1 == 0x27EB && b2 == 0x27EA) return true;
+ if (b1 == 0x27EB && b2 == 0x27EA) return true;
+ if (b1 == 0x27EA && b2 == 0x27EB) return true;
+ if (b1 == 0x27EC && b2 == 0x27ED) return true;
+ if (b1 == 0x27ED && b2 == 0x27EC) return true;
+ if (b1 == 0x27ED && b2 == 0x27EC) return true;
+ if (b1 == 0x27EC && b2 == 0x27ED) return true;
+ if (b1 == 0x27EE && b2 == 0x27EF) return true;
+ if (b1 == 0x27EF && b2 == 0x27EE) return true;
+ if (b1 == 0x27EF && b2 == 0x27EE) return true;
+ if (b1 == 0x27EE && b2 == 0x27EF) return true;
+ if (b1 == 0x2983 && b2 == 0x2984) return true;
+ if (b1 == 0x2984 && b2 == 0x2983) return true;
+ if (b1 == 0x2984 && b2 == 0x2983) return true;
+ if (b1 == 0x2983 && b2 == 0x2984) return true;
+ if (b1 == 0x2985 && b2 == 0x2986) return true;
+ if (b1 == 0x2986 && b2 == 0x2985) return true;
+ if (b1 == 0x2986 && b2 == 0x2985) return true;
+ if (b1 == 0x2985 && b2 == 0x2986) return true;
+ if (b1 == 0x2987 && b2 == 0x2988) return true;
+ if (b1 == 0x2988 && b2 == 0x2987) return true;
+ if (b1 == 0x2988 && b2 == 0x2987) return true;
+ if (b1 == 0x2987 && b2 == 0x2988) return true;
+ if (b1 == 0x2989 && b2 == 0x298A) return true;
+ if (b1 == 0x298A && b2 == 0x2989) return true;
+ if (b1 == 0x298A && b2 == 0x2989) return true;
+ if (b1 == 0x2989 && b2 == 0x298A) return true;
+ if (b1 == 0x298B && b2 == 0x298C) return true;
+ if (b1 == 0x298C && b2 == 0x298B) return true;
+ if (b1 == 0x298C && b2 == 0x298B) return true;
+ if (b1 == 0x298B && b2 == 0x298C) return true;
+ if (b1 == 0x298D && b2 == 0x2990) return true;
+ if (b1 == 0x2990 && b2 == 0x298D) return true;
+ if (b1 == 0x298E && b2 == 0x298F) return true;
+ if (b1 == 0x298F && b2 == 0x298E) return true;
+ if (b1 == 0x298F && b2 == 0x298E) return true;
+ if (b1 == 0x298E && b2 == 0x298F) return true;
+ if (b1 == 0x2990 && b2 == 0x298D) return true;
+ if (b1 == 0x298D && b2 == 0x2990) return true;
+ if (b1 == 0x2991 && b2 == 0x2992) return true;
+ if (b1 == 0x2992 && b2 == 0x2991) return true;
+ if (b1 == 0x2992 && b2 == 0x2991) return true;
+ if (b1 == 0x2991 && b2 == 0x2992) return true;
+ if (b1 == 0x2993 && b2 == 0x2994) return true;
+ if (b1 == 0x2994 && b2 == 0x2993) return true;
+ if (b1 == 0x2994 && b2 == 0x2993) return true;
+ if (b1 == 0x2993 && b2 == 0x2994) return true;
+ if (b1 == 0x2995 && b2 == 0x2996) return true;
+ if (b1 == 0x2996 && b2 == 0x2995) return true;
+ if (b1 == 0x2996 && b2 == 0x2995) return true;
+ if (b1 == 0x2995 && b2 == 0x2996) return true;
+ if (b1 == 0x2997 && b2 == 0x2998) return true;
+ if (b1 == 0x2998 && b2 == 0x2997) return true;
+ if (b1 == 0x2998 && b2 == 0x2997) return true;
+ if (b1 == 0x2997 && b2 == 0x2998) return true;
+ if (b1 == 0x29D8 && b2 == 0x29D9) return true;
+ if (b1 == 0x29D9 && b2 == 0x29D8) return true;
+ if (b1 == 0x29D9 && b2 == 0x29D8) return true;
+ if (b1 == 0x29D8 && b2 == 0x29D9) return true;
+ if (b1 == 0x29DA && b2 == 0x29DB) return true;
+ if (b1 == 0x29DB && b2 == 0x29DA) return true;
+ if (b1 == 0x29DB && b2 == 0x29DA) return true;
+ if (b1 == 0x29DA && b2 == 0x29DB) return true;
+ if (b1 == 0x29FC && b2 == 0x29FD) return true;
+ if (b1 == 0x29FD && b2 == 0x29FC) return true;
+ if (b1 == 0x29FD && b2 == 0x29FC) return true;
+ if (b1 == 0x29FC && b2 == 0x29FD) return true;
+ if (b1 == 0x2E22 && b2 == 0x2E23) return true;
+ if (b1 == 0x2E23 && b2 == 0x2E22) return true;
+ if (b1 == 0x2E23 && b2 == 0x2E22) return true;
+ if (b1 == 0x2E22 && b2 == 0x2E23) return true;
+ if (b1 == 0x2E24 && b2 == 0x2E25) return true;
+ if (b1 == 0x2E25 && b2 == 0x2E24) return true;
+ if (b1 == 0x2E25 && b2 == 0x2E24) return true;
+ if (b1 == 0x2E24 && b2 == 0x2E25) return true;
+ if (b1 == 0x2E26 && b2 == 0x2E27) return true;
+ if (b1 == 0x2E27 && b2 == 0x2E26) return true;
+ if (b1 == 0x2E27 && b2 == 0x2E26) return true;
+ if (b1 == 0x2E26 && b2 == 0x2E27) return true;
+ if (b1 == 0x2E28 && b2 == 0x2E29) return true;
+ if (b1 == 0x2E29 && b2 == 0x2E28) return true;
+ if (b1 == 0x2E29 && b2 == 0x2E28) return true;
+ if (b1 == 0x2E28 && b2 == 0x2E29) return true;
+ if (b1 == 0x2E55 && b2 == 0x2E56) return true;
+ if (b1 == 0x2E56 && b2 == 0x2E55) return true;
+ if (b1 == 0x2E56 && b2 == 0x2E55) return true;
+ if (b1 == 0x2E55 && b2 == 0x2E56) return true;
+ if (b1 == 0x2E57 && b2 == 0x2E58) return true;
+ if (b1 == 0x2E58 && b2 == 0x2E57) return true;
+ if (b1 == 0x2E58 && b2 == 0x2E57) return true;
+ if (b1 == 0x2E57 && b2 == 0x2E58) return true;
+ if (b1 == 0x2E59 && b2 == 0x2E5A) return true;
+ if (b1 == 0x2E5A && b2 == 0x2E59) return true;
+ if (b1 == 0x2E5A && b2 == 0x2E59) return true;
+ if (b1 == 0x2E59 && b2 == 0x2E5A) return true;
+ if (b1 == 0x2E5B && b2 == 0x2E5C) return true;
+ if (b1 == 0x2E5C && b2 == 0x2E5B) return true;
+ if (b1 == 0x2E5C && b2 == 0x2E5B) return true;
+ if (b1 == 0x2E5B && b2 == 0x2E5C) return true;
+ if (b1 == 0x3008 && b2 == 0x3009) return true;
+ if (b1 == 0x3009 && b2 == 0x3008) return true;
+ if (b1 == 0x3009 && b2 == 0x3008) return true;
+ if (b1 == 0x3008 && b2 == 0x3009) return true;
+ if (b1 == 0x300A && b2 == 0x300B) return true;
+ if (b1 == 0x300B && b2 == 0x300A) return true;
+ if (b1 == 0x300B && b2 == 0x300A) return true;
+ if (b1 == 0x300A && b2 == 0x300B) return true;
+ if (b1 == 0x300C && b2 == 0x300D) return true;
+ if (b1 == 0x300D && b2 == 0x300C) return true;
+ if (b1 == 0x300D && b2 == 0x300C) return true;
+ if (b1 == 0x300C && b2 == 0x300D) return true;
+ if (b1 == 0x300E && b2 == 0x300F) return true;
+ if (b1 == 0x300F && b2 == 0x300E) return true;
+ if (b1 == 0x300F && b2 == 0x300E) return true;
+ if (b1 == 0x300E && b2 == 0x300F) return true;
+ if (b1 == 0x3010 && b2 == 0x3011) return true;
+ if (b1 == 0x3011 && b2 == 0x3010) return true;
+ if (b1 == 0x3011 && b2 == 0x3010) return true;
+ if (b1 == 0x3010 && b2 == 0x3011) return true;
+ if (b1 == 0x3014 && b2 == 0x3015) return true;
+ if (b1 == 0x3015 && b2 == 0x3014) return true;
+ if (b1 == 0x3015 && b2 == 0x3014) return true;
+ if (b1 == 0x3014 && b2 == 0x3015) return true;
+ if (b1 == 0x3016 && b2 == 0x3017) return true;
+ if (b1 == 0x3017 && b2 == 0x3016) return true;
+ if (b1 == 0x3017 && b2 == 0x3016) return true;
+ if (b1 == 0x3016 && b2 == 0x3017) return true;
+ if (b1 == 0x3018 && b2 == 0x3019) return true;
+ if (b1 == 0x3019 && b2 == 0x3018) return true;
+ if (b1 == 0x3019 && b2 == 0x3018) return true;
+ if (b1 == 0x3018 && b2 == 0x3019) return true;
+ if (b1 == 0x301A && b2 == 0x301B) return true;
+ if (b1 == 0x301B && b2 == 0x301A) return true;
+ if (b1 == 0x301B && b2 == 0x301A) return true;
+ if (b1 == 0x301A && b2 == 0x301B) return true;
+ if (b1 == 0xFE59 && b2 == 0xFE5A) return true;
+ if (b1 == 0xFE5A && b2 == 0xFE59) return true;
+ if (b1 == 0xFE5A && b2 == 0xFE59) return true;
+ if (b1 == 0xFE59 && b2 == 0xFE5A) return true;
+ if (b1 == 0xFE5B && b2 == 0xFE5C) return true;
+ if (b1 == 0xFE5C && b2 == 0xFE5B) return true;
+ if (b1 == 0xFE5C && b2 == 0xFE5B) return true;
+ if (b1 == 0xFE5B && b2 == 0xFE5C) return true;
+ if (b1 == 0xFE5D && b2 == 0xFE5E) return true;
+ if (b1 == 0xFE5E && b2 == 0xFE5D) return true;
+ if (b1 == 0xFE5E && b2 == 0xFE5D) return true;
+ if (b1 == 0xFE5D && b2 == 0xFE5E) return true;
+ if (b1 == 0xFF08 && b2 == 0xFF09) return true;
+ if (b1 == 0xFF09 && b2 == 0xFF08) return true;
+ if (b1 == 0xFF09 && b2 == 0xFF08) return true;
+ if (b1 == 0xFF08 && b2 == 0xFF09) return true;
+ if (b1 == 0xFF3B && b2 == 0xFF3D) return true;
+ if (b1 == 0xFF3D && b2 == 0xFF3B) return true;
+ if (b1 == 0xFF3D && b2 == 0xFF3B) return true;
+ if (b1 == 0xFF3B && b2 == 0xFF3D) return true;
+ if (b1 == 0xFF5B && b2 == 0xFF5D) return true;
+ if (b1 == 0xFF5D && b2 == 0xFF5B) return true;
+ if (b1 == 0xFF5D && b2 == 0xFF5B) return true;
+ if (b1 == 0xFF5B && b2 == 0xFF5D) return true;
+ if (b1 == 0xFF5F && b2 == 0xFF60) return true;
+ if (b1 == 0xFF60 && b2 == 0xFF5F) return true;
+ if (b1 == 0xFF60 && b2 == 0xFF5F) return true;
+ if (b1 == 0xFF5F && b2 == 0xFF60) return true;
+ if (b1 == 0xFF62 && b2 == 0xFF63) return true;
+ if (b1 == 0xFF63 && b2 == 0xFF62) return true;
+ if (b1 == 0xFF63 && b2 == 0xFF62) return true;
+ if (b1 == 0xFF62 && b2 == 0xFF63) return true;
+
+ return false;
+}
+
+} // namespace juce
diff --git a/modules/juce_graphics/unicode/juce_UnicodeData.cpp b/modules/juce_graphics/unicode/juce_UnicodeData.cpp
new file mode 100644
index 0000000000..c8bf5c82a7
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeData.cpp
@@ -0,0 +1,782 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+#pragma pack(push, 8)
+struct UnicodeEntry
+{
+ LineBreakType bt;
+ EastAsianWidthType asian;
+ BidiType bidi;
+ UnicodeTextScript script;
+ VerticalTransformType vertical;
+ EmojiType emoji;
+};
+#pragma pack(pop)
+
+
+static const int uncompressedUnicodeDataSize = 6684666;
+static const uint8_t compressedUnicodeData[] =
+{
+ 0x78,0x9c,0xec,0xdd,0x09,0x9b,0x23,0xdb,0x79,0x10,0xe0,0x23,0x75,0xab,0xaf,0xc6,0x33,0xd5,0xf6,0xf8,0x66,0x12,0xc7,0xd7,
+ 0x63,0x4f,0xcf,0xcc,0x8d,0x93,0x21,0x09,0x4b,0x02,0x0e,0xc1,0x06,0x12,0xc2,0xbe,0xef,0xe0,0x6b,0x13,0x42,0x20,0x10,0x12,
+ 0x1c,0x02,0x18,0x12,0xc2,0x12,0x42,0x48,0xec,0x10,0xb6,0xb0,0xef,0xfc,0x54,0x4a,0x55,0x2d,0xf5,0x51,0x95,0xaa,0x54,0x9b,
+ 0xa4,0x23,0xf5,0xfb,0x3c,0x57,0xef,0xad,0xe7,0xd4,0xa9,0xaf,0xbe,0xfa,0xce,0xa9,0x52,0x95,0xd4,0xdd,0x33,0x0f,0x4f,0x42,
+ 0xb8,0x99,0xf7,0x34,0x0b,0x4f,0x73,0x17,0xe1,0x63,0xb9,0xb3,0x62,0x79,0x16,0x9e,0xe5,0x5e,0x15,0x2d,0x7d,0xa3,0x75,0xf3,
+ 0x63,0x35,0x57,0xfb,0x7d,0x6f,0xb6,0xda,0xef,0x8b,0x59,0x96,0xfb,0x61,0x61,0x98,0xdd,0x84,0x70,0xfd,0x76,0xe5,0xcd,0x9b,
+ 0xc2,0x10,0xad,0x7d,0x5d,0xf8,0xc9,0xfb,0x9e,0x59,0xd1,0x73,0x91,0x2f,0x7f,0x30,0x7b,0x2f,0xf7,0xdb,0xa3,0xe5,0xef,0x2a,
+ 0xbc,0x9b,0x5d,0xe5,0x7d,0x86,0x59,0xc6,0xf9,0xe0,0x61,0x5f,0x5b,0xbe,0xd8,0x6a,0xc9,0xcb,0x97,0xa8,0x65,0xc5,0xde,0x56,
+ 0xeb,0x56,0xf1,0xf4,0x79,0xb6,0xe7,0x9f,0x15,0x3e,0x8f,0x72,0xee,0x32,0xeb,0x6e,0x0e,0x38,0x9f,0xa7,0xf1,0x3a,0xac,0xe6,
+ 0xd8,0xeb,0x79,0xb6,0x99,0xed,0xe5,0xcc,0x7f,0x3b,0x7f,0x58,0x2e,0x8f,0xf7,0x69,0xde,0x67,0x56,0x98,0xb7,0x84,0x7c,0x79,
+ 0xf1,0x74,0xbe,0xaa,0xcf,0x87,0xe1,0xa1,0x26,0xd9,0x7c,0x15,0x33,0xac,0x7a,0x2e,0xca,0x96,0x37,0xf3,0x75,0xb4,0xd5,0xb6,
+ 0x57,0x45,0x9c,0x95,0xb7,0xf7,0x71,0xc2,0x7d,0xe4,0xaa,0x65,0xcf,0x87,0xf8,0x0f,0x7b,0x5f,0xfb,0x7a,0x1d,0xe1,0xd9,0x5e,
+ 0xe7,0x1d,0xfa,0x8c,0xde,0xb6,0xcc,0xaa,0x53,0xff,0x79,0x83,0x5d,0x72,0x68,0xda,0xaa,0x29,0x4e,0x97,0x3e,0xf5,0xfc,0x9b,
+ 0xe2,0x37,0xd5,0x64,0x4c,0x85,0xfb,0x8e,0x42,0xdf,0x7d,0x8d,0xcf,0xad,0x7d,0x8c,0x86,0x8d,0xf8,0xf8,0x6c,0xdb,0x67,0x51,
+ 0x7b,0xb6,0x7d,0xb7,0xea,0x52,0x87,0x43,0x8f,0xfe,0x98,0xfa,0x93,0x7d,0xe7,0xdb,0xe1,0x96,0xc9,0xf3,0xf2,0x98,0xef,0xef,
+ 0x64,0x58,0x3f,0x65,0x14,0x2d,0x9d,0x8d,0xb6,0x9a,0x67,0x95,0x96,0xf2,0xc9,0xe2,0x36,0xd4,0x9f,0x35,0xaa,0xed,0xdb,0x5b,
+ 0x35,0xc4,0x6f,0x70,0xd7,0xb3,0x4c,0x75,0x6d,0xb9,0x7c,0xdb,0xe9,0xf9,0x65,0xcf,0x1e,0x7f,0x7a,0xf6,0x60,0xad,0x62,0xfb,
+ 0xb3,0x1d,0xef,0x7c,0xbe,0x9c,0xf1,0x12,0xbd,0x3e,0x40,0xb4,0x2e,0x4e,0x7b,0x14,0xf9,0x99,0x70,0xbb,0xdb,0xfb,0x39,0x5c,
+ 0x69,0x7f,0x57,0x9c,0x3b,0xef,0xd6,0x57,0x95,0x9d,0xdb,0x7e,0xb0,0x3e,0xcb,0x2a,0xfd,0xb7,0xb7,0xcd,0xa2,0xbd,0x84,0xda,
+ 0x72,0x75,0x8f,0xf5,0xe5,0x2d,0xe7,0xc7,0xf0,0x7e,0xef,0xdd,0xb7,0x6a,0xac,0xed,0x69,0xf2,0xef,0xbd,0xaf,0xee,0xf9,0x1f,
+ 0xcb,0x9f,0x39,0x80,0x1d,0xf6,0x5b,0x3d,0x0b,0x7a,0xf9,0x51,0x51,0xcf,0x8f,0x36,0xcb,0xd3,0x3a,0xe7,0x49,0x3d,0xf4,0xf8,
+ 0x5e,0x9c,0xf3,0xb0,0x8c,0x9d,0x45,0x56,0xd6,0xa6,0x90,0x2d,0xc9,0xc3,0xb9,0xb9,0xa3,0xfb,0xea,0xa5,0x5b,0xb9,0x73,0x3e,
+ 0x79,0x3e,0x29,0xfb,0x41,0x61,0x16,0xb2,0x5a,0xdd,0xb2,0xaf,0xae,0x7d,0x1b,0x6e,0x8a,0xb5,0xb3,0xe2,0xbb,0xda,0xe5,0x57,
+ 0xb8,0x36,0x0b,0xb3,0xcd,0x72,0x88,0x96,0x9b,0x5a,0x5e,0x44,0x2d,0x65,0x3d,0xbb,0xfb,0xa9,0x62,0xdb,0x94,0xed,0x9b,0x79,
+ 0x88,0xec,0x5b,0x8d,0xba,0x21,0x5c,0x5f,0xb5,0x5a,0xce,0xea,0xab,0x07,0xe7,0xb9,0x6f,0x56,0x3f,0xea,0xb3,0x71,0xd5,0xf2,
+ 0x41,0xf1,0x73,0x08,0x1f,0x14,0xcb,0x71,0xff,0x7c,0xd4,0x46,0xfa,0x22,0xbf,0x79,0x5d,0x2d,0xcf,0xcb,0xe5,0xd8,0xb0,0xce,
+ 0xe7,0xac,0x1d,0x79,0x14,0x95,0x7b,0xd4,0x61,0x0e,0x1e,0x9d,0xbb,0x62,0x9e,0x0c,0xb3,0x9c,0x3f,0x71,0x4b,0xd3,0xd1,0x9d,
+ 0x7c,0x8c,0x78,0x61,0xbe,0xd8,0x9e,0x63,0x1d,0x8d,0xaf,0x87,0xdd,0xfa,0xef,0xde,0x4b,0x7b,0x84,0x78,0xab,0xbb,0x70,0x35,
+ 0xd8,0x8e,0xd5,0xf8,0xd7,0x53,0xfb,0x6e,0x7d,0x4d,0xdb,0xb4,0xe4,0xc7,0x35,0xf9,0x5e,0x8e,0x63,0x99,0x79,0xca,0x96,0xd5,
+ 0xae,0xd7,0x7c,0xe3,0xc9,0xcf,0xb5,0xc4,0xfd,0x77,0x97,0x6e,0x3e,0x4f,0x46,0x5a,0xc6,0x89,0x67,0xda,0x54,0xde,0x85,0xd9,
+ 0xbf,0x1d,0x6a,0xb8,0x08,0xf3,0x0a,0x0f,0x70,0x3b,0x4e,0xb6,0xf1,0x83,0xc2,0x17,0xf7,0x2d,0xab,0xb5,0xf1,0xdd,0x7e,0xb9,
+ 0xed,0xdb,0xa2,0xfd,0xed,0x3a,0xc2,0xbf,0x39,0xb5,0x79,0x56,0x3b,0x6d,0x5f,0xdb,0x6e,0xd3,0xb6,0x5d,0x62,0x6e,0x3f,0x1f,
+ 0x1d,0xea,0xa8,0x37,0xf1,0x7f,0x3d,0x3d,0xf3,0x3a,0x54,0xac,0xd4,0xe4,0xd7,0x1f,0x96,0xa7,0xb9,0x5b,0x68,0xf2,0xe4,0xef,
+ 0x0e,0x83,0x5d,0xe7,0xff,0xf0,0x34,0xdd,0xe5,0x7a,0xd8,0xf7,0xf9,0x2b,0x85,0x23,0x3d,0x95,0x63,0x9e,0x5b,0x0f,0x61,0xf9,
+ 0x74,0x90,0x42,0x26,0xbd,0xfc,0x89,0xaa,0xe1,0x27,0x56,0xc7,0xc2,0xb1,0xc6,0xf5,0x2c,0x97,0xd7,0xed,0x75,0xeb,0xa3,0xd0,
+ 0x6e,0x7b,0x9c,0x87,0x96,0x4d,0x26,0x4d,0x9f,0xfc,0x54,0x22,0x4f,0x71,0xbc,0x2b,0xb3,0xe2,0xf3,0xf0,0xd2,0xbb,0x62,0xed,
+ 0x30,0x8f,0x30,0x52,0xbf,0x56,0xe4,0x5c,0x18,0x36,0x6e,0xbe,0x07,0xf9,0xb5,0x3e,0x56,0xbe,0x43,0xd9,0xdb,0x7e,0x2a,0xfb,
+ 0x66,0x12,0xf7,0xdf,0xf5,0xb3,0x52,0xfb,0xab,0x51,0x56,0x78,0x5d,0xed,0xba,0xcb,0x9d,0x6e,0x47,0xa8,0x8e,0x4e,0xbd,0x3d,
+ 0xde,0x4b,0xd3,0x4f,0x76,0x35,0x59,0x8f,0xdc,0x3e,0x9a,0xf5,0xe3,0x6d,0xca,0xfc,0xae,0x58,0x3b,0xcc,0x38,0xfe,0x9b,0x70,
+ 0xb3,0xb1,0x7d,0xbc,0xde,0x44,0xcb,0x6f,0x6b,0xfd,0x77,0xd5,0x76,0xf9,0xcd,0x07,0xc3,0x37,0xa3,0x63,0xfc,0xe6,0x3e,0x5b,
+ 0x2a,0xb6,0xb3,0x4f,0x97,0x98,0x87,0xb6,0x6f,0x26,0x4d,0x47,0xd4,0xa5,0x25,0xae,0xf0,0x66,0xa6,0x7d,0xb3,0xea,0x43,0xfd,
+ 0x9b,0xe7,0xe7,0xee,0x3e,0xdb,0x63,0xb7,0x3b,0x42,0x7b,0xe4,0xf6,0xb1,0x6b,0x3a,0xc6,0xee,0xd1,0xee,0x8a,0xfe,0xc3,0x8c,
+ 0x8f,0xab,0x9e,0x4f,0xdc,0xde,0xf7,0x7c,0xaf,0xd4,0xe7,0x1b,0x0f,0x86,0x6f,0x44,0x47,0xfa,0x8d,0xfe,0x36,0x6d,0x3b,0x26,
+ 0xe6,0xb4,0xf6,0xcd,0xa4,0xde,0xbf,0x4b,0x84,0x7a,0x85,0xcb,0xf6,0xf9,0x0e,0x97,0x2d,0xb6,0x8f,0x51,0x3d,0x4e,0x65,0x26,
+ 0x7f,0x63,0xdc,0xdc,0xd8,0x7b,0xa6,0x44,0xc7,0x55,0xcd,0x79,0x33,0xff,0xbf,0x31,0xd4,0x32,0x72,0x7e,0x0d,0xef,0x75,0x14,
+ 0xf5,0x7c,0xf6,0xd6,0xf6,0x57,0x8b,0x1a,0x6e,0xdc,0xc4,0xf9,0xd5,0x3e,0x56,0x72,0xd8,0xdb,0x7e,0x2a,0xfb,0x66,0xd2,0x74,
+ 0x44,0xdd,0xab,0x51,0x56,0x38,0x44,0x15,0xde,0xae,0xf9,0x72,0xa7,0x95,0xfb,0x93,0xca,0xe8,0xd4,0xdb,0xeb,0x5b,0xed,0xbd,
+ 0xee,0x55,0x32,0x69,0x99,0x51,0x7b,0x8f,0xbd,0x29,0xf3,0xbb,0x62,0xed,0x30,0xc7,0xcc,0xc0,0x01,0xef,0x02,0x2f,0x8b,0x38,
+ 0x2f,0xa3,0x63,0x7c,0xb9,0xcf,0x9d,0xb5,0xda,0xd9,0x67,0x58,0x84,0xb8,0xa5,0x69,0x6d,0xfb,0xb6,0x5d,0x72,0x6b,0xef,0x33,
+ 0xcc,0xe6,0x3a,0xaf,0xd6,0xae,0x5d,0xbe,0xdc,0x6e,0xd9,0xd7,0xff,0xa1,0x4f,0xbd,0xbd,0x8c,0x56,0x3f,0x96,0x6e,0xa3,0xdf,
+ 0xb5,0x67,0x5f,0xef,0x8a,0xc8,0xc3,0xdc,0x55,0xdb,0x6c,0xaf,0xf9,0xfb,0xc5,0x66,0x79,0xef,0x9c,0xff,0x95,0xe2,0xd8,0x6b,
+ 0xae,0xda,0x43,0xb1,0xdc,0xdd,0x4d,0xcd,0x3b,0xb6,0x9f,0xca,0xe3,0xe4,0x53,0xaf,0x73,0x88,0x6a,0xbb,0x6d,0xbd,0xfe,0x0f,
+ 0x11,0xea,0xfd,0x9b,0xda,0xe3,0xb5,0x1d,0xaf,0x78,0x95,0xad,0xda,0x8f,0xa2,0xa9,0xa5,0x7e,0x5c,0x95,0xf9,0xff,0x2b,0x43,
+ 0xed,0x7e,0x2c,0xb7,0xf7,0x99,0x64,0x9d,0xbd,0xcf,0xfc,0x5f,0x15,0x39,0x17,0x86,0x8d,0xb7,0x85,0xa1,0xa7,0x9b,0x9a,0x74,
+ 0x6c,0x3f,0x95,0xe3,0xf3,0xe9,0x12,0xa1,0x32,0xd3,0x36,0xed,0xf3,0xce,0x6e,0xae,0xcc,0x1d,0xda,0x97,0x1b,0xfb,0xcc,0xff,
+ 0x6a,0xcc,0x76,0xdb,0x2b,0xd0,0x94,0xc3,0x5d,0xb1,0x76,0x98,0x4d,0xfb,0x9d,0xca,0x3c,0xdb,0x5f,0x7e,0x30,0x6c,0x0c,0x83,
+ 0xdc,0x64,0xdb,0xb1,0xfd,0x31,0x18,0x57,0x78,0xdd,0x52,0x77,0xb9,0xd3,0xcd,0x2c,0xad,0xf4,0x6f,0x6a,0x8f,0xf7,0x12,0x57,
+ 0x7e,0xe7,0x4c,0xae,0xe5,0x39,0xe5,0x91,0x56,0xe6,0xff,0x2f,0x0f,0x75,0x58,0x26,0x6f,0x7a,0xce,0xd8,0x3c,0xe7,0x2f,0x14,
+ 0x15,0xd8,0xb8,0xa9,0xd2,0x17,0x8e,0xe5,0xce,0x31,0x3a,0xda,0xde,0xbb,0x67,0x38,0x7e,0xdb,0x61,0xc7,0xb8,0xf3,0xda,0xb5,
+ 0xb3,0x7d,0x73,0x76,0x7c,0xa1,0xea,0xb2,0x62,0x3d,0xce,0xae,0xad,0xda,0xec,0x78,0xff,0xff,0x85,0xa1,0x36,0x1d,0x51,0x53,
+ 0x4d,0x86,0xf9,0xf9,0x10,0xfe,0x25,0xdb,0x5c,0x36,0xb4,0xec,0xb7,0xa9,0xe6,0x6f,0x57,0x83,0x38,0x20,0x87,0xae,0x86,0x62,
+ 0xab,0xbb,0x11,0x66,0x91,0xd3,0xde,0x75,0xa4,0x66,0x5e,0xe1,0x5f,0x5a,0x1b,0xb7,0xd4,0xd7,0xd6,0xed,0xd2,0xe7,0xf8,0xf6,
+ 0x3d,0x8a,0x7d,0x2e,0x1b,0x5a,0xfa,0xfa,0x90,0x4f,0xdf,0xda,0xae,0x97,0xf7,0xef,0xa5,0x72,0xed,0xfd,0xa5,0xa1,0x76,0xc9,
+ 0x33,0x85,0xd9,0x3b,0xc6,0xfc,0xf5,0x2f,0x8a,0xa7,0xdd,0x9d,0xd6,0xd7,0x5e,0xd7,0x5a,0xb2,0xa8,0xfd,0x45,0xab,0xd7,0x51,
+ 0xcc,0x17,0xd1,0x72,0x6c,0xfe,0x5e,0xbc,0xb1,0xbe,0xb6,0xee,0xdd,0x08,0xbb,0xc4,0x6f,0x32,0x8b,0xb2,0x0d,0x0d,0xcb,0xaf,
+ 0x43,0x96,0xfb,0xbc,0x30,0x5e,0x9e,0xdf,0xf7,0x19,0xb2,0xdf,0x78,0xd4,0x2e,0xcf,0xe6,0x7b,0xb9,0x87,0x59,0x31,0x95,0xf1,
+ 0x08,0x76,0xef,0xd3,0x9e,0xff,0xf8,0xac,0x0e,0x77,0xbc,0x29,0x58,0x1e,0x5d,0x16,0x9d,0x41,0x5d,0x66,0x45,0xf7,0xab,0x41,
+ 0xfd,0xec,0xa8,0x5f,0xa9,0x6e,0xb7,0xb7,0x0a,0xbb,0xbc,0x8e,0xae,0x57,0x29,0x5c,0xa5,0x0f,0x7a,0xe7,0xf3,0x63,0x7c,0x70,
+ 0xd9,0x60,0xfb,0xda,0xf6,0x9e,0x4d,0xf1,0x57,0x2d,0x77,0x23,0xcc,0x22,0x43,0x83,0xe3,0x2a,0xd0,0xbd,0x4a,0xa7,0x1d,0x97,
+ 0x69,0xf7,0xd2,0xb7,0x1a,0x6d,0x11,0xc6,0x8c,0x6f,0x97,0xf8,0xf9,0x28,0x7f,0xed,0xd2,0xdd,0x5c,0xd5,0xbf,0xb6,0xef,0x6a,
+ 0x56,0xef,0x93,0x42,0xfe,0x27,0xb7,0xa5,0x0e,0x9f,0x59,0x84,0x2f,0xcf,0xc8,0x81,0x7e,0x2e,0xf0,0x9c,0xfc,0x2c,0x19,0x99,
+ 0xbf,0x0b,0xbc,0x17,0x78,0x66,0x6e,0xee,0x6d,0x5a,0xd6,0xb6,0xf7,0x69,0x8f,0x79,0x88,0xf8,0x97,0xe4,0x63,0xab,0xcf,0x63,
+ 0x98,0x6f,0x97,0x34,0x5e,0xa9,0x99,0xc2,0xf8,0x72,0xcc,0xd8,0x6d,0x3e,0x97,0x7e,0x6f,0xdb,0xb2,0x4f,0x96,0x40,0x9e,0x7d,
+ 0x8f,0xe5,0x58,0xf3,0x2d,0x1b,0x6c,0xc7,0xef,0xef,0x7e,0x94,0x8f,0xdb,0xbe,0xf3,0x21,0xee,0x9f,0x85,0xec,0xc3,0xa2,0xfd,
+ 0xc3,0x19,0x49,0x92,0x24,0x49,0x92,0x17,0x6b,0x16,0x9e,0xfd,0x62,0xf1,0xfc,0x9b,0xac,0xaf,0x43,0xf6,0x8b,0xc5,0x4f,0x0e,
+ 0xff,0x62,0xc3,0xe7,0x3f,0xff,0x9c,0xe7,0x6c,0xfc,0x97,0x12,0xb3,0x89,0xc6,0xb4,0xd7,0xcf,0xff,0xff,0xb3,0x63,0x39,0x0f,
+ 0xcb,0x9a,0xab,0xf6,0xc1,0xbf,0xb9,0x50,0x46,0xfe,0xa7,0xc7,0x32,0xcf,0x39,0x72,0xd5,0x12,0x8f,0xda,0xe0,0xa3,0xf8,0x27,
+ 0xc7,0x32,0xcf,0x7c,0xe3,0x54,0x3f,0x3f,0x9c,0xbf,0x7e,0x61,0x3a,0x9b,0x62,0x6e,0xbe,0x7d,0xf8,0x85,0xb5,0x13,0xfe,0xfc,
+ 0xf3,0xcf,0x71,0x88,0xcb,0xc8,0x7a,0x4b,0xbb,0xc3,0xf6,0xd5,0xb4,0xf7,0x21,0x66,0x45,0x9c,0xd2,0x57,0x51,0xe4,0xb2,0x25,
+ 0x44,0xcb,0x6f,0xc3,0x4d,0x65,0xbf,0xf1,0xfc,0xb9,0x2b,0xda,0x87,0xd9,0xed,0xfc,0xca,0x7e,0x6e,0xa8,0x1d,0xe3,0x7f,0xef,
+ 0xda,0x17,0xc5,0xbf,0x70,0x5d,0x9a,0x15,0x2d,0x59,0xf9,0x2f,0xdd,0x6f,0xf7,0xd9,0x58,0xb6,0xe4,0xe7,0x63,0xc5,0xeb,0xf0,
+ 0x64,0xb3,0x9c,0x1f,0xe9,0x60,0x3b,0x5e,0x7f,0xbe,0x97,0xdc,0xb6,0xd7,0xfb,0x57,0x4b,0x9c,0x78,0x56,0xa7,0x70,0x5c,0x53,
+ 0x19,0x1f,0xd1,0xde,0xfa,0x9c,0xfc,0x19,0x8d,0xed,0xae,0x46,0x6a,0xa8,0x39,0x3f,0x1f,0xce,0xd2,0xcd,0x3d,0xe1,0xcf,0x57,
+ 0x0d,0x0d,0xb6,0xf5,0x69,0x9a,0xff,0xbb,0x22,0x34,0xc5,0x6f,0xda,0xd7,0xb2,0x25,0x7e,0xfe,0x1e,0xba,0x73,0xed,0x8b,0xa2,
+ 0xbd,0xf4,0xae,0x88,0x39,0xcc,0xfc,0xbe,0xe5,0x1f,0x9f,0x9b,0x95,0xfb,0xf3,0x8e,0x3d,0x07,0xdf,0xff,0xff,0x06,0xcf,0xb3,
+ 0x3e,0x5d,0xc6,0xf7,0xae,0xe8,0x39,0xcc,0xa6,0xbd,0x7c,0x3e,0x64,0xbf,0xb1,0x76,0xcc,0xfd,0x79,0x1a,0x86,0x7f,0x94,0x86,
+ 0xf9,0x75,0x32,0x32,0x44,0xae,0x5a,0x2a,0xf7,0x24,0x9b,0xad,0xf2,0x31,0xfa,0x87,0x1c,0xeb,0xb2,0xb6,0xbc,0xdf,0xf5,0xb9,
+ 0x50,0xdf,0xb6,0x1e,0xb9,0xbb,0xdd,0xb3,0x1d,0xe2,0xf6,0x3b,0xfb,0xaa,0xe5,0xae,0x88,0x39,0xcc,0x8e,0xd7,0x9f,0x83,0xc6,
+ 0x3f,0xc4,0x7c,0xa8,0x54,0x69,0x76,0x9e,0x4e,0xf5,0x09,0xe1,0x65,0x9b,0xd7,0xea,0xeb,0xbb,0x0d,0x5f,0x2f,0xae,0xb1,0xdc,
+ 0x69,0x5c,0xa5,0xe6,0x1a,0xd6,0xfb,0x84,0x56,0xab,0x7d,0xfa,0x66,0xb5,0xf3,0xfa,0xf3,0xf5,0xa1,0x66,0x91,0xa1,0xd6,0x52,
+ 0x5f,0x3b,0xae,0x92,0xfd,0x1c,0xb6,0xaf,0x38,0xe7,0xcd,0xfc,0xff,0xd9,0x07,0xc3,0xcf,0x16,0x3d,0xcf,0xce,0xf9,0xbd,0xcb,
+ 0x06,0x9b,0xfa,0xec,0xde,0x2a,0x8e,0x7c,0x37,0xc2,0x8e,0xf9,0xff,0x83,0x4b,0x37,0xaf,0x6a,0x61,0xbc,0x1c,0xb7,0x84,0xda,
+ 0xda,0x7a,0xcf,0x6a,0xff,0xbe,0xd7,0xf9,0x96,0x0c,0xff,0xfe,0x25,0x3a,0xef,0xed,0xb2,0xa7,0xbb,0xb7,0xad,0x57,0x3e,0x2b,
+ 0xfa,0x34,0x79,0x37,0xc2,0x9d,0xa3,0x5c,0xa9,0x43,0xde,0xf3,0xef,0x0d,0x35,0x5c,0xa8,0x59,0x64,0xde,0xf2,0x51,0x7f,0x7b,
+ 0x9d,0x77,0x5f,0x7b,0xdc,0xee,0xad,0x46,0xaf,0x77,0xba,0x01,0xf7,0xb7,0x95,0xe7,0x82,0xd0,0xd0,0x3e,0xce,0x7e,0x31,0xc3,
+ 0xba,0x1a,0x15,0xdb,0xd7,0xb6,0xf7,0xac,0xe7,0x10,0x3a,0xd4,0x27,0x7f,0x3d,0x7b,0x04,0xde,0xb6,0xfa,0x51,0x02,0x19,0x9e,
+ 0x8b,0xed,0x95,0x9c,0x76,0xab,0x61,0x1a,0xcd,0x73,0xf1,0xf6,0xb8,0x9f,0x08,0x71,0xe7,0x3b,0x51,0x0a,0x33,0x81,0x24,0x79,
+ 0x7c,0xdb,0xef,0xcd,0x8e,0x60,0xe5,0x79,0x64,0xf2,0xfe,0xe7,0xee,0x31,0xeb,0x13,0x6f,0xd5,0x65,0xf9,0x1c,0x7d,0x6c,0xf3,
+ 0xe7,0xd0,0x95,0xec,0xb3,0x55,0x56,0x5b,0xce,0x6a,0xed,0xe3,0xe3,0xb7,0xc5,0x1c,0x36,0x07,0xd6,0x3d,0xbb,0xc6,0x1f,0x6a,
+ 0x35,0x7e,0x7b,0x9e,0x7d,0xeb,0x73,0x5b,0x8b,0x9c,0xe5,0x6f,0x02,0xdd,0xbc,0x6e,0x68,0x7f,0x12,0x9e,0x14,0x9f,0x3b,0x3d,
+ 0xc9,0x9f,0x26,0x3e,0xb6,0xf2,0x7a,0xfd,0x49,0xd4,0x6c,0xd5,0x67,0x9e,0x15,0xdb,0xde,0xff,0x4e,0xc1,0xa6,0xe5,0x59,0xe1,
+ 0xd3,0x8d,0xab,0x9f,0x44,0x5d,0x2d,0x7f,0x38,0x7f,0xf0,0x75,0xd9,0xd2,0xda,0x5e,0x6e,0x7b,0x1f,0xa1,0x58,0x5b,0xc6,0xf9,
+ 0xf4,0xbc,0x6a,0xb9,0xdf,0x59,0x91,0xf3,0x2c,0x7c,0xac,0xc8,0xf0,0xb6,0xf0,0x13,0x85,0x9f,0x2c,0xfc,0x78,0xe1,0xf3,0x22,
+ 0xe7,0xf7,0x72,0xdf,0xcc,0x6f,0xf2,0xc8,0x6f,0x42,0x61,0xbe,0x1c,0xd6,0x86,0x72,0x39,0x2b,0x96,0x1f,0x0c,0x71,0xce,0x51,
+ 0x86,0xaf,0xf2,0xe5,0xd9,0xe2,0x55,0xd9,0x27,0xca,0xb3,0xea,0xba,0x0e,0x1f,0x14,0x7b,0x2f,0x8f,0xf4,0x79,0x61,0x11,0x21,
+ 0x76,0xb1,0x3b,0xc2,0xbe,0xc8,0x75,0xb3,0xda,0x72,0xdd,0x5d,0x6b,0x57,0x95,0x5c,0x16,0xa3,0x1f,0x1a,0x7c,0x97,0x3b,0xcb,
+ 0xeb,0xf9,0x7e,0x51,0xd5,0x6f,0x29,0x7c,0x51,0xf8,0xad,0xe5,0x9c,0xd9,0x6b,0x08,0x57,0x9b,0x4f,0x29,0xe3,0x73,0xe1,0xe9,
+ 0xfc,0x2a,0x5a,0xdb,0xe4,0x22,0xf2,0x61,0xe6,0x3c,0xbf,0x1f,0x97,0xf2,0xfe,0xe7,0x6a,0x13,0xad,0xee,0x98,0xf8,0x87,0xf8,
+ 0x7c,0xb5,0xfe,0xf9,0x6d,0xf9,0xaf,0xc8,0x75,0xf1,0x4d,0xdc,0x72,0x5d,0xeb,0x33,0xef,0x1a,0x67,0x4f,0xe4,0x0e,0x6b,0xdf,
+ 0x74,0xde,0x76,0xbc,0xd3,0x7f,0x66,0x32,0x6b,0x70,0x6b,0xed,0x75,0xb5,0x7d,0x9c,0x87,0xfb,0xf9,0x9f,0x87,0x2b,0x43,0xf1,
+ 0xbb,0x00,0xa1,0xbc,0xa6,0xad,0x5b,0x9e,0xce,0xb7,0xd7,0xae,0x97,0xd7,0x7d,0xee,0x67,0x78,0xa3,0xbb,0xfa,0xe4,0xe7,0x5d,
+ 0x65,0x8f,0x6f,0xb7,0xf6,0x92,0xed,0x89,0x59,0xcd,0xf9,0x21,0xcf,0xc2,0x45,0x1c,0xf9,0x7e,0x79,0x7e,0xff,0xde,0x5a,0x6d,
+ 0x2f,0xce,0xa9,0xf5,0x75,0x20,0x8e,0x7f,0xd3,0x74,0x74,0xb5,0x9e,0x21,0xaa,0x4c,0xc5,0x45,0xb5,0xb6,0xbb,0x6d,0xbf,0x6e,
+ 0xb7,0xc4,0xbf,0xa9,0x5e,0xd5,0xa3,0x7d,0x3d,0x0b,0xb5,0x3e,0x1b,0xa3,0x77,0xcc,0xa7,0xf5,0xb5,0x0d,0xb5,0x0d,0xf3,0xea,
+ 0xb6,0xeb,0xb5,0xe1,0xd9,0x14,0xae,0x72,0xde,0xe5,0x21,0x62,0x8e,0x37,0xbe,0x63,0x09,0x9b,0xab,0xfd,0xae,0xdf,0xaf,0x79,
+ 0x5a,0xb9,0xcf,0xd9,0x72,0xd1,0x6e,0xbf,0xf7,0xf7,0xde,0x2e,0x22,0xa7,0x8b,0x3c,0xdf,0x77,0x87,0x73,0x3a,0x9f,0xce,0x77,
+ 0x2f,0x1f,0xc9,0x33,0xa9,0x49,0x53,0x65,0x9a,0xd6,0xb6,0xf7,0x8f,0x97,0xdf,0x16,0x77,0x4a,0xe5,0xfb,0x72,0x97,0x51,0x68,
+ 0xda,0xd7,0xc3,0xd5,0x7e,0x5f,0x3e,0x4d,0x47,0xd7,0x64,0xf7,0xb9,0x11,0x3f,0x77,0xb4,0xd7,0xad,0x4b,0x6d,0x87,0x8d,0x57,
+ 0x97,0xf6,0xbe,0x7d,0x86,0xe5,0xd3,0x36,0x52,0xdd,0xfa,0x1c,0xa2,0x56,0x87,0x38,0x96,0xc3,0x9d,0x7d,0x87,0x18,0xa9,0x13,
+ 0x5c,0xe5,0x2e,0x22,0xb7,0x14,0xfc,0xf4,0xd1,0xf6,0xb5,0xef,0x0e,0x30,0x36,0x7e,0xc2,0x8d,0x97,0xbb,0x6c,0xbb,0xfd,0x34,
+ 0xb1,0xdf,0x97,0x8b,0xd5,0xfd,0x7c,0x69,0x5b,0xcf,0xde,0xc7,0xb5,0x78,0x9d,0xc7,0x9c,0xdf,0x3c,0x2f,0xdc,0x1f,0x67,0xbf,
+ 0xfb,0x9e,0x83,0x78,0x4a,0x87,0xcf,0xf6,0xa6,0xf9,0x33,0x51,0x9c,0x22,0xc3,0x2e,0x3d,0x4f,0x7d,0x2d,0x3a,0xed,0x35,0x67,
+ 0x88,0x21,0x1a,0xa9,0xa9,0xf6,0x38,0xe1,0x71,0x95,0xd7,0xb4,0xba,0xa1,0xea,0xfd,0x35,0x30,0x44,0xee,0xbd,0x1e,0xee,0x88,
+ 0x73,0x94,0x9a,0xa7,0xe3,0xae,0xb1,0x68,0x7a,0x42,0x3f,0xad,0xe3,0x8f,0xf7,0xb4,0xf9,0x57,0x9f,0x83,0x2e,0xdf,0xab,0x13,
+ 0x19,0x1e,0x87,0x8b,0x04,0x72,0x38,0x96,0xe1,0x94,0x33,0xf9,0xe1,0xb3,0xdc,0x6e,0x9f,0x8d,0x30,0x65,0x9b,0xee,0x49,0x52,
+ 0xc8,0xed,0x20,0x4e,0x74,0x2f,0x7a,0xcc,0x71,0xe9,0x3b,0x76,0x5d,0xf3,0xdf,0x9c,0xd1,0x3d,0xaf,0x27,0x7d,0xef,0x12,0xeb,
+ 0xfb,0x8a,0xda,0x17,0xf5,0xf6,0x43,0x6c,0xdb,0x10,0x61,0x4f,0xff,0xf6,0xf8,0x53,0x39,0xed,0x7e,0x27,0xcd,0x79,0x3d,0xca,
+ 0xd5,0x67,0x8d,0x9b,0xad,0x27,0x8b,0xc8,0xb2,0x7f,0x6d,0x74,0xb6,0xda,0x6b,0xf3,0xa7,0xbe,0x55,0x53,0x9f,0xad,0xcf,0x76,
+ 0x9e,0x86,0x07,0xe3,0xbd,0xaf,0x96,0xc3,0xda,0xd5,0x99,0xb2,0x78,0x3f,0x5a,0x2e,0xdb,0x9b,0x72,0x38,0xad,0x4d,0xf5,0x6c,
+ 0xaa,0x55,0x97,0xaa,0xee,0x18,0xc1,0x31,0x4e,0x74,0xa4,0xf5,0xb1,0x8e,0x5b,0xea,0xed,0x2f,0x5b,0xd7,0xf6,0xae,0xc6,0x98,
+ 0x31,0xea,0x57,0x87,0x29,0xce,0xbe,0x78,0x04,0x27,0xad,0xf9,0xc0,0x98,0x5b,0xf3,0x21,0x1c,0xe3,0xbc,0x88,0xce,0xfa,0x72,
+ 0x26,0x34,0x5d,0x7f,0x76,0xf4,0x6c,0x98,0x3f,0xb1,0xe5,0xda,0xd0,0xba,0xd5,0x7d,0xcb,0xa2,0x2d,0x42,0x7d,0x2f,0x4d,0x2d,
+ 0xb1,0x5d,0xe6,0xed,0x56,0x84,0x86,0x1c,0x1a,0xb3,0xaa,0xd7,0x64,0xb1,0x3b,0x9f,0xf7,0x1b,0xe2,0xef,0xa8,0x67,0x53,0xfd,
+ 0xab,0xf3,0xea,0x7e,0x3e,0xc7,0x6b,0xdf,0x5f,0x44,0x86,0x07,0x3b,0x9f,0x4d,0x4d,0xcb,0x5d,0xce,0xa6,0xee,0xed,0xdb,0xee,
+ 0xff,0xf4,0xac,0xef,0x19,0xdd,0x67,0xdb,0x7e,0xef,0xe9,0xf5,0xf8,0xcd,0x7b,0x8c,0x8f,0xab,0xfd,0x18,0x77,0xbf,0x17,0xdc,
+ 0x3c,0x6d,0xd8,0xea,0xc3,0x0e,0x96,0x3d,0x5f,0x3c,0xd8,0xf8,0xae,0xd7,0xf4,0xfd,0xd1,0x98,0xe5,0xee,0x77,0xbc,0x3b,0x0c,
+ 0xa7,0x31,0x14,0x99,0xaf,0xea,0x1f,0x16,0x5b,0x86,0xc1,0xcf,0x02,0x63,0xb6,0x6d,0x76,0x6c,0x56,0xa3,0x22,0x57,0xbf,0x61,
+ 0x3c,0x4f,0x5f,0xcf,0x8a,0xa3,0x98,0x75,0x5e,0x3e,0xea,0x51,0x87,0xbf,0x4b,0x92,0x7c,0x8c,0x9e,0xfe,0xfd,0xf1,0x6c,0x5d,
+ 0x44,0xa6,0x90,0x0f,0x27,0x70,0xeb,0x29,0xa3,0xe1,0xae,0xec,0xd0,0xcb,0x29,0xd4,0xe1,0x71,0x7a,0xa9,0x23,0x72,0x49,0xc7,
+ 0x42,0x92,0x3c,0x8a,0x8b,0x9a,0x23,0xa2,0x0d,0xf8,0xbc,0xbd,0xf6,0x49,0xf5,0xb1,0x4d,0x62,0x14,0x86,0xda,0x5a,0xb7,0xa7,
+ 0x0f,0xdf,0x10,0x35,0xfc,0xdc,0xc2,0xc9,0xf3,0x6f,0xb0,0xfa,0x3b,0xec,0xe7,0x6c,0xf5,0x37,0xf1,0x4f,0x9d,0xcf,0x58,0x8f,
+ 0x7f,0x86,0xf6,0x3d,0x97,0x53,0xc8,0xa4,0xfb,0x75,0xe6,0xb0,0xfb,0x0d,0x4f,0x03,0x39,0xdc,0x14,0xfe,0x86,0xe1,0x18,0x7f,
+ 0x86,0x3c,0x94,0x59,0x07,0x77,0x6f,0x3b,0x0f,0xcb,0x8a,0xf1,0xda,0xf6,0xbf,0xea,0xf3,0xa2,0x88,0x9c,0xd5,0x2c,0xf7,0xf8,
+ 0x62,0xab,0xe5,0xf4,0xff,0x42,0xc4,0xa1,0x8d,0xff,0xed,0x89,0x2e,0xff,0x5a,0x47,0xa5,0xe5,0xef,0x70,0x3a,0xfb,0xfc,0x65,
+ 0xaa,0x55,0xff,0xac,0xe7,0x56,0xdd,0xcd,0xcf,0xa9,0x32,0xab,0xf7,0xd2,0x70,0xe8,0xdf,0xef,0xea,0x17,0x5f,0xff,0x69,0xfb,
+ 0xe7,0xb3,0xe8,0xa3,0x73,0x36,0xfe,0x4b,0x95,0x53,0xd9,0xf4,0x37,0x24,0xbb,0xfc,0x6d,0xc9,0xd7,0xb5,0xf6,0x50,0x8b,0xdf,
+ 0xd4,0xde,0xf7,0x5b,0xb6,0xa6,0x7c,0x5e,0xd4,0xb2,0x6a,0xfa,0x1b,0x98,0xed,0xcf,0xc2,0xcf,0x22,0xbb,0xfc,0x45,0xcd,0xd7,
+ 0xad,0x59,0x75,0xa9,0xde,0xee,0x0c,0xb7,0x9f,0x31,0x5f,0x44,0x0e,0xab,0xd8,0xe1,0xfe,0x1a,0xe1,0xf1,0x7d,0xb9,0xc8,0xe6,
+ 0xb3,0x44,0x2d,0x7f,0xc3,0x3a,0x85,0x4c,0x98,0x9a,0x53,0xfd,0xfe,0x7e,0x0a,0xc7,0x42,0x92,0xa7,0xf2,0xb4,0x7f,0x41,0x65,
+ 0xef,0xf5,0x79,0x12,0x9b,0xe2,0x67,0x57,0xcf,0x72,0x57,0x7f,0x09,0xed,0xea,0xde,0x78,0xab,0x57,0x8b,0x50,0x54,0xa9,0xcc,
+ 0x64,0xb5,0x1c,0xff,0xe5,0xb4,0xbe,0xcb,0x71,0xe4,0xbe,0xdb,0xbe,0xaa,0xb5,0x6c,0xc7,0xbc,0xcf,0xb3,0x97,0xf3,0x45,0xf1,
+ 0x37,0xba,0x77,0x18,0xbe,0xbc,0x76,0x15,0x7f,0xbe,0xd8,0x54,0xa0,0xe2,0x7c,0x51,0x1f,0xa3,0xea,0x5e,0x5e,0xad,0x5d,0xf7,
+ 0x59,0xdc,0xf7,0x0c,0x0f,0xe3,0xf2,0x89,0x45,0xb8,0x5e,0x55,0x3e,0x5c,0xf7,0x5f,0x4e,0xcd,0x94,0x73,0xeb,0x9b,0xff,0xb0,
+ 0x9a,0xf7,0xed,0x59,0x1a,0x9f,0x95,0xf1,0x6c,0x7c,0x55,0x9c,0x95,0x6b,0x57,0x5b,0xbd,0x8a,0x22,0x94,0xe7,0x45,0x1e,0xe1,
+ 0x79,0xb1,0xc7,0xe7,0xb3,0xde,0xcb,0xa9,0x99,0x72,0x6e,0x7d,0xf3,0x1f,0x56,0xf3,0xbe,0x3d,0xdb,0xfb,0xbf,0x2a,0xae,0x36,
+ 0x79,0x9f,0xe2,0x2a,0x5a,0xb6,0x3c,0xac,0xdd,0xf7,0xee,0x13,0x7e,0xfa,0x92,0xbc,0xea,0xbd,0xd5,0xa6,0x0e,0x5f,0x26,0xfb,
+ 0xb8,0x99,0x39,0x87,0x36,0x89,0x33,0x6b,0xb8,0xd3,0xdc,0xdf,0xa6,0xe6,0x54,0xf7,0xff,0xf1,0x15,0xfe,0x10,0xa6,0x70,0xa6,
+ 0xf4,0x31,0xdb,0x78,0xb4,0xf3,0x2b,0x29,0xfb,0xfe,0x8d,0xc1,0xc3,0xcf,0xf6,0x14,0x66,0x45,0xbf,0x99,0xb3,0xf6,0xf4,0xa3,
+ 0x59,0x73,0xd1,0xb0,0x7c,0x72,0x0f,0x38,0x7f,0x0e,0x9c,0xe1,0xe9,0x9f,0x08,0x92,0x35,0x94,0x4f,0x0d,0x64,0x64,0x02,0x57,
+ 0x9b,0x89,0xaf,0x00,0xe5,0x3c,0x6f,0xf4,0xf4,0x99,0xf3,0xbc,0x3c,0xc4,0xfb,0xd7,0xa9,0x8e,0x62,0xc8,0x27,0xe7,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x6c,0x32,0x84,0x2c,0xf0,0x74,0xa6,0x30,0x07,0x48,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0xe4,0xd9,0xf9,0x53,0xa7,0xf3,0xd5,0x49,0xf7,0x4e,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0xb6,0xfb,0x2e,0x84,0xb0,0xed,0xcb,0x45,0xf6,0x53,0x9c,0xc2,0x7a,0x6d,0xbb,0x98,0xf3,0xd9,0xc0,0x2d,0xb3,0xc8,0xbc,
+ 0xe5,0x6f,0x93,0x24,0x39,0xce,0x2c,0x64,0xb9,0x2f,0x0a,0xcb,0xe5,0x43,0xef,0xf1,0x6e,0x84,0x71,0x9c,0xd5,0xdd,0xc2,0x29,
+ 0xcc,0x5f,0x1f,0x71,0x97,0xf3,0xb0,0xdc,0x69,0x08,0x59,0xcb,0xda,0x2e,0x96,0x11,0xd6,0x9e,0xfe,0x48,0xc7,0x54,0x26,0x6f,
+ 0xf9,0x34,0x2f,0xd7,0x7c,0x94,0x37,0x96,0x2d,0x59,0xab,0xfd,0xaf,0x3f,0xd9,0x05,0x19,0x9e,0x91,0x87,0xf5,0x7e,0xa6,0xc5,
+ 0x26,0x90,0xd5,0xe3,0x75,0xef,0xfd,0x55,0xa5,0x67,0x7d,0x79,0x58,0xe4,0x93,0xdc,0x2b,0x1e,0xa2,0x86,0x3f,0xb9,0x36,0x7f,
+ 0x97,0xf9,0xc9,0xed,0x96,0xf6,0xf6,0x2e,0x6b,0x8f,0xef,0x7c,0xcb,0x65,0x64,0xd9,0x27,0xdb,0x69,0xd9,0x67,0x67,0xcd,0x7b,
+ 0xf9,0x66,0xb5,0x70,0xff,0x5f,0xc7,0x31,0xfd,0x5b,0xec,0xef,0x6d,0xc8,0x36,0xbe,0x88,0xec,0x7b,0x4e,0xe5,0xb3,0xe2,0x6f,
+ 0xae,0x0d,0xec,0xec,0xfc,0xe0,0x2e,0x37,0xf6,0x1d,0xd3,0xac,0x88,0x50,0x7a,0x37,0xc2,0x6e,0xf3,0x67,0xf9,0x13,0xc7,0x32,
+ 0xdf,0xdf,0x60,0x6f,0x6b,0x2d,0x65,0xcc,0xfc,0x48,0xff,0xc6,0x50,0xc3,0x99,0x98,0x1f,0x69,0x2f,0xb3,0xf5,0x2c,0x2a,0x23,
+ 0xfc,0xf5,0x34,0xcc,0x73,0x1b,0x6d,0xd8,0x38,0xc9,0xdd,0x48,0x1e,0xe7,0x33,0x8b,0xf0,0xe5,0xd9,0xd9,0x58,0xff,0x7e,0x30,
+ 0xaf,0xcc,0x8f,0x87,0x8a,0xe1,0xc7,0x8b,0xa3,0xe3,0x4e,0xe3,0x2a,0xcd,0xb7,0x5a,0x76,0x57,0x72,0x57,0x9f,0x50,0xb1,0xcb,
+ 0x7e,0xb3,0x9a,0x4d,0x3d,0xe3,0x3b,0xb7,0xbb,0xa2,0x65,0x98,0x2d,0x33,0x7f,0xb3,0xaf,0xcf,0x87,0xf0,0x63,0x6d,0x2e,0x5b,
+ 0xd7,0xee,0xf7,0x6e,0x84,0xed,0x91,0x37,0xc7,0xf2,0xd7,0x1e,0x9f,0xf9,0x3c,0xec,0x60,0x88,0xdc,0xdf,0x3e,0xf8,0x2a,0xba,
+ 0x33,0xb7,0xa1,0x47,0x14,0x2a,0x99,0xdc,0x15,0x2d,0xc3,0xac,0xe7,0x99,0xd5,0x1c,0x33,0xb7,0x8f,0x6b,0xe3,0x99,0xf8,0x57,
+ 0xd9,0xe6,0xb2,0xb6,0xbc,0xac,0xb5,0xd7,0xd7,0x76,0x89,0x59,0x8f,0xbc,0x5a,0x4e,0xe1,0x93,0x96,0xd8,0xf6,0x63,0xc9,0x7b,
+ 0xfc,0x95,0x71,0xce,0xef,0x5d,0x46,0x3e,0xb4,0x67,0x91,0xed,0xdb,0x8e,0xbc,0x97,0x7b,0x6f,0x9f,0xc7,0xec,0x3f,0x6d,0xe6,
+ 0x71,0xfc,0x01,0xfd,0x4f,0xfe,0x09,0xe7,0xc9,0x1d,0x53,0x87,0xdb,0xb6,0xb5,0x0f,0xdf,0xdd,0xb4,0x8c,0xef,0x8f,0xf2,0xa2,
+ 0x1d,0x79,0xfd,0x4c,0xcd,0xf9,0x96,0xd5,0xeb,0x79,0xd3,0x15,0xbe,0xe9,0x4a,0x7e,0x57,0xb4,0x0f,0xb3,0xcb,0xf5,0xf3,0x5b,
+ 0x8b,0xe7,0xe2,0x6f,0x4b,0x5e,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,
+ 0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,
+ 0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,
+ 0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,
+ 0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,
+ 0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,
+ 0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,
+ 0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,
+ 0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,
+ 0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,
+ 0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,
+ 0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,
+ 0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,
+ 0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,
+ 0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,
+ 0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,
+ 0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,
+ 0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xd3,0xfa,0x2e,0x84,
+ 0x30,0x85,0x9f,0x0b,0xab,0x68,0x29,0xd8,0x94,0xe1,0x67,0x8b,0xb5,0x6c,0xb7,0xa9,0x7a,0xdf,0x99,0x1b,0x48,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x64,0xd2,0xbe,0x9b,0x17,0xbf,0x0b,0x40,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x17,0xe7,0xcb,0x45,0x98,0x93,0x24,0x49,0x26,0x60,0x88,0x4c,0x21,0x1f,0x3e,0x4e,0xc3,0xa5,0x1b,0x42,
+ 0x78,0x16,0x3a,0xf9,0x2e,0xff,0xdf,0x14,0xe6,0xaf,0xaf,0x36,0xdb,0xbe,0xed,0xa7,0xc2,0xec,0x2b,0xe1,0x66,0x1e,0x96,0x5f,
+ 0x59,0x2f,0x0f,0x33,0x84,0xc5,0xc8,0x08,0x75,0xdf,0x85,0x59,0xe8,0xd3,0xa7,0xde,0xbf,0x4b,0x4b,0xff,0x23,0x9d,0x5f,0x91,
+ 0xe7,0xe3,0xbb,0x30,0x0f,0x87,0x34,0x85,0x63,0x24,0x49,0x92,0x8f,0xcd,0xe7,0x21,0xcb,0xef,0x43,0x5e,0x17,0x86,0x90,0x5d,
+ 0x1d,0xd6,0xd3,0x1f,0xef,0x63,0xd6,0x9d,0xe7,0xe1,0xea,0xb9,0xef,0x3e,0x3f,0x2b,0xfa,0x3f,0x09,0xe7,0xec,0x54,0x75,0x7b,
+ 0x73,0xbf,0x5c,0xbd,0x3e,0xcc,0xe7,0xcb,0xd9,0x01,0xbd,0xfe,0x60,0x91,0x85,0xd9,0xcd,0xf3,0xc8,0x0f,0x22,0x5f,0x44,0xbe,
+ 0x8e,0xfa,0x7c,0xba,0x70,0xf5,0x99,0xcf,0x3e,0xe7,0xa1,0xd8,0xd7,0xd4,0x7e,0xb4,0xf6,0x65,0x91,0x49,0x93,0x71,0xce,0x87,
+ 0x58,0x6e,0xda,0xd7,0xaa,0x25,0x74,0xf2,0xf9,0xe2,0xbd,0x70,0x55,0x2c,0x5f,0xdd,0x2f,0x97,0x75,0x7b,0x55,0xc4,0x79,0x95,
+ 0xb7,0x6c,0x8f,0x42,0xb9,0xd5,0x6a,0x5f,0xf3,0x62,0x5f,0xf3,0xc6,0xe5,0x97,0x8b,0x9b,0x5a,0x4d,0x16,0xf7,0xee,0xca,0xa4,
+ 0xdc,0x6f,0xd9,0xf3,0x6d,0xb1,0xed,0x9b,0x28,0x42,0xd3,0xf8,0x76,0xb9,0x1a,0xa4,0x70,0x5d,0x22,0xd3,0x37,0x7e,0x7f,0x5c,
+ 0xde,0xbf,0xcb,0xac,0x3e,0x57,0x7f,0x71,0xb5,0xba,0x3e,0xbc,0xbc,0x2a,0xce,0xe2,0xab,0xd5,0x59,0xf9,0xb6,0xf0,0x4d,0xe1,
+ 0xba,0xbd,0xb8,0x0a,0x5d,0x15,0x57,0x80,0xc2,0x75,0xfb,0xea,0xac,0x7f,0x7e,0x55,0x5c,0x67,0xae,0x56,0xe7,0xfe,0x7a,0xf9,
+ 0xbd,0x62,0xed,0xd5,0x60,0x5f,0xe5,0x11,0xe6,0xb9,0xeb,0x7d,0x85,0x2d,0xb7,0x73,0x0e,0xcf,0x52,0xf5,0x75,0x54,0xab,0xed,
+ 0xba,0xc5,0xcb,0xa7,0xcf,0x73,0x7f,0xfe,0xf1,0xb8,0xcf,0xb7,0x66,0xc2,0xf3,0xeb,0xe2,0x5d,0xa3,0xf0,0x79,0xe4,0xab,0xc2,
+ 0x97,0xd7,0xe1,0x79,0xb8,0xf9,0xc4,0x50,0x37,0x11,0x58,0xfa,0xaa,0xa8,0xc9,0xab,0x75,0x65,0xbe,0x7c,0x9e,0xd6,0xbf,0xdd,
+ 0xeb,0xbb,0xd5,0xf1,0xfb,0xd7,0x73,0x7e,0x13,0x5d,0x2d,0xeb,0xe7,0xf5,0xdb,0x68,0xed,0xfd,0xfd,0x4c,0x71,0x46,0x74,0x71,
+ 0xbd,0x97,0x27,0xc5,0xb6,0xfd,0x9c,0x17,0x9f,0x2d,0xc4,0x7e,0x3c,0xac,0xf2,0x79,0x3a,0xcf,0xee,0xfb,0x3c,0x3c,0x5f,0x84,
+ 0xff,0x30,0x85,0x9b,0xef,0x76,0x27,0x89,0x76,0x08,0x4f,0x95,0x61,0x7d,0xbf,0x87,0xce,0xa4,0xf2,0x6d,0xfb,0x41,0xe3,0x9f,
+ 0xbb,0xc7,0x9f,0x0f,0xe4,0x31,0x6d,0x9f,0xff,0xd9,0xbd,0xd9,0x66,0xb9,0xe5,0x4c,0xe1,0xc6,0xe9,0xea,0x93,0xdd,0xf2,0x72,
+ 0x0c,0x1b,0xd7,0xb3,0x22,0x9b,0xd0,0x5d,0xb3,0x2e,0xbb,0x3d,0xfc,0xbb,0xe4,0xf9,0xda,0xff,0x7c,0xbc,0x64,0xcb,0xcf,0xb7,
+ 0x53,0x18,0x17,0x32,0x05,0xf3,0xd7,0x5f,0x3e,0x1f,0x77,0xe6,0xff,0x97,0xb8,0xcf,0xc3,0xcd,0x9f,0xf2,0x8a,0x1a,0xc2,0x55,
+ 0x48,0xdb,0x96,0xf9,0xff,0x3f,0x2f,0xd1,0xc1,0x57,0x83,0x7a,0xb4,0xbf,0x98,0xb6,0x7b,0x8f,0xe8,0x7f,0x5c,0xba,0xf9,0x39,
+ 0xd8,0xe2,0xde,0xfa,0xfc,0x85,0x73,0xb3,0xcc,0x3c,0x5b,0xb7,0xfc,0xf7,0x4b,0xb4,0x65,0xbc,0x7a,0xc5,0xc9,0x46,0xec,0xeb,
+ 0x31,0x98,0xbf,0xfe,0x3c,0x2f,0xda,0x3f,0xc7,0x56,0xff,0xec,0xb9,0x19,0x9f,0xbf,0x77,0x45,0xcb,0x30,0x3b,0x5e,0x1f,0xfe,
+ 0xcc,0x25,0xea,0x78,0x37,0xc7,0xfb,0xa7,0x1f,0x93,0x03,0xde,0x1f,0xff,0x14,0xfb,0x3b,0xc9,0x9d,0x49,0x19,0xed,0x4f,0x8e,
+ 0x73,0x13,0x6d,0x64,0x9c,0xa9,0xe2,0xd7,0xfb,0x4f,0x95,0xe1,0xb9,0x1c,0x29,0xd3,0x31,0x7f,0xfd,0x7b,0x92,0x24,0x39,0xd4,
+ 0xf3,0x7d,0xff,0x3d,0xe6,0xfd,0x43,0x0a,0xf7,0x3c,0x95,0xfc,0x3b,0xfe,0xe5,0xab,0x2e,0x3d,0x2f,0xd5,0x31,0x15,0x48,0x61,
+ 0x94,0xd9,0x3c,0xff,0x67,0x7f,0x62,0x9f,0xe5,0x5f,0x21,0x2b,0x8d,0x5b,0xba,0x6c,0xfb,0x18,0xac,0x57,0x23,0xae,0x58,0xbd,
+ 0x6e,0x95,0xfe,0x7f,0xfc,0xd4,0x96,0xf9,0x64,0x43,0x23,0xfc,0xb1,0x33,0xf7,0x8f,0x9e,0xa7,0xf5,0x39,0xd6,0xee,0x71,0xf6,
+ 0xf2,0xd8,0xcc,0xab,0xf4,0x47,0x8e,0x6b,0x7d,0xbf,0x23,0x33,0xfc,0xc3,0xe7,0x60,0xfd,0xb8,0xb2,0x90,0x95,0x6b,0xff,0x50,
+ 0xaa,0xee,0x1d,0x97,0xbd,0x7d,0x78,0x84,0xf3,0xf7,0xff,0xcd,0xce,0xdb,0x3f,0x18,0x12,0xb2,0xa5,0xce,0x27,0xcf,0x27,0x85,
+ 0xfa,0x24,0xe8,0x1f,0x28,0x7e,0x52,0xae,0x62,0x59,0xb1,0x7a,0x4b,0x93,0xf5,0x08,0xa5,0x65,0xfc,0xba,0x9b,0x11,0xe9,0xd8,
+ 0x9e,0xb2,0xed,0x75,0x68,0xaf,0xd8,0xf8,0x3d,0xb6,0x9b,0x15,0xfd,0xbb,0xdb,0x37,0x7e,0xde,0xff,0xbf,0x9e,0xb9,0xff,0xed,
+ 0x9c,0x4d,0xe1,0x3d,0x74,0xe4,0xfb,0xef,0xef,0xbf,0x5c,0xf3,0x73,0x7c,0xe3,0xb0,0x0a,0x64,0x1d,0xfc,0x74,0xe1,0xe0,0xfa,
+ 0xff,0x08,0xc7,0xb9,0xeb,0xaa,0x9b,0xfd,0x48,0x37,0xf3,0x08,0xff,0xfb,0xd4,0x56,0xe6,0x43,0xdf,0x08,0xff,0xeb,0xb8,0xee,
+ 0x9d,0xcf,0x7d,0x63,0xfe,0xbe,0x63,0xd9,0xeb,0xac,0x1c,0x19,0x61,0x58,0xfc,0xc3,0xed,0x91,0x69,0x9a,0x8f,0xf2,0x7f,0xe2,
+ 0xb9,0x99,0xc2,0xcc,0xb9,0x0c,0xf3,0x7a,0xfe,0x47,0xf6,0x51,0xfd,0xcf,0xa5,0xfe,0xdd,0x62,0xce,0x7f,0xf8,0x12,0xcd,0x9f,
+ 0xb9,0x76,0xda,0xf7,0x5f,0x0b,0xba,0x0b,0xd7,0x3f,0x3c,0xd4,0x6e,0x7b,0x39,0xfd,0x35,0x90,0x24,0xc9,0xbe,0x86,0x70,0x7d,
+ 0x75,0x9e,0xae,0xf3,0x9f,0xfd,0xd0,0x63,0xb5,0xac,0x40,0x7e,0x5f,0xf4,0x43,0x6b,0xb3,0xa8,0xbd,0x5e,0x9f,0x14,0xe6,0x1b,
+ 0xa7,0x3e,0x7f,0x67,0xff,0xe5,0x31,0xd9,0xbf,0x3e,0xf3,0xdf,0x7b,0x6a,0xf3,0x73,0x73,0xa4,0xc3,0xf6,0x7b,0xe8,0x7f,0x89,
+ 0xb5,0xdb,0xbf,0xe2,0x34,0xfb,0xcf,0xc7,0x32,0xaf,0xd5,0x4e,0x9b,0xfa,0xa7,0x70,0xfe,0x1e,0xe1,0xfa,0xf0,0x7b,0xce,0xc1,
+ 0x13,0xd6,0xe7,0x77,0xa7,0xe1,0xb0,0xfc,0xf3,0x73,0xec,0x4b,0xc5,0x3c,0xff,0xd2,0x7a,0x39,0x70,0x84,0xeb,0x4a,0x4e,0x6f,
+ 0x56,0xc4,0xcf,0x3a,0xe4,0xd0,0xfc,0xbb,0x1e,0xd9,0x97,0x4e,0xe1,0x5d,0x91,0xd5,0x30,0xcb,0x63,0x6f,0xaa,0x70,0xfb,0xf1,
+ 0xb6,0xbb,0x89,0xf3,0xc5,0x07,0xc3,0x17,0x8b,0x98,0xdc,0x38,0xdf,0xe1,0xb2,0xc1,0xdd,0x7d,0xea,0x31,0xb3,0x06,0xcb,0xfe,
+ 0x23,0x7f,0x9b,0xef,0x8b,0xb5,0x96,0xdf,0x95,0x9e,0xdd,0x8f,0xe8,0xae,0xe8,0x3f,0xcc,0x8e,0x67,0xc1,0x0f,0x6e,0x9b,0xb7,
+ 0x5e,0xa4,0xf5,0x23,0xdd,0xb6,0x4b,0x9f,0xaa,0x9b,0x31,0xfa,0xc1,0xa1,0x66,0x0d,0xae,0x73,0x7e,0xb0,0x6c,0x19,0x70,0x46,
+ 0xfc,0xce,0xcb,0x32,0xaf,0xfc,0x66,0xf9,0x36,0x6a,0x1f,0xfc,0x2e,0xf0,0x03,0x0f,0x86,0x1f,0x28,0xa2,0xb1,0xc5,0xf9,0x0e,
+ 0x97,0x83,0x7c,0x88,0xd0,0xb4,0xaf,0x2c,0x32,0x6e,0x69,0x8a,0x19,0x6a,0x59,0xdd,0x15,0xcb,0xc3,0x2c,0xa3,0xdd,0x36,0xe4,
+ 0x53,0xba,0x39,0xcb,0xbe,0x70,0x0a,0xa7,0xf8,0xfd,0xdf,0xf0,0x3b,0x8e,0xe5,0xf1,0xf7,0xd8,0xdd,0xf9,0x0e,0x97,0x35,0xeb,
+ 0x6b,0xab,0x3d,0xb3,0xa2,0x25,0x8b,0x22,0xd7,0x5b,0xca,0x9e,0x29,0xfc,0xf6,0x37,0xf3,0xd7,0x6f,0xef,0x66,0xdc,0xbf,0x7d,
+ 0xdb,0xbe,0x91,0xfb,0x3a,0x3e,0x7e,0x16,0xc5,0xd9,0x5b,0x9f,0xef,0xe7,0x2e,0xf3,0xb3,0xb8,0x30,0xd4,0x5c,0xf6,0x72,0xef,
+ 0xfd,0xff,0xf7,0x0f,0xb5,0xe3,0xfd,0xcf,0xf7,0x3d,0x18,0x36,0x6e,0x46,0xff,0xfb,0xfa,0x58,0x99,0x39,0x7b,0xdb,0x4f,0x65,
+ 0xdf,0x4c,0x9a,0x8e,0xa8,0xcb,0x56,0x9b,0x7f,0x53,0x7e,0xd3,0x3e,0xdf,0xb2,0x5a,0xf9,0xfa,0x28,0xac,0xe3,0xec,0x6f,0xaf,
+ 0xaf,0xad,0xd7,0xbf,0x79,0x26,0xec,0xef,0xd9,0x7e,0xbc,0xcd,0x19,0xc6,0x73,0xac,0xcd,0x7d,0xf3,0x73,0x7f,0x7f,0x92,0xdd,
+ 0xcd,0x5f,0xbf,0x8d,0x43,0x9d,0xef,0x70,0xd9,0xd3,0xf6,0x6d,0x1f,0xda,0x9b,0x72,0xc8,0x1a,0x2c,0xd7,0xde,0x8d,0x30,0x8e,
+ 0x16,0xcf,0x96,0xa6,0x7c,0x52,0x98,0xcf,0x03,0xe6,0xff,0x6f,0x65,0xb3,0xf3,0x1d,0x2e,0x3b,0x18,0x6a,0xcb,0xed,0x71,0xaa,
+ 0x2d,0x4d,0xf9,0xf4,0x1d,0xdf,0xbb,0x62,0xab,0x61,0xa6,0x30,0x3f,0x49,0x1e,0xce,0xfc,0xf5,0x5b,0x66,0xdc,0xe1,0x7c,0x87,
+ 0xcb,0x9d,0xae,0x2a,0xb9,0x76,0xd7,0x56,0xf5,0x6d,0xab,0x2d,0xb7,0x45,0x4b,0x16,0xf9,0x22,0xb2,0x9e,0x5b,0x76,0x30,0x9b,
+ 0xab,0xb1,0xfb,0x78,0xcf,0xdd,0x9c,0xdf,0x1c,0xd8,0xe8,0x7c,0x87,0xcb,0x9e,0xd6,0xb7,0xad,0xc6,0xc9,0x8a,0x96,0xac,0xb6,
+ 0xf7,0xf1,0xd7,0xb7,0xbb,0x22,0xce,0x30,0xbb,0xc4,0xbf,0x0d,0xd9,0xf7,0x4e,0xe7,0x49,0xae,0xff,0xdf,0xf3,0xb8,0xcd,0x67,
+ 0x60,0x61,0x7d,0x39,0x6e,0x69,0xf7,0xa1,0x67,0x1c,0xb9,0xe3,0xfc,0xfc,0x9e,0xa1,0xa6,0x70,0xff,0x70,0xee,0x7e,0x3e,0x84,
+ 0xef,0x4e,0xdb,0xed,0x6c,0x97,0xdf,0x5d,0x35,0xee,0x5f,0x5f,0xbb,0xec,0xb0,0x76,0xf9,0xdd,0xcd,0xf5,0xb9,0x2b,0xb6,0x1d,
+ 0x66,0x9c,0x5b,0x56,0x73,0x4c,0x1d,0x48,0x72,0xbc,0xf9,0xeb,0x37,0xb1,0xb8,0x87,0xa9,0xb9,0x1c,0x64,0x75,0xdb,0x32,0x7e,
+ 0x0a,0x63,0xcd,0xcb,0x33,0x7f,0xbd,0xe3,0xe9,0xbc,0x1b,0xe1,0xb0,0x3d,0x4e,0x3e,0x73,0xbe,0xab,0x9b,0x95,0x6d,0x77,0xb6,
+ 0xf4,0x8d,0xd6,0xde,0x92,0x82,0xf3,0x0e,0x96,0x99,0xd7,0x5b,0xd6,0xed,0xcb,0xef,0x7a,0x30,0x6c,0x96,0xe3,0xf8,0xdb,0xfb,
+ 0x5a,0xad,0xcd,0x8a,0xe5,0xd8,0x61,0xa3,0x7c,0x57,0x6c,0x3b,0xcc,0x14,0xae,0x6f,0xdc,0x7b,0x16,0x7f,0x67,0x1f,0xc7,0x6c,
+ 0x7b,0xbe,0xce,0x77,0xb8,0xdc,0x69,0xe5,0xcc,0x8d,0xd6,0xb6,0xc5,0x29,0xf7,0x72,0x5b,0xdb,0x63,0x0a,0x33,0x64,0xef,0xfc,
+ 0xf9,0x7c,0xf1,0xbd,0x46,0x07,0x43,0xe4,0x43,0x7b,0x19,0xe1,0xf1,0xd8,0xbd,0x56,0xed,0xfd,0x6f,0xa3,0x3e,0x59,0x83,0xb7,
+ 0xb5,0x38,0xab,0x51,0xeb,0xf9,0xfd,0xce,0x77,0x14,0xdb,0x76,0x30,0x44,0x56,0xd7,0x96,0x71,0x18,0xdb,0xad,0xaa,0xdd,0xad,
+ 0xc6,0xcc,0x8a,0x96,0xd8,0x72,0xbf,0xb7,0x35,0xe3,0x3e,0x7d,0x67,0xc8,0xde,0xf9,0xf3,0xe1,0x81,0x7d,0x1b,0x38,0xb1,0x29,
+ 0xbc,0xb3,0x90,0x24,0x53,0x36,0x7f,0xbd,0xe9,0xef,0x98,0x6d,0xcf,0xc5,0xf9,0xbd,0xcb,0x8e,0x96,0x35,0xe9,0xd6,0xff,0x21,
+ 0x7e,0xb9,0xaf,0xac,0xd5,0x31,0xe3,0x7b,0x57,0x44,0x18,0xe6,0xf1,0x6b,0x5e,0xcf,0x3f,0xbf,0xbf,0x7d,0x1d,0x56,0x3f,0x07,
+ 0xf8,0xba,0xe8,0x73,0x76,0xc6,0xc7,0x92,0x8f,0xfe,0xeb,0x53,0xbb,0xce,0x24,0xf4,0xdc,0xb6,0xde,0xbf,0xda,0x92,0xc2,0xd5,
+ 0x8c,0x03,0xae,0xff,0x77,0xdd,0xac,0xf7,0xef,0x1b,0xe1,0x7c,0xcd,0x67,0xf8,0x5e,0xeb,0xb5,0x8d,0xdb,0xeb,0x3d,0xbb,0xc4,
+ 0x2c,0x8d,0x73,0x18,0x70,0xfd,0xbf,0x1b,0x6a,0xc7,0xf9,0xf3,0x6a,0x9f,0xf5,0x9e,0xdd,0xb7,0x4d,0xd9,0x79,0xab,0x9b,0x51,
+ 0x7e,0xb5,0x76,0x73,0xed,0x8d,0x7a,0x2e,0x2b,0xcb,0x71,0x7d,0x3a,0x8e,0xef,0xab,0xa1,0xa6,0x70,0xfd,0x21,0x49,0xf2,0x1c,
+ 0xcd,0x5f,0x9f,0x3b,0xae,0xf9,0x7d,0x42,0x64,0xd8,0x18,0xf7,0x49,0xa1,0x32,0x24,0xcf,0xdd,0xfc,0xf5,0xd9,0x03,0xc7,0x7f,
+ 0x79,0x4a,0xb3,0x5e,0xbe,0x09,0x37,0x3b,0xed,0x1b,0x67,0x98,0xd3,0x56,0x3e,0x5b,0xd7,0xe1,0x33,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0xc9,0xe3,0x9a,0xc2,0xe7,0xff,0xbc,0x6c,0x43,0x02,0xf3,0x9c,0xac,0xbb,0xf9,0x96,0xea,0x33,0xcd,0x9a,0xff,0x24,
+ 0x2f,0xcf,0x14,0xee,0x0d,0x48,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0xf2,0x92,0xcc,0x5f,0x1f,0x90,0xd3,0x39,0xf9,0xfc,0xfc,0xbf,0x33,0x92,0x24,0x49,0x92,0xe4,0xa3,0xf3,0x75,
+ 0xcd,0xe7,0x35,0x53,0xc8,0xf3,0x10,0x36,0x1d,0x5d,0x5c,0x87,0xd7,0xad,0x3d,0x49,0x92,0xa7,0xb5,0xfe,0xce,0x95,0x42,0x56,
+ 0x24,0xcf,0xc5,0xd5,0xf7,0x23,0xb3,0x9b,0xeb,0x62,0xb9,0x8b,0xf1,0x35,0xa7,0xdc,0xb6,0xab,0xa7,0xfe,0x8e,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x39,0xde,0xfc,0xf5,0x7f,0x66,0x24,0x49,0x92,0xe4,0x19,0xfb,0xba,0xf0,0x79,0x02,
+ 0x99,0x90,0x53,0xb9,0x7a,0x5e,0xe3,0x21,0x3c,0xf5,0x33,0x38,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x8f,0xcd,0xfc,0xf5,0x69,0x92,0x24,0x49,0x92,0xe4,
+ 0x50,0x7b,0x3d,0x7f,0x7d,0xfb,0x79,0x5a,0xe6,0x7f,0x57,0x2c,0x0f,0xb3,0xa9,0x26,0x59,0xb1,0x36,0x5b,0xef,0xeb,0x53,0xbc,
+ 0x44,0x37,0xf3,0xe7,0x53,0x43,0xed,0x78,0x7e,0x7d,0xdb,0xb9,0x19,0xe7,0x3f,0x0f,0xcb,0x6f,0x6b,0x36,0xab,0xf5,0x1f,0xf0,
+ 0xf9,0xcf,0xb7,0xb2,0xd9,0xbc,0xce,0x1d,0xcd,0x8a,0xfe,0xb1,0x63,0xf6,0x1b,0x47,0x18,0x33,0xbe,0x77,0x45,0x84,0x61,0xf6,
+ 0x9d,0x21,0x29,0xcc,0xa8,0xd4,0x66,0x7b,0x0a,0x9f,0xf1,0x92,0x24,0x49,0x92,0x24,0xc9,0xd3,0x9a,0xbf,0x5e,0x90,0xc5,0x27,
+ 0x7e,0x1b,0xe3,0xf6,0x14,0x66,0x29,0x2f,0xd5,0xfc,0xf5,0x2d,0x3c,0x67,0x9b,0x46,0x76,0x1e,0x96,0x9b,0x3e,0x73,0x4e,0x64,
+ 0xf7,0x33,0xab,0xac,0x7f,0xdd,0xe3,0x8c,0x3e,0x8f,0xe3,0xab,0x45,0xf8,0xe4,0x6c,0xe5,0x27,0x56,0x66,0xf3,0x62,0x39,0xf7,
+ 0x7a,0xb1,0x7c,0x7f,0x56,0xf4,0x19,0xe7,0xbc,0x88,0x56,0x3a,0x3e,0x5a,0xdd,0x97,0x45,0xfe,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x9e,
+ 0x97,0xef,0x42,0x08,0x7d,0x4c,0x21,0x67,0x92,0x24,0x49,0x92,0x24,0x49,0x1e,0xce,0xb0,0x08,0xef,0x93,0x24,0x49,0x92,0x8f,
+ 0xc9,0xbe,0xdf,0x99,0x5e,0x92,0xc3,0x9e,0x1a,0x52,0xc8,0x9c,0x9c,0xc6,0x40,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xbc,0x09,0x8b,0xf0,0x7c,
+ 0xb6,0xc3,0xd5,0xda,0x5d,0xed,0xdd,0xfb,0x97,0x2d,0x2f,0x8b,0xe5,0xdc,0x6b,0x92,0x24,0xcf,0xca,0xe7,0xdb,0x96,0xef,0x6b,
+ 0x2c,0xfd,0x44,0x51,0xa5,0xd8,0xa3,0xed,0xf7,0xf9,0x2e,0xfb,0xc6,0xc9,0xc7,0xf4,0x13,0x24,0x49,0x92,0xec,0x6f,0xdb,0x5d,
+ 0xd6,0xa9,0x3f,0xe3,0x22,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0xd6,0xcd,0x5f,0x1f,0x27,0x4f,0xe7,0x31,0xe7,0xe7,0x54,0xf1,0x8f,0x73,0x7e,0xd5,0xe3,0xcc,0xc3,0x72,0x63,0x76,0xdf,0xf2,
+ 0x24,0xec,0x32,0x85,0x6b,0x0b,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x5e,0x92,
+ 0xf3,0xb0,0x9c,0xcd,0xb8,0xe5,0xaa,0x32,0x6b,0x53,0xc8,0xa7,0x9e,0x55,0x77,0x03,0x79,0x86,0x0e,0x9b,0xed,0xbb,0x3d,0xf5,
+ 0x35,0x36,0x65,0xc7,0x8c,0x11,0x49,0xf2,0xb4,0x8e,0x79,0x7f,0x4c,0x21,0xff,0xe3,0x57,0x29,0x85,0x7c,0x1e,0x83,0xf3,0x2d,
+ 0xab,0x4f,0x34,0xfb,0xfa,0x37,0xf9,0xa4,0xa7,0xfd,0x9e,0xb3,0xb6,0xf3,0x19,0xb2,0xd5,0xb9,0x78,0x49,0xc7,0x72,0x6e,0x66,
+ 0x1b,0xa7,0x7c,0xd2,0x19,0x72,0xfd,0xcf,0x6e,0x03,0x93,0x30,0x3f,0xfb,0x2a,0x96,0xed,0x29,0x3c,0x27,0x92,0xac,0xbb,0xe2,
+ 0x14,0xef,0x20,0xef,0x26,0x32,0x7e,0x27,0xe2,0x63,0x76,0xe8,0xfc,0x49,0xd1,0x7e,0x47,0x71,0xea,0x6b,0x08,0x79,0x2a,0x03,
+ 0x1f,0xb1,0xe6,0xc0,0x79,0x59,0x1f,0xaf,0xfa,0xb9,0xdc,0x74,0x76,0x77,0x39,0xeb,0xa7,0x9d,0x0f,0xf5,0xac,0xc6,0x1c,0x29,
+ 0x4f,0x65,0x97,0x39,0x33,0x6c,0xbc,0x2e,0x7b,0x56,0x8c,0x3f,0xd7,0x9a,0xce,0xeb,0xcb,0xae,0x1b,0x49,0x92,0x1c,0xaf,0xe7,
+ 0xfd,0x71,0x66,0x09,0xe4,0x70,0xa9,0xaa,0xed,0xe1,0x54,0xdb,0xc3,0xa9,0xb6,0x87,0x73,0x48,0x6d,0xe3,0xf7,0xb8,0xbb,0x70,
+ 0xc5,0x8e,0xe6,0xf5,0xca,0x66,0x24,0x49,0x92,0x24,0x1f,0x85,0xf3,0xb0,0xe4,0x24,0xaa,0xf0,0xe1,0x6a,0xd8,0x5e,0xdb,0xc3,
+ 0x9d,0x17,0x71,0x4b,0xd6,0x60,0xb9,0x76,0xf5,0xc9,0xc3,0x61,0x6c,0xaf,0x58,0x97,0x3e,0x63,0x4c,0xe1,0x67,0x14,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xd9,0xdd,0xfc,0xf5,0xec,0x3c,0x4d,0xa1,0x7a,0x24,0x79,0xbe,0xce,0xc3,0xf2,0x69,0x37,
+ 0xfb,0xf6,0x1f,0xe3,0x54,0x19,0x76,0x89,0x90,0xc2,0x28,0x90,0xe4,0xf1,0xcd,0x5f,0x1f,0xe3,0xda,0x7a,0x7d,0xf2,0xf7,0x88,
+ 0x8f,0x75,0x73,0xd8,0x5e,0xee,0x8a,0x96,0x61,0x76,0x19,0xd3,0x14,0xe6,0x18,0x49,0x92,0x8f,0xcd,0xfc,0xf5,0xe4,0xdc,0xcc,
+ 0xef,0x67,0x9e,0x1c,0xb1,0x3e,0x4b,0x16,0x35,0xdf,0xe9,0x5d,0xb1,0x76,0x98,0xed,0x95,0x7f,0x1b,0x6e,0xf6,0xf6,0x21,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0xc7,0x63,0xfe,0x7a,0xaf,0x9b,0xed,0xfd,0xeb,0x6b,0xfb,0xc6,0xef,0xeb,0x3a,
+ 0xfe,0xec,0x86,0x24,0xd3,0xf3,0x5d,0x98,0x85,0xb5,0xc3,0x22,0xcc,0xc3,0xb2,0xa3,0xf1,0xbe,0x1e,0x8f,0x79,0x95,0x16,0x4c,
+ 0xcf,0x7c,0x4e,0x76,0xb4,0xec,0xdf,0x34,0xbe,0x77,0xc5,0xda,0x61,0x36,0xc5,0x7c,0x5d,0xac,0x7d,0xdd,0xda,0x87,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0xec,0xe6,0x3c,0xac,0x3e,0xe3,0xe2,0x61,0x7d,0xd3,0xb3,0xbd,0xf4,0xdd,0x04,0xa6,0x30,0xc7,0x1e,0xb3,
+ 0xa7,0x9f,0x7b,0x8f,0xcd,0x29,0xce,0x1a,0xe7,0x17,0xc9,0xb1,0xe6,0x57,0xa4,0xab,0x5d,0x6e,0xde,0x17,0x76,0xae,0x4d,0xc7,
+ 0x7a,0x9e,0x71,0x4b,0x7c,0x25,0x9c,0xea,0xb8,0xda,0x23,0x34,0xed,0xab,0xcb,0xb5,0xba,0xbd,0x67,0x97,0xf8,0xd3,0xd6,0x67,
+ 0xd8,0x7e,0xdb,0xe3,0x8f,0x9f,0x69,0x63,0xa2,0x1d,0x73,0x26,0x1c,0x62,0x9e,0xb7,0xcf,0x8d,0xbe,0xb9,0xa5,0x93,0x3f,0x9b,
+ 0x47,0x36,0xbb,0x5a,0xeb,0xfe,0x90,0x24,0x39,0x95,0x2f,0x43,0x16,0x66,0x8b,0x1d,0x2e,0x1a,0xda,0x2f,0xd6,0xd0,0x60,0x0a,
+ 0xb9,0xf1,0xf2,0x6c,0x9a,0x6f,0x7d,0x3d,0x4e,0x86,0x87,0xde,0xcb,0x01,0x22,0x2f,0x0e,0x1c,0x3f,0x21,0x87,0xcf,0x9f,0xa7,
+ 0xf9,0xc3,0xd9,0xec,0x66,0x94,0xab,0x1c,0xee,0xad,0xe7,0xf6,0x74,0x1e,0x8a,0x9e,0xe7,0xe4,0xea,0x17,0xe3,0x56,0x9e,0x6b,
+ 0xfe,0xe7,0x62,0x51,0xe1,0xd8,0x1d,0x73,0xbb,0xe8,0x19,0x3b,0xd5,0xde,0x0f,0x11,0x73,0xed,0xa2,0x16,0xb9,0x6c,0x19,0xe6,
+ 0x11,0x47,0x64,0xea,0xf7,0x26,0xae,0xfc,0x8e,0x95,0xd7,0x69,0xfa,0x72,0x11,0xae,0xaf,0x6e,0x72,0xc3,0xd5,0xe2,0xe5,0xe2,
+ 0x00,0x15,0x58,0x14,0xf3,0x6a,0xb8,0xe3,0x23,0x4c,0xbb,0xf7,0xc5,0x20,0x6f,0x26,0xae,0x4f,0xbf,0xfa,0x1f,0x66,0x64,0xef,
+ 0xe3,0x67,0xfb,0x4d,0xe0,0x1c,0x24,0xb9,0xc3,0x2e,0xe7,0x6f,0xfa,0x4e,0xfb,0xcc,0x38,0x6c,0xef,0x29,0xd4,0x81,0x93,0x8e,
+ 0xd4,0xfb,0xc9,0xcc,0xd8,0x10,0x39,0xc1,0x8c,0x9d,0xc8,0x10,0xd9,0xa5,0x67,0x97,0x6a,0xc7,0xb6,0x8f,0xc5,0x7d,0xcf,0xf0,
+ 0x60,0x8f,0xca,0x9c,0xf6,0x8a,0x31,0x7e,0xb6,0xb4,0xb7,0x47,0x7e,0xcb,0xca,0xeb,0x26,0x93,0x38,0x2b,0x1f,0xa7,0xb5,0x71,
+ 0x6c,0x9f,0xf9,0x63,0x3c,0xed,0x91,0x8e,0xcf,0x7f,0xfc,0xf1,0xb6,0xd7,0xa1,0x29,0xc2,0x98,0x4a,0xd6,0xe3,0x1c,0xa2,0xb6,
+ 0xa1,0xc3,0x72,0x97,0x0c,0xbb,0x44,0xee,0x12,0x93,0x49,0x5b,0x7b,0xa7,0x08,0x9d,0x3d,0x74,0x6e,0xdd,0x33,0x39,0x55,0xce,
+ 0x93,0xe5,0x56,0xfd,0xdc,0xbb,0x8b,0x8b,0xba,0x7b,0xee,0x40,0x12,0xb8,0x3f,0xdc,0x33,0x03,0x47,0xd8,0x78,0xd7,0x17,0xf7,
+ 0x99,0x74,0x8f,0x63,0xf2,0x6c,0xcf,0xf0,0x20,0x79,0x26,0x70,0xec,0x29,0xdb,0x74,0x4e,0xed,0x39,0xd7,0x92,0xb1,0x47,0xce,
+ 0x29,0x9c,0xf5,0x1c,0x64,0xf7,0x3b,0xdb,0x26,0x07,0xbd,0xd7,0x9c,0x99,0x1f,0xd6,0x7c,0x55,0xb3,0x69,0xdb,0x14,0x46,0xf9,
+ 0x10,0x73,0x26,0x85,0x99,0x39,0x59,0xb6,0x1d,0xae,0x87,0x8d,0xef,0xa1,0xed,0xd1,0x76,0xac,0xed,0xf9,0x69,0xf9,0xf8,0xeb,
+ 0xf9,0x9e,0xbd,0x77,0x3e,0xae,0x4e,0x95,0xac,0xc6,0x4f,0xe1,0xfc,0x25,0xfb,0x3a,0xd5,0xf7,0x5f,0x29,0x1c,0x0b,0x4f,0x37,
+ 0x8b,0xb2,0x86,0x6b,0xec,0xd1,0xbf,0x3f,0x6d,0x8f,0x7f,0xb0,0xef,0x7f,0x57,0x75,0x28,0x7e,0xbf,0x6c,0xa4,0xab,0x68,0x61,
+ 0x51,0x77,0xaa,0xf8,0x6c,0xaf,0xf3,0x21,0xea,0x7f,0xe8,0xf8,0xe7,0xe8,0x31,0xeb,0x9f,0xc6,0x31,0x66,0x91,0xfd,0x8e,0x9d,
+ 0xe9,0xbb,0x1a,0xf1,0x29,0xde,0x49,0xbb,0x7c,0x5f,0x3f,0xec,0xb9,0x72,0xfc,0x37,0x9b,0xe3,0x9f,0x4f,0x47,0x7d,0x0b,0x19,
+ 0xd5,0x67,0xe0,0xf3,0x72,0x11,0x21,0x85,0xcf,0x16,0x52,0x36,0x85,0x6f,0xba,0x1f,0x9b,0xed,0xdf,0x98,0x1f,0x7f,0x5c,0xba,
+ 0x7f,0x8f,0x7f,0xbe,0x3f,0x4d,0x31,0xad,0xc5,0xd5,0x9b,0x8f,0xce,0xe9,0x9e,0x22,0xb3,0x03,0xd8,0xf9,0xf9,0xba,0x9e,0xcf,
+ 0xb4,0xfd,0xdb,0xb7,0xed,0x62,0x02,0xe7,0xf8,0xa8,0x63,0x3c,0x44,0xcc,0xd6,0xf8,0x3b,0xae,0xb7,0x63,0xe6,0xe7,0xe1,0x32,
+ 0x1f,0x16,0xbf,0x67,0xfe,0x3d,0xde,0x95,0x06,0xd5,0x27,0x85,0xe7,0x4d,0xf2,0xf1,0xb8,0xfe,0x77,0x57,0x4f,0x9f,0xc9,0x65,
+ 0x98,0xc2,0xbf,0x02,0x7c,0x38,0xef,0xc2,0xd5,0x60,0xbb,0xc4,0x4f,0xe1,0x33,0x28,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x39,0xde,0x77,0xe1,0x49,0xf1,0xf9,0xff,0xca,0x97,0x8b,0x30,0x9f,0x91,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0xf2,0x94,0x86,0x33,0x37,0x85,0x1a,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0xd6,0xf5,0xef,0x2f,
+ 0x90,0xe4,0x21,0x74,0xfd,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0xc6,0x86,0x03,0x98,0xc2,0x71,0x91,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0xa7,0x32,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x76,0x36,0x85,0xbf,0x9e,0x44,0x92,0x24,0x49,0x92,0x4d,0xa6,0xf0,
+ 0xdc,0x44,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x9e,0xc4,0x77,0xe1,0x49,0x08,0xf7,0xbe,0x3c,0xf5,
+ 0x4f,0xf2,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x87,0xf6,0xe4,
+ 0xff,0xa2,0x28,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0xe4,0x79,0xf9,0x2e,0x3c,0x09,0x61,0x63,0x20,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0xc9,0xc8,0x27,0x91,0x29,0xe4,0x43,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x32,0x1d,0x9f,0x44,0xa6,0x90,0x0f,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x74,0x7c,0x12,0x99,0x42,0x3e,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xd3,0xf1,0x49,0x64,0x0a,0xf9,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xe4,0xff,0x6f,0xef,0x8e,0x51,0x18,0x06,
+ 0x62,0x28,0x0a,0xca,0x8b,0x09,0xd1,0xfd,0x2f,0x1c,0x30,0x98,0x88,0xa4,0x33,0x86,0xfc,0xc0,0x34,0x53,0xa8,0x7a,0x85,0xd0,
+ 0x96,0x4b,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x73,0xec,0x61,0x42,0x0f,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x1c,0x7b,0x98,0xd0,0x43,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x32,0xc7,0x1e,0x26,0xf4,0x90,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xcc,0xb1,0x87,0x09,0x3d,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
+ 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x73,0xec,0x61,0x42,0x0f,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x1c,0xfb,0xc3,0xf5,0x35,0xf9,
+ 0x17,0x8f,0xf2,0x9d,0xbc,0x66,0xc2,0x0e,0x93,0x3f,0xbb,0x9f,0xeb,0xb9,0x91,0x24,0xf3,0x4c,0x78,0x23,0x48,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x5e,0x35,0xe1,0x3f,0x02,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
+ 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xbc,0xcb,0x7e,0xbb,0xaa,0x36,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x3c,0xad,0xae,0x3a,0x4d,0xe8,0x21,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
+ 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x99,0x63,0x75,0xd5,0xe3,0x05,0x08,
+ 0xc2,0x7e,0x44,
+};
diff --git a/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp b/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp
new file mode 100644
index 0000000000..565128825b
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp
@@ -0,0 +1,62 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+static constexpr bool graphemeBreakTable[14][14] =
+{
+ // Other cr lf Control Extend ri Prepend SpacingMark L V T LV LVT zwj
+ /*Other*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true },
+ /*cr*/ { true, true, false, true, true, true, true, true, true, true, true, true, true, true },
+ /*lf*/ { true, true, true, true, true, true, true, true, true, true, true, true, true, true },
+ /*Control*/ { true, true, true, true, true, true, true, true, true, true, true, true, true, true },
+ /*Extend*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true },
+ /*ri*/ { true, true, true, true, false, false, true, false, true, true, true, true, true, true },
+ /*Prepend*/ { false, true, true, true, false, false, false, false, false, false, false, false, false, false },
+ /*SpacingMark*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true },
+ /*L*/ { true, true, true, true, false, true, true, false, false, false, true, false, false, true },
+ /*V*/ { true, true, true, true, false, true, true, false, true, false, false, true, true, true },
+ /*T*/ { true, true, true, true, false, true, true, false, true, true, false, true, true, true },
+ /*LV*/ { true, true, true, true, false, true, true, false, true, false, false, true, true, true },
+ /*LVT*/ { true, true, true, true, false, true, true, false, true, true, false, true, true, true },
+ /*zwj*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true }
+};
+
+static inline bool isGraphemeBreak (GraphemeBreakType g1, GraphemeBreakType g2)
+{
+ return graphemeBreakTable[(int) g1][(int) g2];
+}
+
+} // namespace juce
diff --git a/modules/juce_graphics/unicode/juce_UnicodeLine.cpp b/modules/juce_graphics/unicode/juce_UnicodeLine.cpp
new file mode 100644
index 0000000000..84f3458fca
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeLine.cpp
@@ -0,0 +1,291 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce::tr14
+{
+
+using EAWType = EastAsianWidthType;
+using BreakClass = LineBreakType;
+
+// This compiles down to the same machine code as an array matrix and
+// gives us enum value compile time safety. This way we dont need to worry
+// about the enum being modified and the table being out of sync.
+template
+struct LookUpTable
+{
+ inline constexpr void set (ValueType v1, ValueType v2, ResultType result)
+ {
+ cols[index (v1)][index (v2)] = result;
+ }
+
+ inline constexpr ResultType get (ValueType v1, ValueType v2) const
+ {
+ return cols[index (v1)][index (v2)];
+ }
+
+private:
+ static inline constexpr size_t index (ValueType value)
+ {
+ return (size_t) value;
+ }
+
+ ResultType cols[Size][Size];
+};
+
+enum class BreakOppurtunity
+{
+ direct,
+ indirect,
+ prohibited,
+ combinedProhibited,
+ combinedIndirect
+};
+
+struct BreakAtom final : public UnicodeAnalysisPoint
+{
+ constexpr bool operator== (BreakClass type) const { return data.bt == type; }
+ constexpr bool operator== (EAWType type) const { return data.asian == type; }
+
+ constexpr auto getBreakClass() const { return data.bt; }
+ constexpr auto getEastAsianWidthType() const { return data.asian; }
+};
+
+static_assert (sizeof (BreakAtom) == sizeof (UnicodeAnalysisPoint), "BreakAtom - UnicodeAnalysisPoint size mismatch");
+
+struct BreakPairTable final : LookUpTable<42, BreakClass, BreakOppurtunity>
+{
+ BreakPairTable()
+ {
+ #include "juce_LineBreakTable.inl"
+ }
+};
+
+static inline BreakClass resolve (BreakClass bc, [[maybe_unused]] bool mnMc = false)
+{
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+ switch (bc)
+ {
+ case BreakClass::ai:
+ case BreakClass::sg:
+ case BreakClass::xx:
+ return BreakClass::al;
+
+ case BreakClass::sa:
+ return BreakClass::al;
+
+ case BreakClass::cj:
+ return BreakClass::ns;
+
+ default: break;
+ }
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+
+ return bc;
+}
+
+static inline BreakClass resolveSOT (BreakClass bc)
+{
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+ switch (bc)
+ {
+ case BreakClass::lf:
+ case BreakClass::nl:
+ return BreakClass::bk;
+
+ case BreakClass::sp:
+ return BreakClass::wj;
+
+ default: break;
+ }
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+
+ return bc;
+}
+
+static const BreakPairTable pairTable;
+
+template
+size_t analyseLineBreaks (Span span, Callback&& callback)
+{
+ uint32_t resultIndex = 0;
+ uint32_t regionalCounter = 0;
+ std::optional lb9;
+ bool lb21a{};
+
+ const auto data = (const BreakAtom*) span.data();
+ const auto len = span.size();
+
+ const auto emit = [&] (auto op) { callback ((int) resultIndex++, op); };
+
+ #define step() i++; continue
+
+ for (size_t i = 0; i < len;)
+ {
+ const auto isSOT = i == 0;
+ const auto isEOT = i == len - 1;
+
+ const auto prev = isSOT ? resolveSOT (resolve (data[i].getBreakClass()))
+ : lb9.value_or (resolve (data[i].getBreakClass()));
+ const auto next = isEOT ? BreakClass::cm
+ : resolve (data[i + 1].getBreakClass());
+
+ lb9.reset();
+
+ if (prev == BreakClass::cr && next == BreakClass::lf)
+ {
+ emit (TextBreakType::none);
+ step();
+ }
+
+ // LB4
+ if (any (prev, BreakClass::bk, BreakClass::lf, BreakClass::nl))
+ {
+ emit (TextBreakType::hard);
+ step();
+ }
+
+ // LB6
+ if (any (next, BreakClass::bk, BreakClass::lf, BreakClass::nl))
+ {
+ emit (TextBreakType::none);
+ step();
+ }
+
+ // LB7
+ if (any (next, BreakClass::sp, BreakClass::zw))
+ {
+ emit (TextBreakType::none);
+ step();
+ }
+
+ // LB13
+ if (any (next, BreakClass::cl, BreakClass::cp, BreakClass::ex, BreakClass::is, BreakClass::sy))
+ {
+ emit (TextBreakType::none);
+ step();
+ }
+
+ // lb21a
+ if (lb21a && any (prev, BreakClass::hy, BreakClass::ba))
+ {
+ emit (TextBreakType::none);
+ step();
+ }
+
+ lb21a = prev == BreakClass::hl;
+
+ // LB30a
+ if (prev == BreakClass::ri)
+ {
+ regionalCounter++;
+
+ if (next == BreakClass::ri && regionalCounter % 2 == 0)
+ {
+ regionalCounter = 0;
+ emit (TextBreakType::soft);
+ step();
+ }
+ }
+ else
+ {
+ regionalCounter = 0;
+ }
+
+ const auto bt = pairTable.get (prev, next);
+
+ switch (bt)
+ {
+ case BreakOppurtunity::direct:
+ {
+ emit (TextBreakType::soft);
+ step();
+ } break;
+
+ case BreakOppurtunity::prohibited:
+ {
+ emit (TextBreakType::none);
+ step();
+ } break;
+
+ case BreakOppurtunity::indirect:
+ {
+ while (i < len)
+ {
+ emit (TextBreakType::none);
+
+ if (resolve (data[i].getBreakClass()) != BreakClass::sp)
+ break;
+
+ i++;
+ }
+
+ step();
+ } break;
+
+ case BreakOppurtunity::combinedIndirect:
+ {
+ lb9 = std::make_optional (prev);
+
+ while (i < len)
+ {
+ emit (TextBreakType::none);
+
+ if (! any (resolve (data[i].getBreakClass()), BreakClass::cm, BreakClass::zwj))
+ break;
+
+ i++;
+ }
+
+ step();
+ } break;
+
+ case BreakOppurtunity::combinedProhibited:
+ {
+ emit (TextBreakType::none);
+ step();
+ } break;
+ }
+
+ step();
+ }
+
+ //emit (TextBreakType::soft);
+
+ #undef emit
+ #undef step
+
+ return resultIndex;
+}
+
+}
diff --git a/modules/juce_graphics/unicode/juce_UnicodeScript.cpp b/modules/juce_graphics/unicode/juce_UnicodeScript.cpp
new file mode 100644
index 0000000000..64cf6f1fed
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeScript.cpp
@@ -0,0 +1,159 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+inline TextScript mapTextScript (UnicodeTextScript type)
+{
+ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum")
+
+ #define CASE(in, out) case UnicodeTextScript::in: return TextScript::out
+ switch (type)
+ {
+ CASE (Common, common);
+ CASE (Emoji, emoji);
+ CASE (Arabic, arabic);
+ CASE (Armenian, armenian);
+ CASE (Bengali, bengali);
+ CASE (Bopomofo, bopomofo);
+ CASE (Cyrillic, cyrillic);
+ CASE (Devanagari, devanagari);
+ CASE (Ethiopic, ethiopic);
+ CASE (Georgian, georgian);
+ CASE (Greek, greek);
+ CASE (Gujarati, gujarati);
+ CASE (Gurmukhi, gurmukhi);
+ CASE (Hangul, hangul);
+ CASE (Han, han);
+ CASE (Hebrew, hebrew);
+ CASE (Hiragana, hiragana);
+ CASE (Katakana, katakana);
+ CASE (Kannada, kannada);
+ CASE (Khmer, khmer);
+ CASE (Lao, lao);
+ CASE (Latin, latin);
+ CASE (Malayalam, malayalam);
+ CASE (Myanmar, myanmar);
+ CASE (Oriya, oriya);
+ CASE (Sinhala, sinhala);
+ CASE (Tamil, tamil);
+ CASE (Telugu, telugu);
+ CASE (Thaana, thaana);
+ CASE (Thai, thai);
+ CASE (Tibetan, tibetan);
+
+ CASE (Adlam, adlam);
+ CASE (Balinese, balinese);
+ CASE (Bamum, bamum);
+ CASE (Batak, batak);
+ CASE (Chakma, chakma);
+ CASE (Cham, cham);
+ CASE (Cherokee, cherokee);
+ CASE (Javanese, javanese);
+ CASE (Kayah_Li, kayahLi);
+ CASE (Tai_Tham, taiTham);
+ CASE (Lepcha, lepcha);
+ CASE (Limbu, limbu);
+ CASE (Lisu, lisu);
+ CASE (Mandaic, mandaic);
+ CASE (Meetei_Mayek, meeteiMayek);
+ CASE (Newa, newa);
+ CASE (Nko, nko);
+ CASE (Ol_Chiki, olChiki);
+ CASE (Osage, osage);
+ CASE (Miao, miao);
+ CASE (Saurashtra, saurashtra);
+ CASE (Sundanese, sundanese);
+ CASE (Syloti_Nagri, sylotiNagri);
+ CASE (Syriac, syriac);
+ CASE (Tai_Le, taiLe);
+ CASE (New_Tai_Lue, newTaiLue);
+ CASE (Tai_Viet, taiViet);
+ CASE (Tifinagh, tifinagh);
+ CASE (Vai, vai);
+ CASE (Wancho, wancho);
+ CASE (Yi, yi);
+
+ CASE (Hanifi_Rohingya, hanifiRohingya);
+ CASE (Nyiakeng_Puachue_Hmong, nyiakengPuachueHmong);
+ CASE (Canadian_Aboriginal, canadianAboriginalSyllabics);
+
+ default: break;
+ }
+ #undef CASE
+
+ JUCE_END_IGNORE_WARNINGS_GCC_LIKE
+
+ return TextScript::common;
+}
+
+// TR24
+// https://www.unicode.org/reports/tr24/tr24-32.html
+namespace tr24
+{
+
+template
+void inline analyseScripts (const Span points, Callback&& callback)
+{
+ bool once = false;
+ UnicodeTextScript previousBaseTextScript = UnicodeTextScript::Common;
+
+ for (size_t i = 0; i < points.size(); i++)
+ {
+ const auto& entry = points[i].data;
+ auto script = entry.script;
+
+ if (! std::exchange (once, true))
+ {
+ if (script == UnicodeTextScript::Inherited)
+ script = UnicodeTextScript::Common;
+
+ previousBaseTextScript = script;
+ }
+
+ if (script == UnicodeTextScript::Common && entry.emoji == EmojiType::extended)
+ script = UnicodeTextScript::Emoji;
+
+ // Last part is a hack..
+ if (script == UnicodeTextScript::Common || script == UnicodeTextScript::Inherited)
+ script = previousBaseTextScript;
+
+ callback ((int) i, mapTextScript (script));
+ previousBaseTextScript = script;
+ }
+}
+}
+
+}
diff --git a/modules/juce_graphics/unicode/juce_UnicodeScript.h b/modules/juce_graphics/unicode/juce_UnicodeScript.h
new file mode 100644
index 0000000000..a022762778
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeScript.h
@@ -0,0 +1,114 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+// https://www.unicode.org/reports/tr31/#Table_Recommended_Scripts
+enum class TextScript
+{
+ // Recommend scripts
+ common,
+ arabic,
+ armenian,
+ bengali,
+ bopomofo,
+ cyrillic,
+ devanagari,
+ ethiopic,
+ georgian,
+ greek,
+ gujarati,
+ gurmukhi,
+ hangul,
+ han,
+ hebrew,
+ hiragana,
+ katakana,
+ kannada,
+ khmer,
+ lao,
+ latin,
+ malayalam,
+ myanmar,
+ oriya,
+ sinhala,
+ tamil,
+ telugu,
+ thaana,
+ thai,
+ tibetan,
+
+ // Limited use
+ adlam,
+ balinese,
+ bamum,
+ batak,
+ chakma,
+ canadianAboriginalSyllabics,
+ cham,
+ cherokee,
+ nyiakengPuachueHmong,
+ javanese,
+ kayahLi,
+ taiTham,
+ lepcha,
+ limbu,
+ lisu,
+ mandaic,
+ meeteiMayek,
+ newa,
+ nko,
+ olChiki,
+ osage,
+ miao,
+ hanifiRohingya,
+ saurashtra,
+ sundanese,
+ sylotiNagri,
+ syriac,
+ taiLe,
+ newTaiLue,
+ taiViet,
+ tifinagh,
+ vai,
+ wancho,
+ yi,
+
+ emoji,
+
+ scriptCount
+};
+
+} // namespace juce
diff --git a/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp b/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp
new file mode 100644
index 0000000000..72fd69854b
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp
@@ -0,0 +1,1675 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+static const int tr14TestDataUncompressedSize = 142812;
+static const uint8_t tr14TestData[26222] = {
+0x78,0x9C,0xAC,0xBD,0x5D,0xAC,0x74,0x5B,0x76,0x9E,0xB5,0xD6,0xE9,0x1F,0xF7,0x77,
+0x56,0xAF,0x4A,0x36,0x74,0x94,0xC6,0x0A,0xD2,0xAA,0x3A,0xB5,0x9D,0x5D,0x70,0x8E,
+0x6B,0x3B,0x76,0x80,0x80,0x20,0xF9,0x90,0x65,0xF1,0xE3,0x1F,0x42,0x40,0x60,0xC5,
+0x46,0xCB,0x6D,0x3B,0xED,0x60,0x62,0x9B,0xD8,0x0E,0x26,0x87,0x6A,0xA2,0x88,0x12,
+0x92,0x93,0x1B,0x5B,0xC1,0x42,0x42,0x42,0x25,0x40,0xEC,0x02,0xDC,0xCA,0x4D,0x09,
+0xE4,0x38,0x56,0x2E,0x50,0x9C,0x18,0x84,0x68,0x04,0xE4,0x2E,0x88,0x1B,0x20,0xCA,
+0x0D,0x8A,0x7C,0x99,0x48,0x66,0x8F,0x55,0xEB,0x1D,0xEF,0x3B,0xC6,0x1C,0xE7,0x1C,
+0x77,0x87,0xB6,0xB6,0xBF,0x5D,0x6F,0xD5,0x78,0x6A,0xD6,0x9A,0x6B,0x56,0xCD,0x67,
+0xCF,0x59,0xEB,0xBC,0xD3,0xBD,0xD7,0x75,0xCB,0x4F,0xD7,0xF5,0x9F,0x5A,0x7E,0x99,
+0x18,0xAC,0xC9,0xE7,0x3E,0x85,0xA4,0xEB,0x3F,0xED,0x09,0x1F,0xF7,0xFA,0xC0,0x77,
+0x96,0x5F,0xBF,0x30,0x49,0xD5,0x84,0x20,0x70,0x90,0x44,0xCE,0x3D,0x75,0xCE,0x9B,
+0xDC,0x9E,0x37,0x4D,0x7B,0xDE,0x94,0xED,0x41,0xBA,0x72,0x6E,0x5A,0x35,0x21,0x08,
+0x1C,0x24,0x91,0x73,0x8B,0x9C,0x21,0xB7,0x67,0xE8,0x34,0xB1,0x2A,0x24,0x91,0xB3,
+0xA6,0xDD,0xCA,0xF9,0x7B,0xBF,0x95,0xDA,0xB3,0x04,0xA1,0x3D,0x48,0x22,0xE7,0x9E,
+0x7A,0x7B,0x4E,0xB9,0x3D,0xA7,0xA6,0x3D,0x48,0x22,0xE7,0x14,0xDB,0x33,0x66,0xCE,
+0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,
+0x73,0xC9,0x9C,0x35,0x10,0xCE,0xA5,0xE4,0x20,0x5D,0x39,0xDD,0x2F,0xA7,0xE3,0xBC,
+0x04,0x81,0x83,0x24,0x72,0xEE,0xA9,0x73,0xFA,0xCC,0xE9,0x1B,0x4E,0x5F,0x72,0xFA,
+0xC8,0xF9,0xDA,0x67,0xD2,0xEB,0x5A,0x03,0xE1,0xDC,0x93,0xFC,0xBA,0x90,0xAE,0x9C,
+0x0F,0xF2,0xF1,0xF9,0xA0,0x39,0x3E,0x1F,0x94,0xC7,0x07,0xE9,0xCA,0xF9,0xE6,0xF7,
+0xD2,0xEB,0x5A,0x82,0xC0,0x41,0x12,0x39,0xDF,0xFC,0x5E,0xE0,0xEC,0xA7,0xD4,0x9E,
+0x35,0x10,0xCE,0x3D,0xC9,0xED,0x41,0xBA,0x72,0xDE,0xCF,0xAF,0xEB,0xFD,0x4E,0x13,
+0xAB,0x42,0x12,0x39,0x6B,0x8A,0xF3,0xA7,0x7B,0x48,0xAF,0x6B,0x09,0x62,0xBF,0x3F,
+0x54,0xAF,0xEB,0x9E,0x7A,0x7B,0xAE,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C,
+0x39,0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDE,0xCD,0xC7,0xE7,0xDD,0xE6,0xF8,
+0x20,0x89,0x9C,0x77,0xE3,0xF1,0x39,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,
+0xFE,0xC6,0xEF,0x4E,0x9C,0x35,0x10,0xCE,0x3D,0xC9,0x1C,0xA4,0x2B,0xE7,0x39,0xB7,
+0x67,0x0D,0x84,0xF3,0x5C,0xB6,0x07,0xE9,0xCA,0x39,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,
+0x48,0x22,0xE7,0x10,0xCF,0xE7,0xC7,0xDC,0x9E,0xC7,0xA6,0x3D,0x8F,0x65,0x7B,0x90,
+0x62,0x5C,0x64,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,
+0xBB,0x92,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x13,0x1F,0x05,0x0D,0x67,0x4D,0xD1,
+0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0xCE,0x3C,0x25,0xCE,0x3C,0x65,
+0x0E,0x92,0x34,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xE7,
+0xFF,0xFE,0x3B,0x7D,0x3C,0x7F,0x96,0x20,0x1C,0x67,0x24,0x91,0x73,0x4F,0xFD,0x38,
+0xFF,0xC3,0xDF,0xD2,0x45,0xCE,0x12,0x04,0x0E,0x92,0xC8,0xB9,0xA7,0xCE,0xF9,0xBB,
+0xBF,0x99,0xDA,0xB3,0x04,0x81,0x83,0x24,0x72,0xEE,0x29,0xC7,0x45,0xEE,0xAF,0x43,
+0xD3,0x5F,0x48,0xD2,0xB8,0x88,0xFD,0xF5,0x94,0x39,0x6B,0x20,0x9C,0xA7,0x92,0x83,
+0x14,0x9F,0xA7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0x33,0x4E,0x89,0xB3,0x06,
+0xC2,0xB9,0x27,0xCD,0xBC,0x65,0x0A,0x9C,0x97,0xDC,0x9E,0x97,0xA6,0x3D,0x2F,0x65,
+0x7B,0x90,0xAE,0x9C,0xCF,0x74,0x9F,0x89,0x9C,0x35,0x10,0xCE,0x3D,0xC9,0x1C,0xA4,
+0x38,0x3E,0x9B,0x7C,0x7C,0x36,0xCD,0xF1,0xD9,0x94,0xC7,0x67,0x13,0xDA,0xF3,0xF6,
+0x39,0x71,0xD6,0x40,0x38,0x6F,0x9F,0x2B,0x0E,0xD2,0x57,0x8E,0x4D,0xC9,0xFD,0x5D,
+0xD4,0x6E,0xD8,0xFD,0x78,0xBB,0xBC,0x27,0xF4,0x02,0x3B,0x0F,0x91,0xF0,0x71,0xCE,
+0xF9,0x02,0xFA,0x0B,0x1C,0xCC,0xF7,0xC9,0x41,0x12,0x39,0x6B,0xDA,0xAD,0x9C,0x37,
+0x5D,0xE2,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x37,0xAD,0xB2,0xFB,
+0x6F,0x0D,0x87,0x5E,0xA0,0x9C,0x5B,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,
+0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,
+0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,
+0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,
+0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,
+0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,
+0x4E,0x1F,0x39,0x5F,0xFB,0x4C,0xE2,0xD0,0x0B,0x50,0x85,0x24,0x72,0xC4,0x0B,0x2C,
+0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,
+0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,
+0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,
+0x72,0xC4,0x0B,0x96,0x7E,0xC7,0x3C,0xDC,0xFB,0xDD,0xE7,0xE1,0xDE,0xEF,0x3E,0x0F,
+0x0F,0xFD,0xCE,0x79,0xB8,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE,
+0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C,0x73,0xC9,0x39,0x47,0x8E,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0xB3,0x56,0xD9,
+0xFD,0xF4,0x02,0x54,0x21,0x89,0x1C,0xF1,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,
+0xF3,0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x7E,0xCC,0xED,0xA1,0x17,0xA0,0x0A,0x49,0xE4,
+0x88,0x17,0x2C,0xE3,0x22,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6,0x91,0xE3,0x5E,0x00,
+0xCE,0xAE,0xE1,0xD0,0x0B,0x94,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x93,0xE8,0x05,
+0x9A,0xAC,0x29,0xFA,0xFD,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x71,0x2F,
+0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC,0x19,0x1A,0xCE,
+0x50,0x72,0x86,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,
+0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,
+0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB,0x8B,0x5E,
+0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0x9F,0xF4,0x55,0xD8,0xFD,0xF4,0x02,0x54,
+0x21,0x89,0x1C,0xF1,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0xF4,0x82,0xF0,0x79,
+0x1A,0x39,0xEE,0x05,0x3E,0x6F,0x99,0x32,0x87,0x5E,0x10,0xE6,0x2D,0x53,0xE0,0xBC,
+0xE4,0xD7,0x45,0x2F,0x40,0x15,0x92,0xC8,0x11,0x2F,0xB0,0x78,0x99,0xDE,0x2B,0x87,
+0x5E,0x80,0x2A,0x24,0x91,0x23,0x5E,0xB0,0x1C,0x9F,0x4D,0x6A,0x0F,0xBD,0xC0,0x8F,
+0xCF,0xA6,0x6A,0x8F,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xBC,0x7D,0xCE,0x1C,0x7A,0x81,
+0x72,0xC4,0x0B,0x6C,0x2A,0xED,0xEF,0xA2,0x76,0x63,0x42,0xE0,0x49,0xF4,0x02,0x24,
+0x7C,0x9C,0x73,0x96,0xCF,0x66,0xE5,0x7C,0x61,0xCA,0x1C,0x24,0x91,0xF3,0x85,0x29,
+0x70,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0xFB,0xF5,0xA6,
+0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,
+0x67,0x5B,0x72,0xB6,0x91,0x73,0xD1,0xA3,0x31,0x75,0xEA,0x05,0xA8,0x42,0x12,0x39,
+0x97,0x2E,0x1C,0x1F,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,
+0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,
+0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,
+0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,
+0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x31,0x0F,0xF7,0x7E,
+0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE,
+0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,
+0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x58,0xFC,0xAC,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,
+0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1,
+0x4B,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC,0x1B,
+0xCE,0xBE,0xE4,0xEC,0x23,0xC7,0xBD,0x00,0x9C,0x5D,0xC3,0xA1,0x17,0x28,0x67,0x17,
+0x39,0x53,0xE6,0x4C,0x9D,0x26,0xD1,0x0B,0x34,0x59,0x53,0xF4,0xFB,0x31,0x73,0x8E,
+0x0D,0xE7,0x58,0x72,0x8E,0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18,
+0x17,0x53,0xE0,0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,
+0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x2C,0xE3,0x22,0xF7,0xD7,0xA1,0xE9,0x2F,0x24,0x69,0x5C,0xC4,0xFE,0x72,
+0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xDC,0x9E,
+0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A,
+0x41,0x98,0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,
+0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,
+0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,0xED,0x11,0x2F,0xB0,0xD8,0xBD,
+0x00,0x9C,0xB7,0xCF,0x99,0x43,0x2F,0x50,0x8E,0x78,0x81,0x4D,0x81,0xDF,0x43,0x7F,
+0xDD,0xBA,0xEC,0x05,0xB7,0x4E,0xBD,0xC0,0x38,0x37,0xE1,0x88,0x17,0x58,0xFC,0x85,
+0x29,0x71,0xE8,0x05,0xA8,0x82,0x01,0x44,0x8E,0x78,0x81,0xC5,0x6F,0x72,0x7B,0xDE,
+0x34,0xED,0x79,0x53,0xB6,0x07,0xE9,0xCA,0xB9,0x65,0xCE,0xAD,0xE1,0xDC,0x4A,0xCE,
+0x2D,0x72,0x86,0xCC,0xA1,0x17,0xA0,0x6A,0x28,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,
+0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,
+0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,
+0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,0x73,
+0x29,0x39,0x48,0x57,0xCE,0x3A,0xE9,0x27,0x87,0x5E,0x80,0x2A,0x18,0x40,0xE4,0x88,
+0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87,
+0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEB,0xA4,0x9F,0x1C,0x7A,0x01,0xAA,0x60,0x00,
+0x91,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB,
+0x43,0xE2,0xD0,0x0B,0xBC,0xDF,0x1F,0x2A,0x8E,0x78,0x81,0xC5,0xD7,0xCC,0xB9,0x36,
+0x9C,0x6B,0xC9,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,
+0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,
+0x9C,0x73,0xC9,0x39,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,
+0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81,
+0xC5,0x87,0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0xFB,0x3E,
+0x22,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0x88,0x17,0x2C,0xE3,0x22,0x73,0xF6,
+0x0D,0x67,0x5F,0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4,
+0x4C,0x99,0x33,0x75,0x9A,0x44,0x2F,0xD0,0x64,0x4D,0xD1,0xEF,0xC7,0xCC,0x39,0x36,
+0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C,
+0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33,0x44,0xCE,0x3A,0xE9,0x27,0x87,
+0x5E,0x80,0x2A,0x18,0x40,0xE4,0x88,0x17,0x58,0xBC,0x4E,0xFA,0xC9,0xA1,0x17,0xA0,
+0x0A,0x06,0x10,0x39,0xE2,0x05,0x16,0xAF,0x93,0x7E,0x72,0xE8,0x05,0xA8,0x82,0x01,
+0x44,0x8E,0x78,0xC1,0x32,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E,
+0x60,0xF1,0x53,0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xCC,
+0xE9,0x1B,0x4E,0x5F,0x72,0xFA,0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82,
+0x30,0x6F,0x99,0x02,0xC7,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xF7,0x11,0x29,0x47,
+0xBC,0xC0,0x62,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x82,
+0xE5,0xF8,0x60,0x1F,0x91,0x1F,0x1F,0xF7,0x02,0x3F,0x3E,0xBE,0x8F,0x28,0x1C,0x9F,
+0x4D,0x68,0x8F,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x53,
+0x57,0x7F,0x17,0x1D,0x3A,0x99,0xEF,0xF7,0x48,0xDC,0x0B,0x7A,0xE3,0x0C,0xC2,0x41,
+0xBA,0x72,0x7C,0xBD,0x00,0x9C,0x35,0x10,0x0E,0x92,0xC8,0xB9,0xA7,0xCE,0x79,0x93,
+0xDB,0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D,0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38,
+0x48,0x22,0xE7,0x16,0x39,0x43,0xE6,0x0C,0xEB,0xFD,0xE4,0x0C,0x65,0x7B,0xD6,0xB4,
+0x5B,0x39,0xEE,0x05,0xE0,0xAC,0x81,0x70,0x90,0x44,0xCE,0x3D,0xF5,0xF6,0x9C,0x72,
+0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C,
+0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9,
+0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,
+0x39,0xF7,0xD4,0x39,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xF8,0x7A,0x01,
+0x38,0x6B,0x20,0x9C,0x7B,0x92,0x5F,0x17,0xD2,0x95,0xF3,0x41,0x3E,0x3E,0x1F,0x34,
+0xC7,0xE7,0x83,0xF2,0xF8,0x20,0x5D,0x39,0xBE,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,
+0xE4,0xDC,0x53,0xE7,0x2C,0xD3,0x7B,0xE5,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2,
+0x95,0xF3,0x7E,0x7E,0x5D,0xEF,0x37,0xE7,0x0F,0x92,0xC8,0x79,0x3F,0x9E,0x3F,0xBE,
+0x5E,0xE0,0xFD,0xFE,0xD0,0xF4,0xFB,0x43,0xD9,0xEF,0x0F,0xA1,0x3D,0xD7,0xCC,0xB9,
+0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,
+0xEF,0xE6,0xE3,0xF3,0x6E,0x73,0x7C,0x90,0x44,0xCE,0xBB,0xF1,0xF8,0x9C,0x33,0xE7,
+0xDC,0x70,0xCE,0x25,0xE7,0x1C,0x39,0xCB,0xF4,0x5E,0x39,0x6B,0x20,0x9C,0x7B,0x92,
+0x39,0x48,0x57,0xCE,0x73,0x6E,0xCF,0x1A,0x08,0xE7,0xB9,0x6C,0x0F,0xD2,0x95,0x73,
+0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0xCF,
+0x63,0xD3,0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,
+0xD9,0x47,0xCE,0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,
+0xF4,0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,
+0xCE,0x32,0xBD,0x0F,0xE3,0x62,0xCA,0x1C,0x24,0x69,0x5C,0x4C,0x81,0x33,0x64,0xCE,
+0xD0,0x70,0x86,0x92,0x33,0x44,0x8E,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39,
+0xF7,0xD4,0x8F,0xB3,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39,0xF7,0xD4,0x39,
+0xBE,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x8E,0x8B,0xDC,0x5F,0x87,
+0xA6,0xBF,0x90,0xA4,0x71,0x11,0xFB,0xEB,0x29,0x73,0x9E,0x9A,0xF3,0xF0,0xA9,0xE4,
+0x20,0xC5,0xE7,0x69,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0x8C,0xB9,0xDF,0xD7,
+0x40,0xE7,0x2D,0x65,0xBF,0x23,0x5D,0x39,0x2F,0xB9,0x3D,0x2F,0x4D,0x7B,0x5E,0xCA,
+0xF6,0xBC,0xC4,0xF6,0xF8,0x7A,0x01,0x38,0x6B,0x20,0x9C,0x7B,0x92,0x39,0x48,0x71,
+0x7C,0x36,0xA9,0x3D,0x6B,0xA0,0xC7,0x67,0x53,0x1E,0x9F,0x4D,0x68,0xCF,0x32,0xBD,
+0x57,0xCE,0x1A,0x08,0xE7,0x9E,0x64,0x0E,0xD2,0x57,0x8E,0x4D,0x39,0xDD,0x0B,0xEC,
+0x86,0xDD,0xBF,0x04,0x9E,0xB8,0x17,0x74,0x76,0x1E,0x22,0xE1,0xE3,0x9C,0xE3,0x5E,
+0x00,0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0xDF,0xE4,0xF6,
+0xBC,0x69,0xDA,0xF3,0xA6,0x6C,0xCF,0x9B,0xD8,0x9E,0x5B,0xE6,0xDC,0x1A,0xCE,0xAD,
+0xE4,0xDC,0x22,0x67,0xB8,0xDF,0x22,0x67,0xE8,0x34,0x71,0x2F,0xE8,0xBA,0xC4,0x59,
+0xD3,0x6E,0xE5,0xB8,0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,
+0x60,0xBF,0x9E,0x72,0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,
+0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,
+0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0x5C,
+0x2F,0x40,0x15,0xF7,0x11,0x29,0x47,0xD6,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38,0x7D,
+0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xEB,
+0x05,0x16,0x7F,0xD0,0x25,0x0E,0xD7,0x0B,0x50,0x85,0x24,0x72,0x64,0xBD,0xC0,0x62,
+0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17,0x58,0xEC,0x5E,
+0x00,0x0E,0xD7,0x0B,0x50,0x85,0x24,0x72,0x64,0xBD,0xC0,0x62,0x5F,0x2F,0x00,0x87,
+0xEB,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,0xBD,0x60,0xE9,0xF7,0x87,0x2E,0xF5,0xBB,
+0xFF,0x7D,0xDE,0xFB,0xDD,0xF7,0xED,0x84,0x7E,0xE7,0xDF,0xE7,0x2D,0xBE,0x66,0xCE,
+0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,
+0xF1,0xF5,0x02,0x70,0xB8,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E,
+0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,
+0x90,0x44,0x8E,0xAC,0x17,0x58,0xFC,0xDC,0x25,0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44,
+0xCA,0x91,0xF5,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3,0xA1,0x3C,0x9F,0x0F,
+0xF1,0x7C,0x7E,0xCC,0xED,0x79,0x6C,0xDA,0xF3,0x58,0xB6,0xE7,0x31,0xB6,0x67,0x9F,
+0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0xF1,0xF5,0x02,0x70,0x76,0x0D,0x87,0xEB,
+0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0xD3,0xEF,0x53,0xC9,0x99,0x62,0xBF,0x1F,
+0x33,0xE7,0xD8,0x70,0x8E,0x25,0xE7,0x18,0x39,0xCB,0xF4,0x5E,0x39,0xF3,0x94,0x39,
+0x48,0xD2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7,
+0x02,0x70,0xB8,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,
+0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1,
+0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0x5C,0x2F,
+0xF0,0x71,0x51,0xF6,0x97,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,
+0x7D,0x44,0xCA,0x91,0xF5,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0x7D,0xD9,0x9E,
+0x3E,0x72,0x7C,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0x70,0xBD,0x20,0xCC,0x5B,0xA6,0xC0,
+0x79,0xD1,0x2A,0xBB,0x8B,0xEB,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5,
+0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0x58,0x8E,0xCF,
+0x26,0xB5,0x87,0xEB,0x05,0x7E,0x7C,0x36,0x55,0x7B,0x64,0xBD,0xC0,0x62,0xF7,0x02,
+0x70,0xDE,0x3E,0x67,0x0E,0x92,0xC8,0x91,0xF5,0x02,0x9B,0x2A,0xFA,0xBB,0xA8,0xDD,
+0x98,0x3A,0xF5,0x02,0x4B,0xA2,0x17,0x20,0xE1,0xE3,0x9C,0xE3,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xFB,0x88,0xC0,0xA1,0x17,0xA0,0x8A,
+0xFB,0x88,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,
+0x78,0x99,0xBB,0x68,0x7B,0x96,0x20,0xB4,0x07,0x49,0xE4,0xDC,0x53,0x6F,0x8F,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0x8E,0x99,0x33,0x36,
+0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,
+0x32,0x67,0x0D,0x84,0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,
+0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,
+0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x8F,0x08,
+0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,
+0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xFB,0x3E,0x22,0x70,0xE8,0x05,0xA8,0xE2,
+0x3E,0x22,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x2C,0xFD,0x8E,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0xBD,0xDF,0x7D,0x1E,0x1E,
+0xFA,0x9D,0xF3,0x70,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C,0x39,
+0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,
+0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xDF,
+0x47,0x04,0x0E,0xE6,0xFB,0xE4,0x70,0x1F,0x91,0x72,0xD6,0x14,0x1C,0xFF,0xB4,0x02,
+0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,
+0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0xE8,0x05,
+0xCA,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC,0x1B,0xCE,0xBE,0xE4,0xEC,0x23,0xC7,0xBD,
+0x00,0x9C,0x5D,0xC3,0xA1,0x17,0x28,0x67,0x17,0x39,0x53,0xE6,0x4C,0x5D,0xEE,0xAF,
+0xA9,0xE4,0xAC,0x29,0xFA,0xEB,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x71,
+0x2F,0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC,0x19,0x1A,
+0xCE,0x50,0x72,0x86,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,
+0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,
+0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB,0x8B,
+0x5E,0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,
+0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0xF4,0x82,0xF0,0x79,
+0x1A,0x39,0xEE,0x05,0x3E,0x6F,0x99,0x32,0x87,0x5E,0x10,0xE6,0x2D,0x53,0xE0,0xBC,
+0x68,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF8,0x6C,0x52,0x7B,0xE8,0x05,
+0x7E,0x7C,0x36,0x55,0x7B,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,0xBC,0xF5,0x1D,0x9B,
+0xA8,0xE2,0x3E,0x22,0xE5,0xBC,0xC5,0x1B,0xEB,0x3B,0xCB,0x14,0xCF,0xDF,0x45,0xC7,
+0x4E,0xE6,0xFB,0x3D,0x12,0xF7,0x82,0x65,0xDD,0x61,0x14,0x0E,0xD2,0x95,0xE3,0x5E,
+0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0x7E,0x93,0xDB,
+0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D,0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38,0xDC,
+0x47,0xA4,0x9C,0x5B,0xE4,0x0C,0x99,0x33,0xAC,0xF7,0x93,0x33,0x94,0xED,0x59,0x53,
+0x1C,0x67,0xF7,0x02,0x70,0xD6,0x40,0x38,0x48,0x22,0xE7,0x9E,0x7A,0x7B,0x4E,0xB9,
+0x3D,0xA7,0xA6,0x3D,0xA7,0xB2,0x3D,0xA7,0xD8,0x9E,0x31,0x73,0xC6,0x86,0x33,0x96,
+0x9C,0x31,0x72,0xB6,0x99,0xB3,0x6D,0x38,0xDB,0x92,0xB3,0x8D,0x9C,0x4B,0xE6,0x5C,
+0x9A,0xFE,0xBA,0x94,0x1C,0xA4,0x2B,0xC7,0xBD,0x00,0x1C,0xEE,0x23,0x42,0x15,0xF7,
+0x11,0x29,0x47,0xF6,0x11,0x59,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,
+0x7B,0x01,0x38,0xDC,0x47,0x84,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xD8,0xD7,
+0x0B,0xC0,0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05,
+0xE0,0x70,0x1F,0x11,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00,
+0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xFB,0x3E,0x22,0x70,
+0xB8,0x8F,0x08,0x55,0xDC,0x47,0xA4,0x1C,0xD9,0x47,0xB4,0xF4,0xFB,0x43,0xE2,0x70,
+0x1F,0x91,0xF7,0xBB,0xEF,0xDB,0x09,0xFD,0xFE,0x10,0xDA,0x73,0xCD,0x9C,0x6B,0xC3,
+0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xE3,0x5E,
+0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44,
+0xE0,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xD7,0x0B,0xC0,0xE1,0x3E,0x22,0x54,
+0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xCF,0xB9,0x3D,0xDC,0x47,0x84,0xAA,0xE7,
+0xB2,0x3D,0xB2,0x8F,0xC8,0xE2,0x43,0x3E,0x9F,0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7,
+0x43,0x3C,0x9F,0x1F,0x73,0x7B,0x1E,0x9B,0xF6,0x3C,0x96,0xED,0x79,0x8C,0xED,0xD9,
+0x67,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92,
+0xB3,0x8B,0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E,0x3F,0x66,0xCE,
+0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0x96,0xE9,0x7D,0x18,0x17,0x53,0xE6,0x20,0x49,
+0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0xDC,0x0B,0xC0,
+0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05,0xE0,0x70,
+0x1F,0x11,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0xF7,0x02,0x70,0xB8,0x8F,
+0x08,0x55,0xDC,0x47,0xA4,0x1C,0xD9,0x47,0xB4,0x8C,0x8B,0xDC,0x5F,0xDC,0x47,0xE4,
+0xE3,0xA2,0xEC,0x2F,0xD9,0x47,0x64,0xF1,0x53,0xE6,0x70,0x1F,0x11,0xAA,0x9E,0x4A,
+0x8E,0xEC,0x23,0x1A,0xEF,0xC4,0xF4,0x79,0xDA,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,
+0x23,0x02,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xBF,0xE4,
+0xF6,0xBC,0x34,0xED,0x79,0x29,0xDB,0xF3,0x12,0xDB,0xE3,0x5E,0x00,0x0E,0xF7,0x11,
+0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x96,0xE3,0xB3,0x49,0xED,0xE1,0x3E,0x22,
+0x3F,0x3E,0x9B,0xAA,0x3D,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00,0x87,0xFB,0x88,0x50,
+0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x36,0x35,0x73,0x2F,0xD8,0xAE,0x9C,0x25,0xF0,
+0xC4,0xBD,0x60,0xF1,0x94,0xAD,0x70,0xEE,0xA9,0x73,0xDC,0x0B,0xC0,0xE1,0x7A,0x01,
+0xAA,0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,
+0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0xA6,0x55,0x53,0xA7,0xEB,0x05,0xA8,0xE2,
+0x7A,0x81,0x72,0x6E,0x91,0xE3,0xEB,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50,
+0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,
+0x7A,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x1E,0x24,0x91,0x73,0x8A,0xED,0x19,0x33,
+0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB,
+0xC8,0xB9,0x64,0xCE,0x1A,0x08,0xE7,0x52,0x72,0x90,0xAE,0x1C,0xF7,0x02,0x70,0xB8,
+0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38,0x7D,
+0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,
+0x02,0x8B,0x3F,0xC8,0xC7,0xE7,0x83,0xE6,0xF8,0x7C,0x50,0x1E,0x1F,0xA4,0x2B,0xC7,
+0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,
+0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,
+0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x82,0xA5,0xDF,0x31,0x0F,0xF7,
+0x7E,0xF7,0xBF,0xCF,0x7B,0xBF,0xFB,0xDF,0xE7,0x43,0xBF,0xF3,0xEF,0xF3,0x16,0x5F,
+0x33,0xE7,0xDA,0x70,0xAE,0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39,
+0x73,0xE4,0xB8,0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60,
+0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0xEB,0x05,0xE0,0x70,0x1F,
+0x11,0xAA,0xB8,0x5E,0xA0,0x1C,0xD9,0x47,0x64,0xF1,0xB3,0x56,0x4D,0x9D,0xAE,0x17,
+0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3,
+0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x7E,0xEC,0x12,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81,
+0x72,0x64,0xBD,0x60,0x19,0x17,0x99,0xB3,0x6F,0x38,0xFB,0x92,0xB3,0x8F,0x1C,0x5F,
+0x2F,0x00,0x67,0xD7,0x70,0xB8,0x5E,0xA0,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x75,0x9A,
+0xF8,0x28,0x68,0x38,0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,
+0x72,0xE6,0x29,0x71,0xE6,0x29,0x73,0x90,0xA4,0x71,0x31,0x05,0xCE,0x90,0x39,0x43,
+0xC3,0x19,0x4A,0xCE,0x10,0x39,0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50,
+0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,
+0x7A,0x81,0xC5,0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,
+0x2C,0xE3,0x22,0xF7,0x17,0xD7,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0xEB,0x05,0x16,0xBB,
+0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60,0x71,0x9F,0xDB,
+0xD3,0x37,0x9C,0xBE,0x6C,0x4F,0x1F,0x39,0xBE,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,
+0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0x2F,0x5A,0x35,0x75,0xBA,0x5E,0x80,0x2A,0xAE,
+0x17,0x28,0x47,0xD6,0x0B,0x2C,0x76,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81,
+0x72,0x64,0xBD,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0xAE,0x17,0xF8,0xF1,0xD9,0x54,0xED,
+0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0xC3,0xF5,0x02,0xE5,0xC8,
+0x3E,0xA2,0x4B,0xE7,0x93,0xFE,0x4F,0x2D,0x37,0x26,0x06,0x6B,0x42,0x2F,0x30,0xCE,
+0x45,0x38,0xE2,0x05,0x16,0xFB,0xF5,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x23,0x52,
+0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xB7,0xCC,0xB9,0x35,0x9C,0x5B,0xC9,0xB9,0x45,0xCE,0x90,0x39,0xF4,0x02,0x54,
+0x0D,0x25,0x47,0xBC,0xC0,0xE2,0x75,0xD2,0x4F,0x0E,0xBD,0x00,0x55,0x30,0x80,0xC8,
+0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,
+0x78,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C,0x1B,0xCE,0xB6,
+0xE4,0x6C,0x23,0xE7,0x92,0x39,0x6B,0x20,0x9C,0x4B,0xC9,0x41,0xBA,0x72,0xFC,0x7A,
+0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x11,0x29,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,
+0x86,0xD3,0x97,0x9C,0x3E,0x72,0xFC,0x7A,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x11,
+0x29,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,
+0xC0,0x62,0xBF,0x1E,0x11,0x38,0xF4,0x02,0x54,0xF1,0x7A,0x44,0xCA,0x11,0x2F,0xB0,
+0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,
+0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xAF,0x47,0x04,0x0E,0xBD,
+0x00,0x55,0xBC,0x1E,0x91,0x72,0xC4,0x0B,0x2C,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B,
+0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87,
+0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,
+0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,
+0x7D,0x75,0x1B,0x1C,0x7A,0x01,0xAA,0x78,0x3D,0x22,0xE5,0x88,0x17,0x58,0x7C,0xC8,
+0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0x0F,0xBD,
+0x00,0x55,0x30,0x80,0xC8,0x11,0x2F,0xB0,0x78,0x9F,0x39,0xFB,0x86,0xB3,0x2F,0x39,
+0xFB,0xC8,0xD9,0x65,0xCE,0xAE,0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A,
+0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,
+0x23,0x67,0x9E,0x12,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0,0x0C,0x99,0x33,
+0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0xD7,0x23,0x02,0x87,0x5E,0x80,0x2A,0x5E,0x8F,
+0x48,0x39,0xE2,0x05,0x16,0xFB,0xF5,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x23,0x52,
+0x8E,0x78,0x81,0xC5,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2,0xF5,0x88,0x94,0x23,
+0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,
+0x53,0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38,
+0x7D,0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,
+0xB0,0xD8,0xAF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xBC,0x1E,0x91,0x72,0xC4,0x0B,0x2C,
+0xF6,0xEB,0x11,0x81,0x43,0x2F,0x40,0x15,0xAF,0x47,0xA4,0x1C,0xF1,0x82,0xE5,0xF8,
+0xE0,0x7A,0x44,0x7E,0x7C,0xDC,0x0B,0xFC,0xF8,0xF8,0xF5,0x88,0xC2,0xF1,0xA1,0x17,
+0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x54,0xC8,
+0xDF,0x45,0xED,0x86,0xDD,0x4F,0x2F,0xB0,0x84,0x5E,0x60,0x9E,0x82,0x84,0x8F,0x73,
+0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xEC,0xFE,
+0x5B,0xC3,0xE1,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,
+0x88,0x17,0x58,0x7C,0xCA,0xED,0x39,0x35,0xED,0x39,0x95,0xED,0x39,0xC5,0xF6,0x8C,
+0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,
+0x6D,0xE4,0x5C,0x32,0xE7,0xD2,0xF4,0xD7,0xA5,0xE4,0x20,0x5D,0x39,0xBE,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0x78,0x81,0xFD,0xDA,0x67,0x4E,0xDF,0x70,
+0xFA,0x92,0xD3,0x47,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,
+0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,
+0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x7E,0x4A,
+0xED,0x59,0x03,0xE1,0xDC,0x93,0xDC,0x1E,0xA4,0x2B,0xC7,0xBD,0x00,0x1C,0x7A,0x01,
+0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xBA,0xEE,0xA1,0x4B,0xFD,0xEE,0xF3,0x70,0xEF,
+0x77,0xFF,0xFB,0x7C,0xE8,0x77,0xCE,0xC3,0x2D,0x76,0x2F,0x00,0xE7,0xDA,0x70,0xE8,
+0x05,0xCA,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C,
+0x73,0xC9,0x39,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xF1,0xB3,0x56,0xD9,0xFD,0xF4,0x02,0x54,0x71,0xBD,0x40,0x39,0xE2,0x05,0x16,
+0x1F,0xF2,0xF9,0x4C,0x2F,0x40,0x15,0x92,0xC8,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x9C,
+0xC7,0xA6,0x3D,0xF4,0x02,0xE5,0x3C,0xC6,0xF6,0xEC,0xBB,0xD4,0x9E,0x7D,0xC3,0xE1,
+0x7A,0x41,0x18,0x17,0x91,0xE3,0x5E,0x00,0xCE,0xAE,0xE1,0xD0,0x0B,0x94,0xB3,0x8B,
+0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,
+0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,
+0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0x7C,0xBD,0x00,0x1C,0x7A,
+0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,
+0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,
+0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC,
+0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xBC,0x60,0xF9,
+0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20,0x7C,0x9E,0x46,0xCE,0x98,0xFB,0x7D,0x0D,
+0x74,0xDE,0x52,0xF6,0x3B,0xD2,0x95,0xF3,0xA2,0x55,0x76,0x17,0xBD,0x00,0x55,0x5C,
+0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,
+0x8E,0x78,0xC1,0x72,0x7C,0x36,0xA9,0x3D,0xF4,0x02,0x3F,0x3E,0x9B,0xAA,0x3D,0xE2,
+0x05,0x16,0xBB,0x17,0x80,0xF3,0xF6,0x39,0x73,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0x29,
+0x8C,0xBF,0x8B,0xF6,0xBF,0x9C,0xBD,0xA0,0xFF,0xE5,0xEC,0x05,0xBD,0x70,0xDE,0xEB,
+0x02,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,
+0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0xA6,0x55,0x76,0xFF,
+0xAD,0xE1,0xD0,0x0B,0x94,0x73,0x8B,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,
+0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,
+0xC0,0xE2,0x53,0x6E,0xCF,0xA9,0x69,0xCF,0xA9,0x6C,0xCF,0x29,0xB6,0x67,0xCC,0x9C,
+0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C,0x1B,0xCE,0xB6,0xE4,0x6C,0x23,
+0xE7,0x92,0x39,0x97,0xA6,0xBF,0x2E,0x25,0x07,0xE9,0xCA,0x59,0xE6,0x88,0x7A,0x9C,
+0x97,0x20,0x70,0x90,0x44,0xCE,0x3D,0x75,0x4E,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,
+0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,
+0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,
+0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEF,0xE7,0xD7,0xF5,0x7E,0xA7,0x49,0xF4,0x02,0xE5,
+0xAC,0x29,0xCE,0x1F,0xF7,0x02,0xEF,0x77,0x9F,0x87,0x7B,0xBF,0xBB,0x17,0x84,0x7E,
+0xE7,0x3C,0xDC,0x62,0xF7,0x02,0x70,0xAE,0x0D,0x87,0x5E,0xA0,0x9C,0x6B,0xE4,0xCC,
+0xB9,0x3D,0x73,0xC3,0x99,0xCB,0xF6,0xCC,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xCE,0x9C,0x73,0xC3,0x39,0x97,0x9C,0x73,0xE4,
+0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x3F,0x6B,0x95,
+0xDD,0x4F,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x1F,0xF2,0xF9,0x7C,0x68,
+0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xEC,0x5E,0x00,0xCE,0x63,0xD3,0x1E,0x7A,
+0x81,0x72,0x1E,0x63,0x7B,0xF6,0x5D,0x6A,0xCF,0xBE,0xE1,0xD0,0x0B,0xC2,0xB8,0x88,
+0x1C,0xF7,0x02,0x70,0x76,0x0D,0x87,0x5E,0xA0,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x35,
+0xFD,0x3E,0x95,0x9C,0x29,0xF6,0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E,0x91,
+0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99,0x33,
+0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,
+0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7,
+0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,
+0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB,0xE7,0x69,0x6E,0x4F,0xDF,0x70,0xE8,0x05,0xE1,
+0xF3,0x34,0x72,0xC6,0xDC,0xEF,0x6B,0xA0,0xF3,0x96,0xB2,0xDF,0x91,0xAE,0x9C,0x17,
+0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,
+0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81,
+0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x79,0xFB,0x9C,0x39,0xF4,
+0x02,0xE5,0x88,0x17,0xD8,0xD4,0xE3,0x3D,0xF4,0x97,0xDD,0xB0,0xFB,0xE9,0x05,0x96,
+0xD0,0x0B,0x8C,0x83,0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,
+0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xF1,0x4D,0xAB,0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,
+0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9,
+0x9E,0x53,0x6C,0xCF,0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9,
+0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE,0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2,
+0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,
+0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,
+0x23,0x52,0x8E,0x78,0x81,0xFD,0xEA,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,
+0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0x87,0xEA,0xA1,0x4B,0xFD,0xEE,
+0xF3,0x70,0xEF,0x77,0x9F,0x87,0x87,0x7E,0xE7,0x3C,0xDC,0xE2,0x6B,0xE6,0x5C,0x1B,
+0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x1C,0xF7,
+0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x73,0xE6,0x9C,0x1B,
+0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,
+0x2F,0xB0,0xF8,0xB9,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xE2,0x05,0x16,
+0x1F,0xF2,0xF9,0x7C,0x68,0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xFC,0x98,0xDB,
+0xF3,0xD8,0xB4,0xE7,0xB1,0x6C,0xCF,0x63,0x6C,0xCF,0x3E,0x73,0xF6,0x0D,0x67,0x5F,
+0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33,
+0x35,0xFD,0x3E,0x95,0x9C,0x29,0xF6,0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E,
+0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99,
+0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,
+0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22,
+0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05,0x16,0x3F,0x65,0x0E,0xBD,0x00,
+0x55,0x4F,0x25,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,
+0x1C,0xF7,0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0x7C,0x1F,
+0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,
+0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0x58,0x8E,0xCF,0x26,0xB5,0x87,0x5E,
+0xE0,0xC7,0x67,0x53,0xB5,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,
+0x17,0x28,0x47,0xBC,0xC0,0xA6,0x0C,0xFE,0x2E,0x6A,0x37,0x26,0x04,0x9E,0xD0,0x0B,
+0xEC,0x3C,0x44,0xC2,0xC7,0x39,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,
+0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,
+0xF8,0xA6,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,
+0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xD1,0xA3,0x31,0x75,0xEA,0x05,0xA8,0x42,
+0x12,0x39,0x97,0x2E,0x1C,0x1F,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,
+0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xBE,0xF6,0x99,0xC4,
+0xA1,0x17,0xA0,0x0A,0x49,0xE4,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0xD8,0xAF,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0xFB,0x29,0xB5,0x67,0x0D,0x84,0x73,0x4F,0x72,0x7B,0x90,0xAE,
+0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x79,0x89,0x98,
+0x87,0x7B,0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xE7,0xE1,0xA1,0xDF,0x39,0x0F,0xB7,0xF8,
+0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67,0x6E,0x38,0x73,0xC9,
+0x99,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,
+0x9C,0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,
+0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,
+0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0x90,0x44,0x8E,0x78,0xC1,0x32,0x2E,0x32,0x67,
+0xDF,0x70,0xF6,0x25,0x67,0x1F,0x39,0xEE,0x05,0xE0,0xEC,0x1A,0x0E,0xBD,0x40,0x39,
+0xBB,0xC8,0x99,0x32,0x67,0xEA,0x34,0x89,0x5E,0xA0,0xC9,0x9A,0xA2,0xDF,0x8F,0x99,
+0x73,0x6C,0x38,0xC7,0x92,0x73,0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,
+0xC2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7,0x02,
+0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,
+0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,
+0x28,0x47,0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E,0xCA,0xFE,0x12,0x2F,
+0xB0,0xD8,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x11,0x2F,0x58,0x3E,
+0x4F,0x73,0x7B,0xFA,0x86,0x43,0x2F,0x08,0x9F,0xA7,0x91,0xE3,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A,
+0xAE,0x17,0x28,0x47,0xBC,0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,
+0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E,
+0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0xFB,
+0xA8,0xF7,0x77,0x51,0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0x89,0x5E,0x80,0x84,0x8F,0x73,
+0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,
+0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xEC,0xFE,0x5B,
+0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9,0x9E,0x53,0x6C,0xCF,0x98,0x39,0x63,
+0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE,
+0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,
+0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,
+0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,
+0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0xBA,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,
+0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,
+0x05,0x4B,0xD3,0x1E,0xBA,0xD4,0xEF,0x3E,0x0F,0xF7,0x7E,0xF7,0x79,0x78,0xE8,0x77,
+0xCE,0xC3,0x2D,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,
+0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,
+0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x9F,0xB5,0xCA,0xEE,0xA7,0x17,
+0xA0,0x8A,0xFB,0x88,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,
+0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17,0x80,0xF3,0xD8,0xB4,0x87,0xEB,0x05,0xCA,
+0x79,0x8C,0xED,0xD9,0x77,0xA9,0x3D,0xFB,0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC,
+0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB,
+0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,
+0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,
+0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0xF4,
+0x02,0x1F,0x17,0x65,0x7F,0x89,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84,0xCF,0xD3,
+0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82,0x30,0x6F,0x99,0x02,0xE7,0x45,
+0xAB,0xEC,0x2E,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,
+0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0x8E,0xCF,0x26,0xB5,0x87,0x5E,0xE0,
+0xC7,0x67,0x53,0xB5,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xDE,0x3E,0x67,0x0E,0xBD,
+0x40,0x39,0xE2,0x05,0xF6,0x11,0xED,0xEF,0xA2,0x76,0xC3,0xEE,0xC7,0xDB,0xE5,0x3D,
+0x89,0x5E,0x80,0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,
+0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,
+0xF1,0x4D,0xAB,0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,
+0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,
+0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,
+0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,
+0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,
+0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0xBA,0x17,0x80,0x43,
+0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x0B,0x12,0xF3,0x70,0xEF,0x77,0x9F,0x87,
+0x7B,0xBF,0xFB,0x3C,0x3C,0xF4,0x3B,0xE7,0xE1,0x16,0x5F,0x33,0xE7,0xDA,0x70,0xAE,
+0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39,0x73,0xE4,0xB8,0x17,0x80,
+0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x33,0xE7,0xDC,0x70,0xCE,
+0x25,0xE7,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xCF,0x5A,0x65,0xF7,0xD3,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x87,
+0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6,0xD0,
+0x0B,0x50,0x85,0x24,0x72,0xC4,0x0B,0x96,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39,
+0xFB,0xC8,0x71,0x2F,0x00,0x67,0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,
+0x53,0xA7,0x49,0xF4,0x02,0x4D,0xD6,0x14,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96,
+0x9C,0x63,0xE4,0xB8,0x17,0xF8,0xB8,0x98,0x32,0x87,0x5E,0x10,0xC6,0xC5,0x14,0x38,
+0x43,0xE6,0x0C,0x0D,0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,
+0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,
+0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB,
+0xB8,0xC8,0xFD,0x45,0x2F,0xF0,0x71,0x51,0xF6,0x97,0x78,0x81,0xC5,0xEE,0x05,0xE0,
+0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x1C,
+0x7A,0x41,0xF8,0x3C,0x8D,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,
+0xBC,0xC0,0xE2,0x17,0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,
+0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B,
+0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x79,
+0xFB,0x9C,0x39,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x47,0xEB,0x7B,0xE8,0x2F,0xBB,0x31,
+0x31,0x58,0x13,0x7A,0x81,0x71,0x90,0xF0,0x71,0xCE,0x71,0x2F,0x00,0x87,0x5E,0x80,
+0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,
+0x72,0xC4,0x0B,0x2C,0xBE,0x69,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0x5E,0xA0,0x9C,0x5B,
+0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,
+0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,
+0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,
+0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,
+0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,
+0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEB,0xA4,0x9F,0x1C,
+0x7A,0x01,0xAA,0x60,0x00,0x91,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,
+0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,
+0x23,0x5E,0x60,0xF1,0x32,0x17,0xD7,0xF6,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2,
+0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xBF,0x62,
+0x1E,0xEE,0xFD,0xEE,0xF3,0x70,0xEF,0x77,0x9F,0x87,0x87,0x7E,0xE7,0x3C,0xDC,0xE2,
+0x6B,0xE6,0x5C,0x1B,0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25,
+0x67,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,
+0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,
+0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x59,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,
+0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,
+0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0x8E,0x7B,0x01,0x38,0xBB,0x86,0x43,0x2F,
+0x50,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A,0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7,
+0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39,
+0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xC7,
+0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,
+0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,
+0xE8,0x05,0xCA,0x11,0x2F,0x58,0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,
+0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,
+0xCF,0xD3,0xDC,0x9E,0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0x8C,0x53,0xE2,0xAC,
+0x81,0xCE,0x5B,0xA6,0x8A,0x83,0x74,0xE5,0xF8,0xF7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,
+0xDF,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xFE,0xFD,0x02,0x70,0xE8,0x05,0xA8,0xE2,0xF7,
+0x0B,0x94,0x23,0x5E,0xB0,0x1C,0x1F,0x7C,0xBF,0xC0,0x8F,0x8F,0x7B,0x81,0x1F,0x1F,
+0xFF,0x7E,0x41,0x38,0x3E,0x9B,0xD0,0x1E,0xF7,0x02,0x70,0xDE,0x3E,0x67,0x0E,0xBD,
+0x40,0x39,0x7A,0x9D,0xD2,0x07,0x59,0x2F,0xB0,0x1B,0x76,0x3F,0xBD,0xC0,0x12,0x7A,
+0xC1,0x72,0x7D,0xA4,0x87,0xD2,0x0B,0x2C,0xE6,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,
+0xAE,0x53,0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21,0x7B,0x01,0xAA,0xE4,
+0x3A,0xA5,0xC2,0xD1,0xEB,0x94,0x3E,0xE8,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE,
+0x53,0x2A,0x9C,0x5B,0xE4,0xF0,0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x25,0xD7,0x29,0x15,
+0x8E,0x5E,0xA7,0xF4,0x41,0xAF,0x53,0xFA,0x90,0xBD,0x00,0x55,0x72,0x9D,0x52,0xE1,
+0xE8,0x75,0x4A,0x1F,0xF4,0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x75,0x2A,0xDB,0x73,0x8A,
+0xED,0x19,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,
+0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xD6,
+0x49,0x3F,0x39,0xF4,0x02,0x54,0xC1,0x00,0x22,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,
+0x86,0xD3,0x97,0x9C,0x3E,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,
+0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,
+0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,
+0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,
+0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F,0x72,0xBF,0xFB,0x3C,0xDC,0xFB,
+0xFD,0xA1,0xEC,0x77,0xCE,0xC3,0xED,0x57,0xF7,0x02,0x70,0xAE,0x0D,0x87,0x5E,0xA0,
+0x9C,0x6B,0xE4,0xCC,0xB9,0x3D,0x73,0xC3,0x99,0xCB,0xF6,0xCC,0x91,0xC3,0xEB,0x94,
+0x3E,0x64,0x2F,0x40,0x95,0x5C,0xA7,0x54,0x38,0x7A,0x9D,0xD2,0x07,0xBD,0x4E,0xE9,
+0x43,0xF6,0x02,0x54,0x9D,0x4B,0xCE,0x39,0x72,0x78,0x9D,0xD2,0x87,0xEC,0x05,0xA8,
+0x92,0xEB,0x94,0x0A,0x47,0xAF,0x53,0xFA,0xA0,0xD7,0x29,0x7D,0xC8,0x5E,0x80,0x2A,
+0xB9,0x4E,0xA9,0x70,0xF4,0x3A,0xA5,0x0F,0x7A,0x9D,0xD2,0x87,0xEC,0x05,0xA8,0xA2,
+0x17,0x28,0x47,0xBC,0xC0,0xE2,0xC7,0x7C,0x7C,0x1E,0x9B,0xF6,0xC0,0x00,0x22,0xE7,
+0x31,0xB6,0x67,0xDF,0xA5,0xF6,0xEC,0x1B,0x8E,0x5C,0xA7,0x54,0xC7,0x45,0xE4,0xF0,
+0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x25,0xD7,0x29,0x15,0xCE,0x2E,0x72,0xA6,0xCC,0x99,
+0x9A,0x7E,0x9F,0x4A,0xCE,0x14,0xFB,0xFD,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,
+0xC8,0x71,0x2F,0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC,
+0x19,0x1A,0xCE,0x50,0x72,0x86,0xC8,0xE1,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE,
+0x53,0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21,0x7B,0x01,0xAA,0xE4,0x3A,
+0xA5,0xC2,0xD1,0xEB,0x94,0x3E,0xE8,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE,0x53,
+0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0x14,0xE3,0xA2,0xE9,0x2F,0xB9,0x4E,0xA9,
+0x8E,0x8B,0xD8,0x5F,0xBC,0x4E,0xE9,0x43,0xF6,0x02,0x54,0xC9,0x75,0x4A,0x85,0xA3,
+0xD7,0x29,0xB5,0xCF,0xD3,0xDC,0x9E,0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8,
+0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBF,0x68,0x95,0xDD,
+0x25,0xD7,0x29,0x7D,0x50,0x2F,0xC8,0xAF,0x4B,0xAF,0x53,0xFA,0xA0,0xD7,0x29,0x7D,
+0xC8,0x5E,0x80,0x2A,0xB9,0x4E,0xA9,0x70,0xF4,0x3A,0xA5,0x76,0x7C,0x36,0xA9,0x3D,
+0x72,0x9D,0x52,0x1C,0x9F,0x4D,0xD5,0x1E,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21,
+0x7B,0x01,0xAA,0xE4,0x3A,0xA5,0xC2,0x11,0x2F,0xB0,0x8F,0x32,0x7F,0x17,0xBD,0x3E,
+0x64,0x2F,0xB8,0x3E,0x64,0x2F,0xB8,0x0A,0xE7,0xBD,0x2E,0x70,0xDC,0x0B,0xC0,0xA1,
+0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,
+0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x6F,0x5A,0x65,0xF7,0xDF,0x1A,0x0E,0xBD,0x40,0x39,
+0xB7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,
+0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE5,0xF6,0x9C,
+0x9A,0xF6,0x9C,0xCA,0xF6,0x9C,0x62,0x7B,0xC6,0xCC,0x19,0x1B,0xCE,0x58,0x72,0xC6,
+0xC8,0xD9,0x66,0xCE,0xB6,0xE1,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0x73,0x69,0xFA,
+0xEB,0x52,0x72,0x90,0xAE,0x1C,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,
+0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,
+0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,
+0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F,
+0x72,0xBF,0x3F,0x34,0xFD,0xFE,0x50,0xF6,0xFB,0x43,0x68,0x8F,0x5F,0xA7,0x14,0x9C,
+0x6B,0xC3,0xE1,0x75,0x4A,0x95,0x73,0x8D,0x9C,0x39,0xB7,0x67,0x6E,0x38,0x73,0xD9,
+0x9E,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,
+0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,
+0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x67,0xAD,0xB2,0xFB,0xE9,0x05,0xA8,0xA2,0x17,
+0x28,0x47,0xBC,0xC0,0xE2,0x43,0x3E,0x9F,0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7,0x43,
+0x3C,0x9F,0xDD,0x0B,0xC0,0x79,0x6C,0xDA,0x43,0x2F,0x50,0xCE,0x63,0x6C,0xCF,0xBE,
+0x4B,0xED,0xD9,0x37,0x1C,0x7A,0x41,0x18,0x17,0x91,0xE3,0x5E,0x00,0xCE,0xAE,0xE1,
+0xD0,0x0B,0x94,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E,
+0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C,0x5C,0x4C,0x99,
+0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,
+0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,
+0x4B,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,
+0xF9,0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20,0x7C,0x9E,0x46,0x8E,0x7B,0x81,0xCF,
+0x5B,0xA6,0xCC,0xA1,0x17,0x84,0x79,0xCB,0x14,0x38,0x2F,0x5A,0x65,0x77,0xD1,0x0B,
+0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,
+0x50,0x8E,0x78,0xC1,0x72,0x7C,0x36,0xA9,0x3D,0xF4,0x02,0x3F,0x3E,0x9B,0xAA,0x3D,
+0xE2,0x05,0x16,0xBB,0x17,0x80,0xF3,0xF6,0x39,0x73,0xE8,0x05,0xCA,0x11,0x2F,0xB0,
+0x8F,0x20,0x7F,0x17,0x9D,0x1F,0xB2,0x17,0xCC,0x0F,0xD9,0x0B,0x66,0xE1,0x88,0x17,
+0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,
+0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xD3,0x2A,0xBB,0xFF,
+0xD6,0x70,0xE8,0x05,0xCA,0xB9,0x45,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,
+0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xF1,0x29,0xB7,0xE7,0xD4,0xB4,0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE,
+0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,
+0x73,0xC9,0x9C,0x4B,0xD3,0x5F,0x97,0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0x43,0x2F,
+0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,
+0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,
+0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x2C,0xFD,0xFE,0x90,0xFB,0xFD,0xA1,0xE9,0xF7,0x87,0xB2,0xDF,0x1F,0x42,0x7B,
+0xDC,0x0B,0xC0,0xB9,0x36,0x1C,0x7A,0x81,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,
+0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC,0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,
+0x7C,0x88,0xE7,0xB3,0x7B,0x01,0x38,0x8F,0x4D,0x7B,0xE8,0x05,0xCA,0x79,0x8C,0xED,
+0xD9,0x77,0xA9,0x3D,0xFB,0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC,0x0B,0xC0,0xD9,
+0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB,0x54,0x72,0xA6,
+0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B,
+0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33,
+0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,
+0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0xF4,0x02,0x1F,0x17,
+0x65,0x7F,0x89,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84,0xCF,0xD3,0xC8,0x71,0x2F,
+0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0xD1,0x2A,0xBB,0x8B,
+0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,
+0xED,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0x43,0x2F,0x50,0x8E,0x78,
+0x81,0x7D,0x74,0xF8,0xBB,0xA8,0xDD,0x98,0x18,0xAC,0x89,0x7B,0x41,0x6F,0x1C,0x24,
+0x7C,0x9C,0x73,0xDC,0x0B,0xC0,0x59,0x03,0xE1,0x20,0x89,0x9C,0x7B,0xEA,0x9C,0x37,
+0xB9,0x3D,0x6F,0x9A,0xF6,0xBC,0x29,0xDB,0xF3,0x26,0xB6,0xE7,0x96,0x39,0xB7,0x86,
+0x83,0x24,0x72,0x6E,0x91,0x33,0x64,0xCE,0xB0,0xDE,0x4F,0xCE,0x50,0xB6,0x67,0x4D,
+0xBB,0x95,0xE3,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x6F,0xCF,0x29,
+0xB7,0xE7,0xD4,0xB4,0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE,0xD8,0x70,0xC6,
+0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,
+0x4B,0xD3,0x5F,0x97,0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,
+0x39,0xF7,0xD4,0x39,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0x80,
+0xB3,0x06,0xC2,0xB9,0x27,0xF9,0x75,0x21,0x5D,0x39,0x1F,0xE4,0xE3,0xF3,0x41,0x73,
+0x7C,0x3E,0x28,0x8F,0x0F,0xD2,0x95,0xE3,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4,
+0xDC,0x53,0xE7,0x2C,0xD3,0x7B,0xE5,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2,0x95,
+0xF3,0x7E,0x7E,0x5D,0xEF,0x37,0xE7,0x0F,0x92,0xC8,0x79,0x3F,0x9E,0x3F,0xEE,0x05,
+0xDE,0xEF,0x0F,0x4D,0xBF,0x3F,0x94,0xFD,0xFE,0x10,0xDA,0x73,0xCD,0x9C,0x6B,0xC3,
+0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xF3,0x6E,
+0x3E,0x3E,0xEF,0x36,0xC7,0x07,0x49,0xE4,0xBC,0x1B,0x8F,0xCF,0x39,0x73,0xCE,0x0D,
+0xE7,0x5C,0x72,0xCE,0x91,0xB3,0x4C,0xEF,0x95,0xB3,0x06,0xC2,0xB9,0x27,0x99,0x83,
+0x74,0xE5,0x3C,0xE7,0xF6,0xAC,0x81,0x70,0x9E,0xCB,0xF6,0x20,0x5D,0x39,0x87,0x7C,
+0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6,0x3C,0x36,
+0xED,0x79,0x2C,0xDB,0xF3,0x18,0xDB,0xB3,0xCF,0x9C,0x7D,0xC3,0xD9,0x97,0x9C,0x7D,
+0xE4,0xEC,0x32,0x67,0xD7,0x70,0x76,0x25,0x67,0x17,0x39,0x53,0xE6,0x4C,0x4D,0xBF,
+0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96,0x9C,0x63,0xE4,0x2C,
+0xD3,0xFB,0x30,0x2E,0xA6,0xCC,0x41,0x92,0xC6,0xC5,0x14,0x38,0x43,0xE6,0x0C,0x0D,
+0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39,0xF7,0xD4,
+0x8F,0xB3,0x7B,0x01,0x38,0x6B,0x20,0x1C,0x24,0x91,0x73,0x4F,0x9D,0xE3,0x5E,0x00,
+0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x8E,0x8B,0xDC,0x5F,0x87,0xA6,0xBF,0x90,
+0xA4,0x71,0x11,0xFB,0xEB,0x29,0x73,0x9E,0x9A,0xF3,0xF0,0xA9,0xE4,0x20,0xC5,0xE7,
+0x69,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0x8C,0xB9,0xDF,0xD7,0x40,0xE7,0x2D,
+0x65,0xBF,0x23,0x5D,0x39,0x2F,0xB9,0x3D,0x2F,0x4D,0x7B,0x5E,0xCA,0xF6,0xBC,0xC4,
+0xF6,0xB8,0x17,0x80,0xB3,0x06,0xC2,0xB9,0x27,0x99,0x83,0x14,0xC7,0x67,0x93,0xDA,
+0xB3,0x06,0x7A,0x7C,0x36,0xE5,0xF1,0xD9,0x84,0xF6,0x2C,0xD3,0x7B,0xE5,0xAC,0x81,
+0x70,0xEE,0x49,0xE6,0x20,0x7D,0xE5,0xD8,0x5B,0xBE,0x7B,0xC1,0x79,0xE5,0xD0,0x0B,
+0xCE,0x5D,0xF6,0x82,0xB3,0x70,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0x93,0xDB,0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D,
+0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38,0xF4,0x02,0xE5,0xDC,0x22,0x67,0xC8,0x1C,
+0x7A,0x01,0xAA,0x86,0xB2,0x3D,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,
+0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x72,0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E,
+0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,
+0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D,
+0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,
+0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,
+0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,
+0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,0x89,0x43,0x2F,0xF0,0x7E,0xF7,0x79,
+0x78,0xE8,0xF7,0x87,0xD0,0x9E,0x6B,0xE6,0x5C,0x1B,0xCE,0xB5,0xE4,0x5C,0x23,0x67,
+0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,
+0x17,0x28,0x47,0xBC,0xC0,0xE2,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,
+0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x39,0xB7,0x87,
+0x5E,0x80,0xAA,0xE7,0xB2,0x3D,0xE2,0x05,0x16,0x1F,0xF2,0xF9,0x7C,0x68,0xCE,0xE7,
+0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xFC,0x98,0xDB,0xF3,0xD8,0xB4,0xE7,0xB1,0x6C,0xCF,
+0x63,0x6C,0xCF,0x3E,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D,
+0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x35,0xFD,0x3E,0x95,0x9C,0x29,0xF6,
+0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E,0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA,
+0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,
+0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9,
+0x5F,0xE2,0x05,0x16,0x3F,0x65,0x0E,0xBD,0x00,0x55,0x4F,0x25,0x47,0xBC,0xE0,0x7C,
+0x27,0xA6,0xCF,0xD3,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x5F,0x72,0x7B,0x5E,0x9A,0xF6,0xBC,0x94,0xED,
+0x79,0x89,0xED,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,
+0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,0xED,0x11,0x2F,0xB0,0xD8,0xBD,
+0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xB7,0x6A,0xF7,0x02,0xBB,
+0x61,0xF7,0x2F,0x81,0x27,0xEE,0x05,0x9D,0x9D,0x87,0x48,0xF8,0x38,0xE7,0xB8,0x17,
+0x80,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x7D,0x1F,0x11,
+0x38,0xDC,0x47,0x84,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xF8,0xA6,0x55,0x76,
+0xFF,0xAD,0xE1,0x70,0x1F,0x91,0x72,0x6E,0x91,0xE3,0xFB,0x88,0xC0,0xE1,0x3E,0x22,
+0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05,0xE0,0x70,0x1F,0x11,0xAA,
+0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0xE2,0x53,0x6E,0xCF,0xA9,0x69,0xCF,0xA9,0x6C,
+0xCF,0x29,0xB6,0x67,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C,
+0x1B,0xCE,0xB6,0xE4,0x6C,0x23,0xE7,0x92,0x39,0x97,0xA6,0xBF,0x2E,0x25,0x07,0xE9,
+0xCA,0x71,0x2F,0x00,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,
+0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xF7,0x11,0xA1,
+0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44,0xE0,0x70,0x1F,0x11,0xAA,
+0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0xF7,0x02,0x70,0xB8,0x8F,0x08,0x55,0xDC,
+0x47,0xA4,0x1C,0xD9,0x47,0x64,0xF1,0x7E,0x4A,0xED,0x59,0x03,0xE1,0xDC,0x93,0xDC,
+0x1E,0xA4,0x2B,0xC7,0xF7,0x11,0x81,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,
+0x3E,0xA2,0xA5,0xDF,0x1F,0xBA,0xD4,0xEF,0xBE,0x6F,0xC7,0xFB,0xFD,0xA1,0xEC,0x77,
+0xEE,0xDB,0xB1,0xF8,0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67,
+0x6E,0x38,0x73,0xC9,0x99,0x23,0xE7,0xDD,0x7C,0x7C,0xDE,0x6D,0x8E,0x0F,0x92,0xC8,
+0x79,0x37,0x1E,0x9F,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xF7,0x11,
+0x81,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0xFB,0xF5,0x59,0xAB,
+0xEC,0x7E,0xEE,0x23,0x42,0x15,0xF7,0x11,0x29,0x47,0xF6,0x11,0x59,0x7C,0xC8,0xE7,
+0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0xCF,0x63,0xD3,
+0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,
+0x8E,0xEF,0x23,0x02,0x67,0xD7,0x70,0xB8,0x8F,0x48,0x39,0xBB,0xC8,0x99,0x32,0x67,
+0x6A,0xFA,0x7D,0x2A,0x39,0x53,0xEC,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,
+0x23,0x67,0x99,0xDE,0x2B,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0,0x0C,0x99,
+0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB,
+0x88,0x94,0x23,0xFB,0x88,0x2C,0x76,0x2F,0x00,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,
+0xCA,0x91,0x7D,0x44,0x16,0xBB,0x17,0x80,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,
+0xC8,0x3E,0xA2,0x65,0x5C,0xE4,0xFE,0xE2,0x3E,0x22,0x1F,0x17,0x65,0x7F,0xC9,0x3E,
+0x22,0x8B,0xDD,0x0B,0xC0,0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0xD1,
+0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x9C,0xBE,0x6C,0x4F,0x1F,0x39,0xBE,0x8F,0xC8,0xE7,
+0x2D,0x53,0xE6,0x70,0x1F,0x51,0x98,0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x76,0x17,0xF7,
+0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0x76,0x2F,0x00,0x87,0xFB,0x88,
+0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0xCB,0xF1,0xD9,0xA4,0xF6,0x70,0x1F,0x91,
+0x1F,0x9F,0x4D,0xD5,0x1E,0xD9,0x47,0x64,0xB1,0xEF,0x23,0x02,0xE7,0xED,0x73,0xE6,
+0x70,0x1F,0x91,0x72,0x64,0x1F,0x91,0xFD,0xF6,0x1E,0xFA,0xCB,0x6E,0x4C,0x0C,0xD6,
+0x84,0x5E,0x60,0x1C,0x24,0x7C,0x9C,0x73,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,
+0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,
+0x02,0x8B,0x6F,0x5A,0x35,0x75,0xEA,0x05,0xA8,0xA2,0x17,0x28,0xE7,0x16,0x39,0xEE,
+0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,
+0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,
+0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,
+0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,
+0xE6,0x9C,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0x7E,0x9D,0x52,0x70,0xE8,0x05,
+0xA8,0xE2,0x75,0x4A,0x95,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,
+0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,
+0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0x3B,0xE6,0xE1,
+0xDE,0xEF,0x3E,0x0F,0xF7,0x7E,0xF7,0x79,0x78,0xE8,0x77,0xCE,0xC3,0x2D,0xBE,0x66,
+0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,
+0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,
+0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,
+0xA0,0x1C,0xF1,0x02,0x8B,0x9F,0x73,0x7B,0xE8,0x05,0xA8,0x82,0x01,0x44,0x8E,0x78,
+0x81,0xFD,0x7A,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,
+0x63,0x6E,0x0F,0xBD,0x00,0x55,0x30,0x80,0xC8,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC,
+0x1B,0xCE,0xBE,0xE4,0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8,
+0x99,0x32,0x67,0xEA,0x34,0x89,0x5E,0xA0,0xC9,0x9A,0xA2,0xDF,0x8F,0x99,0x73,0x6C,
+0x38,0xC7,0x92,0x73,0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8,
+0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7,0x02,0x70,0xE8,
+0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,
+0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,
+0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E,0xCA,0xFE,0x12,0x2F,0xB0,0xF8,
+0x29,0x73,0xE8,0x05,0xA8,0x7A,0x2A,0x39,0xE2,0x05,0xCB,0xE7,0x69,0xE6,0xF4,0x0D,
+0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A,0x41,0x98,0xB7,
+0x4C,0x81,0xE3,0xD7,0x29,0x05,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0xE2,0x05,
+0x16,0xFB,0x75,0x4A,0xC1,0xA1,0x17,0xA0,0x8A,0xD7,0x29,0x55,0x8E,0x78,0xC1,0x72,
+0x7C,0x70,0x9D,0x52,0x3F,0x3E,0xEE,0x05,0x7E,0x7C,0xFC,0x3A,0xA5,0xE1,0xF8,0x6C,
+0x42,0x7B,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x7B,0x6B,
+0x74,0x2F,0xB0,0x1B,0x76,0x3F,0xE6,0xFB,0xF7,0x24,0x7A,0x01,0x12,0x79,0x5C,0xB7,
+0x72,0xBE,0x30,0x25,0x0E,0xE6,0xFB,0xE4,0x20,0x89,0x9C,0x35,0x05,0xE7,0x4D,0x97,
+0x38,0x98,0xEF,0x93,0x43,0x2F,0x50,0xCE,0x9B,0xD8,0x9E,0x5B,0xE6,0xDC,0x1A,0xCE,
+0xAD,0xE4,0xDC,0x22,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0x75,0xD2,
+0x4F,0x0E,0xE6,0xFB,0xE4,0x20,0x89,0x9C,0x35,0x05,0xE7,0xD4,0x25,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,
+0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x4B,0xC3,0xB9,
+0x94,0x9C,0x4B,0xE4,0xF8,0x75,0x4A,0xC1,0xC1,0x7C,0x9F,0x1C,0x5E,0xA7,0x54,0x39,
+0x6B,0x0A,0x4E,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0x60,
+0xBE,0x4F,0x0E,0xBD,0x40,0x39,0x6B,0x0A,0xCE,0x07,0x5D,0xE2,0x60,0xBE,0x4F,0x0E,
+0xBD,0x40,0x39,0x1F,0xC4,0xE3,0xB3,0x4E,0xFA,0xC9,0xC1,0x7C,0x9F,0x1C,0x24,0x91,
+0xF3,0xCD,0xEF,0x05,0x8E,0x7B,0x01,0x38,0x98,0xEF,0x93,0x43,0x2F,0x50,0xCE,0x9A,
+0x82,0xF3,0x7E,0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB,
+0x43,0xEE,0xF7,0x87,0xA6,0xDF,0x1F,0xCA,0x7E,0x7F,0x08,0x9C,0x6B,0xE6,0x5C,0x1B,
+0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x9C,0x77,
+0xBB,0xC4,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,
+0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70,0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C,
+0x35,0x05,0xE7,0xB9,0x4B,0x1C,0xCC,0xF7,0xC9,0xA1,0x17,0x28,0xE7,0x39,0xB6,0xE7,
+0x90,0xCF,0xE7,0x43,0x73,0x3E,0x23,0x89,0x9C,0x43,0x3C,0x9F,0x1F,0xBB,0xC4,0xC1,
+0x7C,0x9F,0x1C,0x7A,0x81,0x72,0x1E,0x63,0x7B,0xF6,0x99,0xB3,0x6F,0x38,0xFB,0x92,
+0xB3,0x8F,0x9C,0x5D,0xE6,0xEC,0x1A,0xCE,0xAE,0xE4,0xEC,0x22,0x67,0xCA,0x9C,0xA9,
+0xE1,0x4C,0x25,0x67,0x8A,0x9C,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,0x23,0xC7,
+0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,
+0x38,0x43,0xC9,0x19,0x22,0x67,0x9D,0xF4,0x93,0x83,0xF9,0x3E,0x39,0x48,0x22,0x67,
+0x4D,0xC1,0x59,0x27,0xFD,0xE4,0x60,0xBE,0x4F,0x0E,0x92,0xC8,0x59,0x53,0x70,0xD6,
+0x49,0x3F,0x39,0x98,0xEF,0x93,0x83,0x24,0x72,0xD6,0xD4,0xC7,0x45,0xEE,0x2F,0x7A,
+0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x7E,0xCA,0x9C,0xA7,0x86,0xF3,0x54,0x72,
+0x9E,0x22,0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0x30,
+0xDF,0x97,0x79,0x4B,0xD9,0xEF,0x63,0xEC,0xF7,0x97,0x2E,0x71,0x30,0xDF,0x27,0x87,
+0x5E,0xA0,0x9C,0x97,0xD8,0x1E,0xF7,0x02,0x70,0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C,
+0x35,0xF5,0xE3,0xB3,0x49,0xED,0xC1,0x7C,0x5F,0x8E,0xCF,0xA6,0x6A,0xCF,0x9A,0x82,
+0xE3,0x5E,0x00,0xCE,0xDB,0xE7,0xCC,0xA1,0x17,0x28,0xE7,0xED,0xB3,0x73,0xEC,0x2D,
+0xCD,0xDF,0x45,0xED,0xC6,0xC4,0x60,0x4D,0xAC,0x0A,0x6F,0xA0,0x9F,0xF6,0x84,0x8F,
+0x5B,0xFC,0xC2,0x62,0x5F,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,
+0xBD,0xC0,0x62,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0,
+0xE2,0x9B,0x56,0x4D,0x9D,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0xB9,0x45,0x8E,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17,0x80,0xC3,
+0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,
+0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18,
+0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE,0x25,0x73,0xD6,0x40,0x38,
+0x97,0x92,0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0x5C,0x2F,0x40,0x15,0xD7,0x0B,0x94,
+0x23,0xEB,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,
+0x0E,0xD7,0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,
+0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0xEB,0x05,0xE0,0x70,0xBD,0x00,
+0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x2C,0xFD,0x8E,0xBF,0xCF,0x7B,0xBF,0xFB,0xDF,0xE7,0xBD,0xDF,0xFD,0xEF,
+0xF3,0xA1,0xDF,0xF9,0xF7,0x79,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,
+0x9C,0x39,0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,
+0x1C,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62,0xFF,
+0xB4,0x02,0x87,0xEB,0x05,0xA8,0xA2,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E,0xE4,0xF3,
+0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1,0x4B,0x9C,0xC7,0xA6,
+0x3D,0x48,0x22,0xE7,0x31,0xB6,0x67,0x9F,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,
+0x71,0x2F,0x00,0x67,0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0xA7,
+0x89,0x8F,0x82,0x86,0xB3,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,
+0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32,
+0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xC7,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,
+0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E,
+0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,
+0x1C,0x59,0x2F,0x58,0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,
+0x2C,0xF6,0x7D,0x44,0xE0,0x70,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0x58,
+0x3E,0x4F,0x73,0x7B,0xFA,0x86,0x43,0x2F,0x08,0x9F,0xA7,0x91,0xE3,0x5E,0x00,0x0E,
+0xD7,0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,
+0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xC7,0x07,0x5E,0xE0,0xC7,0xC7,0xD7,0x0B,0xFC,0xF8,
+0xB8,0x17,0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xA2,0x17,
+0x28,0x47,0xD6,0x0B,0xEC,0xAD,0xC8,0xBD,0x60,0xDF,0x65,0x2F,0xD8,0x77,0xD9,0x0B,
+0xF6,0xC2,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,
+0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,
+0xA6,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E,
+0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,
+0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x35,0x10,0xCE,0xA5,0xE4,0x20,0x5D,
+0x39,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x7D,
+0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,
+0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,
+0x05,0x16,0xFB,0x7A,0x01,0x38,0xF4,0x02,0x54,0x71,0xBD,0x40,0x39,0xE2,0x05,0x16,
+0xEF,0xA7,0xC4,0x59,0x03,0xE1,0xDC,0x93,0xCC,0x41,0xBA,0x72,0xDC,0x0B,0xC0,0xA1,
+0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F,0x12,0x87,0x5E,0xE0,0xFD,
+0xFE,0x50,0x71,0xC4,0x0B,0x2C,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,
+0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,
+0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x39,0x34,0xE7,
+0x33,0xBD,0x40,0x39,0x87,0x78,0x3E,0x3F,0x76,0x89,0x43,0x2F,0x40,0x15,0xBD,0x40,
+0x39,0xE2,0x05,0xCB,0xB8,0xC8,0x9C,0x7D,0xC3,0xD9,0x97,0x9C,0x7D,0xE4,0xB8,0x17,
+0x80,0xB3,0x6B,0x38,0xF4,0x02,0xE5,0xEC,0x22,0x67,0xCA,0x9C,0xA9,0xD3,0x24,0x7A,
+0x81,0x26,0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,
+0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,
+0x33,0x94,0x9C,0x21,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,
+0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,
+0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,
+0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,
+0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20,
+0x7C,0x9E,0x46,0x8E,0x7B,0x81,0xCF,0x5B,0xA6,0xCC,0xA1,0x17,0x84,0x79,0xCB,0x14,
+0x38,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0x72,0x7C,0xE0,0x05,0x7E,0x7C,
+0xDC,0x0B,0xFC,0xF8,0xB8,0x17,0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0x87,0x5E,
+0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0xEC,0x2D,0xC4,0xBD,0x60,0xD7,0x65,0x2F,0xD8,
+0x75,0xD9,0x0B,0x76,0xC2,0x11,0x2F,0xB0,0xD8,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,
+0xF7,0x11,0x29,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,
+0x47,0xBC,0xC0,0xE2,0x5B,0xE6,0xDC,0x1A,0xCE,0xAD,0xE4,0xDC,0x22,0x67,0xC8,0x1C,
+0x7A,0x01,0xAA,0x86,0x92,0x23,0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,
+0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,
+0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,
+0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,
+0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,
+0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,
+0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,
+0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,
+0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB,0x43,0xE2,0xD0,0x0B,0xBC,0xDF,
+0x1F,0x2A,0x8E,0x78,0x81,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE,
+0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,
+0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C,0x73,0xC9,0x39,0x47,0x8E,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,
+0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x21,0x9F,0xCF,0x98,0xEF,0x93,
+0x73,0x28,0xCF,0xE7,0x03,0x3E,0xC0,0xEE,0x9C,0xC7,0xDC,0x1E,0x7A,0x01,0xAA,0x60,
+0x00,0x91,0x23,0x5E,0xB0,0x8C,0x8B,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0xCE,
+0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xE5,0xE3,0x33,
+0x95,0x9C,0x35,0xC5,0xF1,0x39,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,
+0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,
+0x33,0x94,0x9C,0x21,0x72,0x7C,0x1F,0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,
+0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,
+0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB,
+0x8B,0x5E,0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0x9F,0x32,0xE7,0xA9,0xE1,0x3C,
+0x95,0x9C,0xA7,0xC8,0xE9,0x33,0x87,0x5E,0xE0,0x9F,0xA7,0x25,0x47,0xBC,0x60,0x99,
+0xB7,0x4C,0x89,0x43,0x2F,0xF0,0x79,0xCB,0x54,0x71,0xC4,0x0B,0x2C,0x76,0x2F,0x00,
+0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,
+0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0x03,0x2F,0xF0,0xE3,0xE3,0x5E,0xE0,0xC7,
+0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,
+0x94,0x23,0x5E,0x60,0x37,0x7D,0x56,0x30,0x75,0xD9,0x0B,0xA6,0x4E,0xBC,0x60,0xB9,
+0xAE,0xD1,0x24,0x1C,0xA4,0x2B,0xC7,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x29,
+0x55,0x8E,0x5C,0xA7,0xD4,0x7E,0x7B,0xD3,0x25,0x0E,0xBD,0x00,0x55,0xBC,0x4E,0xA9,
+0x72,0xE4,0x3A,0xA5,0x76,0xF3,0x96,0x39,0xB7,0x86,0xC3,0xEB,0x94,0x2A,0xE7,0x16,
+0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x94,0x2A,0x47,0xAE,0x53,0x6A,0x37,
+0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0xE6,
+0x49,0x9F,0x9D,0x81,0xB6,0x87,0xD7,0x29,0x55,0x8E,0x5C,0xA7,0xD4,0x6E,0x8E,0x99,
+0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,
+0xE4,0x5C,0xF4,0x68,0x78,0x10,0x8E,0xCF,0xA5,0xE4,0x20,0x5D,0x39,0xBE,0x8F,0x08,
+0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0x66,0x9F,0x39,0x7D,
+0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2,0x75,0x4A,
+0x95,0x23,0xD7,0x29,0xB5,0x9B,0x1F,0x74,0x89,0x43,0x2F,0x40,0x15,0xAF,0x53,0xAA,
+0x1C,0xB9,0x4E,0xA9,0xDD,0xF4,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x94,0x2A,
+0x47,0xAE,0x53,0x6A,0x37,0x97,0xE9,0xBD,0x72,0xE8,0x05,0xA8,0xBA,0x3F,0x24,0xB7,
+0x07,0xE9,0xCA,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0x72,0x9D,
+0xD2,0xE5,0x99,0xB1,0x6F,0x07,0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75,
+0x4A,0xED,0xE6,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,
+0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA,
+0x91,0xEB,0x94,0xDA,0xCD,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0x67,0x99,
+0xDE,0xEB,0xEB,0xA2,0x17,0xA0,0xEA,0xFE,0x90,0xCC,0x41,0xBA,0x72,0x9E,0xBB,0xC4,
+0xA1,0x17,0xA0,0xEA,0xB9,0x6C,0x0F,0xD2,0x95,0x73,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,
+0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0x3D,0x96,0xED,
+0x41,0x8A,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0xD9,0x65,0xCE,0xAE,
+0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6,0x7B,0x19,0x39,0xF7,0x40,0xFB,0x7D,0x2A,0x39,
+0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xE6,0x29,0x71,
+0xE6,0x29,0x73,0x96,0xA4,0xE1,0xAC,0x29,0x38,0x43,0xE6,0x0C,0x0D,0x67,0x28,0x39,
+0x43,0xE4,0xF8,0x7A,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA,0x91,0xEB,0x94,
+0xDA,0x4D,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xBC,0x4E,0xA9,0x72,0xE4,0x3A,0xA5,
+0x76,0xD3,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xAF,0x53,0xAA,0x1C,0xB9,0x4E,0xA9,
+0xDD,0x74,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0x72,0x9D,0x52,0xBB,
+0xE9,0xEB,0x05,0xE0,0x70,0xBD,0x00,0x55,0x4F,0x25,0x47,0xAE,0x53,0xBA,0x1E,0xF1,
+0xF4,0x79,0xDA,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x5F,0xA7,0x14,0x1C,0x7A,0x01,0xAA,
+0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0xB7,0x97,0x2E,0x71,0xE8,0x05,0xA8,0xE2,
+0x75,0x4A,0x95,0x23,0xD7,0x29,0xB5,0x9B,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2,
+0x75,0x4A,0x95,0x23,0xD7,0x29,0x5D,0x5A,0xB6,0xE9,0xD2,0xF1,0xD9,0xE4,0xF6,0xF0,
+0x3A,0xA5,0xE1,0xF8,0x6C,0x42,0x7B,0xFC,0x3A,0xA5,0xE0,0xBC,0x7D,0xCE,0x1C,0x5E,
+0xA7,0x54,0x39,0x72,0x9D,0x52,0x1B,0xB2,0xFE,0x2E,0x7A,0x5C,0x39,0xF4,0x82,0x63,
+0x27,0x5E,0xD0,0xD9,0x79,0x78,0x14,0xCE,0x3D,0x75,0x8E,0x7B,0x01,0x38,0xF4,0x02,
+0x54,0x71,0x1F,0x91,0x72,0x64,0xBD,0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0xBE,0x69,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0xFB,
+0x88,0x94,0x73,0x8B,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,
+0xBD,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,
+0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0x63,
+0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,
+0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,
+0xBD,0x00,0x55,0xFC,0x7E,0x81,0x72,0x64,0xBD,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,
+0x97,0x9C,0x3E,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0x59,
+0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,
+0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xDF,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,
+0xEB,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0xC1,0xD2,0xEF,0x98,0x87,0x7B,
+0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xF7,0xF3,0x87,0x7E,0xE7,0xDF,0xE7,0x2D,0xBE,0x66,
+0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,
+0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E,
+0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA,
+0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0x59,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0x48,
+0x22,0x47,0xD6,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,
+0xC4,0xF3,0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x5E,0xB0,
+0x8C,0x8B,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0x8E,0xAF,0x17,0x80,0xB3,0x6B,
+0x38,0x5C,0x2F,0x50,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A,0x4D,0x7C,0x14,0x34,0x9C,
+0x35,0x45,0xBF,0x1F,0x33,0xE7,0xD8,0x70,0x8E,0x25,0xE7,0x18,0x39,0xF3,0x94,0x38,
+0xF3,0x94,0x39,0x48,0xD2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,
+0x88,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5,
+0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xEF,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x76,0x2F,
+0x00,0x87,0x5E,0x80,0x2A,0x7E,0xBF,0x40,0x39,0xB2,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,
+0xF4,0x02,0x1F,0x17,0x65,0x7F,0xC9,0x7A,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0xCB,0xE7,0x69,0x6E,0x4F,0xDF,0x70,0xFA,0xB2,
+0x3D,0x7D,0xE4,0xF8,0x7A,0x81,0xCF,0x5B,0xA6,0xCC,0xE1,0x7A,0x41,0x98,0xB7,0x4C,
+0x81,0xF3,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0xB2,0x5E,0x60,
+0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA,0x91,0xF5,0x82,0xE5,0xF8,
+0x6C,0x52,0x7B,0xE8,0x05,0x7E,0x7C,0x36,0x55,0x7B,0x64,0xBD,0xC0,0x62,0x5F,0x2F,
+0x00,0xE7,0xED,0x73,0xE6,0x70,0xBD,0x40,0x39,0xB2,0x5E,0x60,0x43,0xED,0x3D,0xF4,
+0x97,0xDD,0xB0,0xFB,0xE9,0x05,0x96,0xD0,0x0B,0x8C,0x83,0x84,0x8F,0x73,0x8E,0xEF,
+0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,
+0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xB7,0xCC,0xB9,0x35,0x9C,0x5B,
+0xC9,0xB9,0x45,0xCE,0x90,0x39,0xF4,0x02,0x54,0x0D,0x25,0x47,0xBC,0xC0,0x62,0xDF,
+0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xC7,0xCC,0x19,0x1B,0xCE,0x58,
+0x72,0xC6,0xC8,0xD9,0x66,0xCE,0xB6,0xE1,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0xB3,
+0x06,0xC2,0xB9,0x94,0x1C,0xA4,0x2B,0xC7,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xF7,
+0x11,0x29,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,
+0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,
+0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0x1F,0x11,0x38,0xF4,0x02,0x54,
+0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,
+0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,
+0x96,0x7E,0x7F,0x48,0x1C,0x7A,0x81,0xF7,0xFB,0x43,0xC5,0x11,0x2F,0xB0,0xF8,0x9A,
+0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67,0x6E,0x38,0x73,0xC9,0x99,
+0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x9C,
+0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,
+0x81,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,
+0x11,0x2F,0xB0,0xF8,0x90,0xCF,0xE7,0x43,0x73,0x3E,0x1F,0xCA,0xF3,0xF9,0x10,0xCF,
+0x67,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x82,0x65,0x5C,
+0x64,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92,
+0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x93,0xE8,0x05,0x9A,0xAC,0x29,0xFA,0xFD,0x98,
+0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x59,0xC6,0x6A,0x18,0x17,0x53,0xE6,0x20,
+0x49,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0x7C,0x1F,
+0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,
+0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0xB0,0xD8,0xF7,0x11,0x81,0x43,0x2F,
+0x40,0x15,0xF7,0x11,0x29,0x47,0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E,
+0xCA,0xFE,0x12,0x2F,0xB0,0xF8,0x29,0x73,0xE8,0x05,0xA8,0x7A,0x2A,0x39,0xE2,0x05,
+0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xFB,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xFB,
+0x88,0x94,0x23,0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,
+0x8E,0x78,0xC1,0x72,0x7C,0xB0,0x8F,0xC8,0x8F,0x8F,0x7B,0x81,0x1F,0x1F,0xDF,0x47,
+0x14,0x8E,0xCF,0x26,0xB4,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,
+0x2F,0xB0,0x21,0xE2,0xEF,0xA2,0xC3,0x94,0xBD,0x60,0x98,0xC4,0x0B,0x96,0x75,0x87,
+0x41,0x38,0x48,0x57,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xF7,0x11,0x29,0x47,
+0xF6,0x11,0x59,0xFC,0xA6,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,
+0xC8,0xE2,0x5B,0xE6,0xDC,0x1A,0x0E,0xF7,0x11,0x29,0xE7,0x16,0x39,0xEE,0x05,0xE0,
+0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xFB,0x7A,0x01,0x38,0xF4,
+0x02,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xA7,0x2E,0x71,0x4E,0xCD,0xEB,
+0x3A,0x95,0xED,0x39,0xC5,0xF6,0xB8,0x17,0x80,0x43,0x2F,0x40,0xD5,0x58,0x72,0xC6,
+0xC8,0xD9,0xE6,0xF6,0x6C,0x9B,0xF6,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0x73,0x69,
+0x38,0x97,0x92,0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,
+0x72,0x64,0x1F,0x91,0xC5,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xF8,0x3E,
+0x22,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x3F,0xE8,0x12,
+0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xD8,0xD7,0x0B,0xC0,0xA1,
+0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44,0xE0,0xD0,0x0B,
+0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xBF,0x9F,0x5F,0xD7,0xFB,0xCD,0xEB,
+0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0xA2,0xA5,0xDF,0x1F,0x12,0x87,0x5E,0xE0,0xFD,0xEE,
+0xFB,0x76,0x42,0xBF,0x73,0xDF,0x8E,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9,
+0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,
+0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0x9F,0x33,0xE7,0xDC,0x70,0xCE,0x25,
+0xE7,0x1C,0x39,0xBE,0x8F,0x08,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,
+0xC8,0xE2,0xE7,0x2E,0x71,0xE8,0x05,0xA8,0x7A,0x2E,0xDB,0x23,0xFB,0x88,0x2C,0x3E,
+0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0x31,0xB7,0xE7,
+0xB1,0x69,0xCF,0x63,0xD9,0x9E,0xC7,0xD8,0x9E,0x7D,0xE6,0xEC,0x1B,0xCE,0xBE,0xE4,
+0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8,0x99,0x72,0xBF,0x4F,
+0x4D,0xBF,0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0xED,0x39,0x36,0xED,0x39,0x96,0x9C,
+0x63,0xE4,0xD8,0x54,0x24,0x8E,0x8B,0x29,0x73,0xEE,0x0F,0xC9,0x9C,0x35,0x05,0x67,
+0x98,0xD2,0xEB,0x1A,0xC2,0x2B,0x75,0x2F,0x68,0x3F,0x97,0x23,0xC7,0xD7,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0xF5,0x02,0x70,0xE8,
+0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,
+0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0x68,0x19,0x17,0xB9,0xBF,0x0E,0x4D,0x7F,0x71,
+0x1F,0x51,0x18,0x17,0xB1,0xBF,0x9E,0x32,0xE7,0xA9,0xE1,0x3C,0x95,0x1C,0xD9,0x47,
+0xB4,0x7C,0x9E,0x66,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87,
+0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xF8,0xA5,0x4B,0x1C,0x7A,0x01,
+0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,
+0xEE,0x23,0x52,0x8E,0xEC,0x23,0x5A,0x8E,0xCF,0x26,0xB5,0x87,0x5E,0xE0,0xC7,0x67,
+0x53,0xB5,0x47,0xF6,0x11,0x59,0xEC,0xFB,0x88,0xC0,0x79,0xFB,0x9C,0x39,0xDC,0x47,
+0xA4,0x1C,0xD9,0x47,0x64,0xA7,0xB6,0xBF,0x8B,0xDA,0x0D,0xBB,0x9F,0x5E,0x60,0x89,
+0x7B,0x41,0x67,0xE7,0x21,0x12,0x3E,0xCE,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,
+0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,
+0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0xA6,0x55,0x76,0xFF,0xAD,0xE1,0x70,0x1F,0x91,0x72,
+0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58,
+0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0xB0,0xF8,0x94,
+0xDB,0x73,0x6A,0xDA,0x73,0x2A,0xDB,0x73,0x8A,0xED,0x19,0x33,0x67,0x6C,0x38,0x63,
+0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE,
+0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xFB,
+0x88,0x94,0x23,0xEB,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,
+0x5E,0x00,0x0E,0xBD,0x00,0x55,0xFC,0xEF,0x1D,0x2B,0x47,0xD6,0x0B,0x2C,0xF6,0xF5,
+0x02,0x70,0xE8,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62,0xF7,0x02,0x70,
+0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,
+0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0xEB,0x05,0xE0,0x70,0xBD,0x00,
+0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E,0xF7,0x79,0xB8,
+0xF7,0xBB,0xEF,0xDB,0x09,0xFD,0xCE,0xBF,0xCF,0x5B,0x7C,0xCD,0x9C,0x6B,0xC3,0xB9,
+0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xE3,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0x48,0x22,0xE7,0xDD,0x78,0x7C,0xCE,0x99,0x73,0x6E,0x38,0xE7,
+0x92,0x73,0x8E,0x1C,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,
+0x0B,0x2C,0x7E,0xD6,0x2A,0xBB,0x9F,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17,
+0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,
+0x6E,0xCF,0x63,0xD3,0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C,
+0x7D,0xC9,0xD9,0x47,0x8E,0xAF,0x17,0x80,0xB3,0x6B,0x38,0x5C,0x2F,0x50,0xCE,0x2E,
+0x72,0xA6,0xCC,0x99,0x9A,0x7E,0x9F,0x4A,0xCE,0x14,0xFB,0xFD,0x98,0x39,0xC7,0x86,
+0x73,0x2C,0x39,0xC7,0xC8,0x59,0x35,0x40,0xC6,0xC5,0x94,0x39,0x48,0xD2,0xB8,0x98,
+0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0xE5,0xBD,0x43,0x39,0x6B,
+0x20,0x9C,0x7B,0x92,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F,
+0x91,0x72,0x64,0xBD,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,
+0xC8,0x7A,0xC1,0x32,0x2E,0x72,0x7F,0x71,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xB2,0x5E,
+0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0x64,0xBD,0x60,0xF9,
+0x3C,0xCD,0xED,0xE9,0x1B,0x4E,0x5F,0xB6,0xA7,0x8F,0x1C,0x5F,0x2F,0xF0,0x79,0xCB,
+0x94,0x39,0x5C,0x2F,0x08,0xF3,0x96,0x29,0x70,0x5E,0xB4,0xCA,0xEE,0xA2,0x17,0xA0,
+0x8A,0xFB,0x88,0x94,0x23,0xEB,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xF7,
+0x11,0x29,0x47,0xD6,0x0B,0x96,0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,
+0xED,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0xC3,0xF5,0x02,0xE5,
+0xC8,0x7A,0x81,0x9D,0x92,0xFE,0x2E,0x6A,0x37,0xEC,0x7E,0x7A,0x81,0x25,0xD1,0x0B,
+0x90,0xF0,0x71,0xCE,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,
+0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0xBE,0x69,
+0x95,0xDD,0x7F,0x6B,0x38,0xF4,0x02,0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C,0x7A,0x01,
+0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,
+0xCA,0x11,0x2F,0xB0,0xF8,0x94,0xDB,0x73,0x6A,0xDA,0x73,0x2A,0xDB,0x73,0x8A,0xED,
+0x19,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D,
+0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xDC,0x0B,
+0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xFB,0xCC,0xE9,0x1B,0x4E,
+0x5F,0x72,0xFA,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,
+0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,
+0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,
+0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,
+0x81,0x72,0xC4,0x0B,0x96,0x7E,0x7F,0xE8,0x52,0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xE7,
+0xE1,0xA1,0xDF,0x39,0x0F,0xB7,0xF8,0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,
+0x99,0x33,0x67,0x6E,0x38,0x73,0xC9,0x99,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,
+0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x9C,0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8,
+0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0xD6,0x2A,
+0xBB,0x9F,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,
+0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xD9,0xF7,0x11,0x81,0xF3,0xD8,0xB4,0x87,
+0xFB,0x88,0x94,0xF3,0x18,0xDB,0xB3,0xEF,0x52,0x7B,0xF6,0x0D,0x87,0x5E,0x10,0xC6,
+0x45,0xE4,0xB8,0x17,0x80,0xB3,0x6B,0x38,0xF4,0x02,0xE5,0xEC,0x22,0x67,0xCA,0x9C,
+0xA9,0xE9,0xF7,0xA9,0xE4,0x4C,0xB1,0xDF,0x8F,0x99,0x73,0x6C,0x38,0xC7,0x92,0x73,
+0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8,0x98,0x02,0x67,0xC8,
+0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0x65,0x7A,0xAF,0xFD,0x45,0x2F,0x40,0x15,
+0x92,0xC8,0x11,0x2F,0xB0,0x78,0x79,0x0F,0x52,0xCE,0x12,0x04,0x0E,0x92,0xC8,0xB9,
+0xA7,0xCE,0xF1,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0x58,
+0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x76,0x2F,0x00,
+0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xDC,0x9E,0xBE,0xE1,
+0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A,0x41,0x98,
+0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x76,0x17,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,
+0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xC7,0x67,
+0x93,0xDA,0x43,0x2F,0xF0,0xE3,0xB3,0xA9,0xDA,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,
+0x6F,0x9F,0x33,0x87,0x5E,0xA0,0x1C,0xF1,0x02,0x3B,0x95,0xFC,0x5D,0xD4,0x6E,0xD8,
+0xFD,0xF4,0x02,0x4B,0xA2,0x17,0x20,0xE1,0xE3,0x9C,0xE3,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0x7C,0xD3,0x2A,0xBB,0xFF,0xD6,0x70,0xE8,0x05,0xCA,0xB9,0x45,
+0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,
+0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x29,0xB7,0xE7,0xD4,0xB4,
+0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,
+0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x4B,0xD3,0x5F,0x97,
+0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,
+0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,
+0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,
+0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E,
+0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE,
+0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,
+0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,
+0x88,0x17,0x58,0xFC,0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,
+0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xB3,0x7B,
+0x01,0x38,0x8F,0x4D,0x7B,0xE8,0x05,0xCA,0x79,0x8C,0xED,0xD9,0x77,0xA9,0x3D,0xFB,
+0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC,0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72,
+0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,
+0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,
+0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38,
+0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,
+0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0xF2,0x5E,0xA6,0x9C,0x25,0x08,0x1C,0x24,0x91,
+0x73,0x4F,0x39,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E,0x60,0xB1,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x7C,0x9E,0xE6,0xF6,
+0xF4,0x0D,0x87,0x5E,0x10,0x3E,0x4F,0x23,0xC7,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0xD0,
+0x0B,0xC2,0xBC,0x65,0x0A,0x9C,0x17,0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28,
+0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,
+0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD,
+0x0B,0xC0,0x79,0xFB,0x9C,0x39,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x29,0xF0,0x1E,0xFA,
+0xCB,0x6E,0x4C,0x0C,0xD6,0x84,0x5E,0x60,0x1C,0x24,0x7C,0x9C,0x73,0xDC,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,
+0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x6F,0x5A,0x35,0x75,0xEA,0x05,0xA8,0xA2,0x17,
+0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,
+0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,
+0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7F,
+0xEF,0x18,0x1C,0x7A,0x01,0xAA,0xF8,0xBD,0x63,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,
+0x2C,0xFD,0x8E,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0xBD,0xDF,0x7D,0x1E,0x1E,0xFA,0x9D,
+0xF3,0x70,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C,0x39,0x73,0xE6,
+0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,
+0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70,
+0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C,0x35,0x05,0xE7,0xB9,0x4B,0x1C,0x7A,0x01,0xAA,
+0xF8,0xBD,0x63,0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,
+0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4,
+0x0B,0x96,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0x71,0x2F,0x00,0x67,
+0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0x97,0xFB,0x6B,0x2A,0x39,
+0x6B,0x8A,0xFE,0x3A,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C,
+0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,
+0x9C,0x21,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,
+0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,
+0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0x3A,0x34,0xFD,
+0x85,0x24,0x8D,0x8B,0xD8,0x5F,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,
+0x78,0xC1,0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x1C,0x7A,0x41,0xF8,0x3C,0x8D,0x1C,0xF7,
+0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0xFC,0x7B,0xC7,0xE0,
+0xD0,0x0B,0x50,0xC5,0xEF,0x1D,0x2B,0x47,0xBC,0xC0,0x62,0xFF,0xDE,0x31,0x38,0xF4,
+0x02,0x54,0xF1,0x7B,0xC7,0xCA,0x11,0x2F,0x58,0x8E,0x0F,0xBE,0x77,0xEC,0xC7,0xC7,
+0xBD,0xC0,0x8F,0x8F,0x7F,0xEF,0x38,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38,0x6F,
+0xC3,0x3B,0x6D,0xF4,0x02,0xE5,0xBC,0xC5,0x1B,0xEB,0x3B,0x4B,0xD7,0xB9,0x17,0x3C,
+0x75,0x71,0xBE,0x7F,0x4F,0xA2,0x17,0x3C,0x09,0x67,0x4D,0xC1,0xF1,0xEB,0x11,0x81,
+0x83,0xF9,0x3E,0x39,0xBC,0x1E,0x91,0x72,0xD6,0x14,0x9C,0x37,0xB9,0x3D,0x6F,0x9A,
+0xF6,0x20,0x89,0x9C,0x37,0xB1,0x3D,0xB7,0xCC,0xB9,0x35,0x9C,0x5B,0xC9,0xB9,0x45,
+0xCE,0x90,0x39,0x43,0xC3,0x19,0x4A,0xCE,0x10,0x39,0x7E,0x3D,0x22,0x70,0x30,0xDF,
+0x27,0x87,0xD7,0x23,0x52,0xCE,0x9A,0x82,0x73,0xEA,0x12,0x87,0x5E,0x80,0x2A,0x7A,
+0x81,0x72,0xC4,0x0B,0x2C,0x1E,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,
+0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE1,0x5C,0x4A,0xCE,
+0x25,0x72,0xFC,0x7A,0x44,0xE0,0x60,0xBE,0x4F,0x0E,0xAF,0x47,0xA4,0x9C,0x35,0x05,
+0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0x30,0xDF,0x27,
+0x87,0x5E,0xA0,0x9C,0x35,0x05,0xE7,0x83,0x2E,0x71,0x30,0xDF,0x27,0x87,0x5E,0xA0,
+0x9C,0x0F,0xE2,0xF1,0xF1,0xEB,0x11,0x81,0x83,0xF9,0x3E,0x39,0xBC,0x1E,0x91,0x72,
+0xBE,0xF9,0xBD,0xC0,0x71,0x2F,0x00,0x07,0xF3,0x7D,0x72,0xE8,0x05,0xCA,0x59,0x53,
+0x70,0xDE,0xEF,0x12,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x7E,0x7F,
+0x48,0x1C,0xCC,0xF7,0xA5,0xDF,0x1F,0x2A,0xCE,0x9A,0x82,0x73,0xCD,0x9C,0x6B,0xC3,
+0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xF3,0x6E,
+0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D,
+0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x58,0xFC,0xDC,0x25,0x0E,0x3E,0x96,0xC8,0xA1,0x17,0x28,0xE7,0x39,0xB6,0xE7,
+0x90,0xCF,0xE7,0x43,0x73,0x3E,0x1F,0xCA,0xF3,0xF9,0x10,0xCF,0xE7,0xC7,0x2E,0x71,
+0x30,0xDF,0x27,0x87,0xEB,0x05,0xCA,0x79,0x8C,0xED,0xD9,0x67,0xCE,0xBE,0xE1,0xEC,
+0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92,0xB3,0x8B,0x9C,0x29,0x73,
+0xA6,0x86,0x33,0x95,0x9C,0x29,0x72,0x8E,0x99,0x73,0x6C,0x38,0xC7,0x92,0x73,0x8C,
+0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8,0x98,0x02,0x67,0xC8,0x9C,
+0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xFF,0x7E,0x01,0x38,0x98,0xEF,0x93,0xC3,0xEF,
+0x17,0x28,0x67,0x4D,0xC1,0x59,0x27,0xFD,0xE4,0x60,0xBE,0x4F,0x0E,0x92,0xC8,0x59,
+0x53,0x70,0xD6,0x49,0x3F,0x39,0x98,0xEF,0x93,0x83,0x24,0x72,0xD6,0xD4,0xC7,0x45,
+0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x7E,0xCA,0x9C,0xA7,0x86,
+0xF3,0x54,0x72,0x9E,0x22,0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,
+0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0x5E,0xBA,0xC4,0xC1,
+0x7C,0x9F,0x1C,0x7A,0x81,0x72,0x5E,0x62,0x7B,0xDC,0x0B,0xC0,0xC1,0x7C,0x9F,0x1C,
+0x7A,0x81,0x72,0xD6,0xD4,0x8F,0xCF,0xA6,0x8B,0x1C,0xCC,0xF7,0xE5,0xF8,0xB8,0x17,
+0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0xE7,0xED,0x73,0xE6,0xD0,0x0B,0x94,0x23,
+0x5E,0x60,0x87,0xDC,0xDF,0x45,0xFB,0x4E,0xE7,0xFB,0xFD,0x9A,0x44,0x2F,0xE8,0x85,
+0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0x5C,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0xEB,
+0x05,0x16,0xBB,0x17,0x80,0xF3,0xA6,0x69,0x0F,0xBD,0x40,0x39,0x48,0x57,0xCE,0x4D,
+0xAB,0xA6,0x4E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C,
+0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,
+0xAA,0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,
+0x05,0xCA,0x11,0x2F,0xB0,0x78,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,
+0xE6,0x6C,0x1B,0xCE,0xB6,0xE4,0x6C,0x23,0xE7,0x92,0x39,0x6B,0x20,0x9C,0x4B,0xC9,
+0x41,0xBA,0x72,0x7C,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,
+0x82,0xE5,0x9D,0x39,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xE1,
+0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1,0x7A,0x01,
+0xAA,0xE8,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,
+0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xE8,0x05,
+0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,
+0x82,0xA5,0xDF,0xF1,0xF7,0x79,0xEF,0x77,0xFF,0xFB,0xBC,0xF7,0xBB,0xFF,0x7D,0x3E,
+0xF4,0x3B,0xFF,0x3E,0x6F,0xF1,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,
+0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,
+0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,
+0x5E,0x00,0x0E,0xF7,0x11,0xA1,0x8A,0x5E,0xA0,0x1C,0xD9,0x47,0x64,0xB1,0x7F,0x5A,
+0x81,0xC3,0xF5,0x02,0x54,0xD1,0x0B,0x94,0x23,0xEB,0x05,0x16,0x1F,0xF2,0xF9,0x7C,
+0x68,0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xE3,0x22,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6,
+0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x75,0x9A,
+0x44,0x2F,0xD0,0x64,0x4D,0xD1,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,
+0xCE,0x3C,0x25,0xCE,0x3C,0x65,0x0E,0x92,0x34,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,
+0x38,0x43,0xC9,0x19,0x22,0xC7,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,
+0x1C,0x59,0x2F,0xB0,0x5F,0x7C,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,
+0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,
+0xF5,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC,0xC0,0xE2,
+0xA7,0xCC,0x59,0x03,0xE1,0x3C,0x95,0x1C,0xA4,0xF8,0x3C,0xCD,0x9C,0xBE,0xE1,0xF4,
+0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,
+0xC0,0x62,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62,
+0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0x60,0x39,0x3E,0xF0,
+0x02,0x3F,0x3E,0xBE,0x5E,0xE0,0xC7,0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,
+0x01,0x38,0xDC,0x47,0x84,0x2A,0x7A,0x81,0x72,0x64,0x1F,0x91,0x1D,0x2A,0xF7,0x02,
+0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0x89,0x5E,0x80,0x84,0x8F,0x73,0x8E,0xAF,0x17,0x80,
+0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,
+0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xDF,0x32,0xE7,0xD6,0x70,0xE8,0x05,0xCA,0xB9,
+0x45,0xCE,0x90,0x39,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17,
+0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,
+0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,
+0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,
+0x73,0x29,0x39,0x48,0x57,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,
+0xE2,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,
+0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,
+0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,
+0x89,0x43,0x2F,0xF0,0x7E,0xF7,0x79,0x78,0xE8,0x77,0xCE,0xC3,0x2D,0xBE,0x66,0xCE,
+0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,
+0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE,
+0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,
+0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,
+0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3,0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x76,0x2F,
+0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0x39,0xFB,0x86,
+0xB3,0x2F,0x39,0xFB,0xC8,0xD9,0x65,0xCE,0xAE,0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6,
+0xCC,0x99,0x3A,0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,
+0xB1,0xE4,0x1C,0x23,0x67,0x9E,0x12,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0,
+0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0xEB,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,
+0xC1,0x32,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E,0x60,0xF1,0x53,
+0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xCC,0xE9,0x1B,0x4E,
+0x5F,0x72,0xFA,0xC8,0x59,0xDE,0xEB,0xC3,0xBC,0x65,0xCA,0x9C,0x7B,0xD2,0xCC,0x5B,
+0xA6,0xC0,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,
+0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0x03,0x2F,0xF0,
+0xE3,0xE3,0x5E,0xE0,0xC7,0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38,
+0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x2F,0xD1,0xBD,0xC0,0x6E,0x4C,0x0C,
+0xD6,0x24,0x7A,0x01,0x12,0x3E,0xCE,0x39,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x58,0x7C,0xD3,0xAA,0xA9,0x53,0x2F,0x40,0x15,0xBD,0x40,0x39,0xB7,0xC8,0x71,
+0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0xF6,0xF5,0x02,0x70,
+0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,
+0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x31,0x73,0xC6,0x86,0x33,0x96,0x9C,0x31,0x72,
+0xB6,0x99,0xB3,0x6D,0x38,0xDB,0x92,0xB3,0x8D,0x9C,0x4B,0xE6,0xAC,0x81,0x70,0x2E,
+0x25,0x07,0xE9,0xCA,0xF1,0xF5,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,
+0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17,
+0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,
+0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,
+0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,
+0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xFA,0x1D,0x7F,0x9F,
+0xF7,0x7E,0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,
+0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,
+0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,
+0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,
+0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,
+0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xB3,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xCC,0xD9,
+0x37,0x9C,0x7D,0xC9,0xD9,0x47,0xCE,0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91,
+0x33,0x65,0xCE,0xD4,0x69,0x12,0xBD,0x40,0x93,0x35,0x45,0xBF,0x1F,0x33,0xE7,0xD8,
+0x70,0x8E,0x25,0xE7,0x18,0x39,0xEE,0x05,0x3E,0x2E,0xA6,0xCC,0xA1,0x17,0x84,0x71,
+0x31,0x05,0xCE,0x90,0x39,0x43,0xC3,0x19,0x4A,0xCE,0x10,0x39,0xBE,0x5E,0x00,0x0E,
+0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,
+0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05,
+0x16,0x3F,0x65,0x0E,0xBD,0x00,0x55,0x4F,0x25,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0x9C,
+0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,
+0xF3,0x96,0x29,0x70,0x5E,0x72,0x7B,0x5E,0x9A,0xF6,0xBC,0x94,0xED,0x41,0xBA,0x72,
+0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF8,0xC0,0x0B,
+0xFC,0xF8,0xB8,0x17,0xF8,0xF1,0x71,0x2F,0x08,0xC7,0x67,0x13,0xDA,0xE3,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xD3,0xDC,0x0B,0xEC,0x86,0xDD,
+0x4F,0x2F,0xB0,0x24,0x7A,0x01,0x12,0x3E,0xCE,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0x37,0xAD,0xB2,0xFB,0x6F,0x0D,0x87,0x5E,0xA0,0x9C,0x5B,0xE4,
+0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,
+0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x72,0x7B,0x4E,0x4D,0x7B,
+0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,
+0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29,
+0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,
+0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,
+0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,
+0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,0x5D,0xEA,0x77,
+0x9F,0x87,0x7B,0xBF,0xFB,0x3C,0x3C,0xF4,0x3B,0xE7,0xE1,0x16,0x5F,0x33,0xE7,0xDA,
+0x70,0xAE,0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39,0x73,0xE4,0xB8,
+0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x33,0xE7,0xDC,
+0x70,0xCE,0x25,0xE7,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,
+0x78,0x81,0xC5,0xCF,0x5D,0xE2,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,
+0x87,0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6,
+0x3C,0x36,0xED,0x79,0x2C,0xDB,0xF3,0x18,0xDB,0xB3,0xCF,0x9C,0x7D,0xC3,0xD9,0x97,
+0x9C,0x7D,0xE4,0xEC,0x32,0x67,0xD7,0x70,0x76,0x25,0x67,0x17,0x39,0x53,0xE6,0x4C,
+0x4D,0xBF,0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96,0x9C,0x63,
+0xE4,0xB8,0x17,0xF8,0xB8,0x98,0x32,0x87,0x5E,0x10,0xC6,0xC5,0x14,0x38,0x43,0xE6,
+0x0C,0x0D,0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,
+0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,
+0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB,0xB8,0xC8,
+0xFD,0x45,0x2F,0xF0,0x71,0x51,0xF6,0x97,0x78,0x81,0xC5,0x4F,0x99,0x43,0x2F,0x40,
+0xD5,0x53,0xC9,0x11,0x2F,0x58,0x3E,0x4F,0x33,0xA7,0x6F,0x38,0x7D,0xC9,0xE9,0x23,
+0xC7,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0xD0,0x0B,0xC2,0xBC,0x65,0x0A,0x1C,0xF7,0x02,
+0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xE0,0x33,0xEB,0xFF,0x05,0xCE,0x1A,
+0x08,0xE7,0x9E,0x64,0x0E,0x52,0x1C,0x9F,0x4D,0x6A,0x0F,0xBD,0xC0,0x8F,0xCF,0xA6,
+0x6A,0x8F,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,
+0x81,0x21,0xDD,0x0B,0xEC,0x86,0xDD,0x4F,0x2F,0xB0,0x24,0x7A,0x01,0x12,0x3E,0xCE,
+0x39,0xFC,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0x47,0xBF,0x5F,0xB0,
+0xD1,0xEF,0x17,0x6C,0x74,0xBE,0xAF,0x1C,0xF9,0x7E,0x81,0x70,0xF4,0xFB,0x05,0x1B,
+0xFD,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0xE7,0x16,0x39,0xFC,0x7E,
+0xC1,0x26,0xCC,0xF7,0x85,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60,0xA3,0xDF,0x2F,
+0xD8,0xE8,0x7C,0x5F,0xDB,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60,0xA3,0xDF,0x2F,
+0xD8,0x84,0xF9,0xBE,0x70,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,
+0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,
+0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x0E,0xBF,0x5F,0xB0,0xD1,0xF9,0xBE,0x72,
+0xE4,0xFB,0x05,0xC2,0xD1,0xEF,0x17,0xBC,0xC6,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,
+0x7D,0xE4,0xF0,0xFB,0x05,0x1B,0x9D,0xEF,0x2B,0x47,0xBE,0x5F,0x20,0x1C,0xFD,0x7E,
+0xC1,0x46,0xBF,0x5F,0xB0,0xD1,0xF9,0xBE,0x72,0xE4,0xFB,0x05,0xC2,0xD1,0xEF,0x17,
+0x6C,0xF4,0xFB,0x05,0x1B,0x9D,0xEF,0x2B,0x47,0xBE,0x5F,0x20,0x1C,0xFD,0x7E,0xC1,
+0x46,0xD6,0x0B,0xC0,0x91,0xEF,0x17,0x6C,0xF2,0x7A,0x81,0x72,0xF4,0xFB,0x05,0x1B,
+0xFD,0x7E,0xC1,0x26,0xCC,0xF7,0x85,0x43,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,
+0x5D,0xEA,0x77,0xEE,0xE7,0x47,0xBF,0x73,0x3F,0xBF,0xF6,0xBB,0xEC,0xE7,0xDF,0xE8,
+0xF7,0x0B,0x36,0x3A,0xDF,0x57,0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,
+0xCC,0x25,0x67,0x8E,0x1C,0x7E,0xBF,0x60,0x13,0xE6,0xFB,0xC2,0x91,0xEF,0x17,0x08,
+0x47,0xBF,0x5F,0xB0,0xD1,0xEF,0x17,0x6C,0xC2,0x7C,0x5F,0x38,0xE7,0x92,0x73,0x8E,
+0x1C,0x7E,0xBF,0x60,0xA3,0xF3,0x7D,0x7D,0x5D,0xF2,0xFD,0x02,0xE1,0xE8,0xF7,0x0B,
+0x36,0xFA,0xFD,0x82,0x8D,0xCE,0xF7,0x95,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60,
+0xA3,0xDF,0x2F,0xD8,0xE8,0x7C,0x5F,0x39,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0x31,
+0xB7,0xE7,0xB1,0x69,0xCF,0x63,0xD9,0x9E,0xC7,0xD8,0x9E,0x7D,0xE6,0xEC,0x1B,0xCE,
+0xBE,0xE4,0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8,0x99,0x32,
+0x67,0x6A,0xFA,0x7D,0x2A,0x39,0x53,0xEC,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,
+0x1C,0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,
+0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0x87,0xDF,0x2F,0xD8,0xE8,0x7C,0x5F,0x8F,
+0xB3,0x7C,0xBF,0x40,0x38,0xFA,0xFD,0x82,0x8D,0x7E,0xBF,0x60,0xA3,0xF3,0x7D,0xE5,
+0xC8,0xF7,0x0B,0x84,0xA3,0xDF,0x2F,0xD8,0xE8,0xF7,0x0B,0x36,0x3A,0xDF,0x57,0x8E,
+0x7C,0xBF,0x40,0x38,0xFA,0xFD,0x82,0x8D,0x7E,0xBF,0x00,0xE3,0xA2,0xE9,0x2F,0xF9,
+0x7E,0x81,0x8E,0x8B,0xD8,0x5F,0x4F,0x99,0x23,0xDF,0x2F,0xD8,0xE4,0xF5,0x02,0xE5,
+0xE8,0xF7,0x0B,0xEC,0xF3,0x34,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,
+0x7C,0xDE,0x32,0x65,0x0E,0xBD,0x20,0xCC,0x5B,0xA6,0xC0,0x71,0x2F,0x00,0x87,0x5E,
+0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,
+0x81,0x72,0xC4,0x0B,0x96,0xE3,0xB3,0xC9,0xC7,0x67,0xD3,0x1C,0x9F,0x4D,0x79,0x7C,
+0x36,0xA1,0x3D,0xFC,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0x47,0xBC,
+0xC0,0x7E,0xF5,0x77,0x51,0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0xA1,0x17,0xD8,0x79,0x88,
+0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,
+0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,
+0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,
+0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,
+0x8E,0x78,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9,0x9E,0x53,0x6C,0xCF,
+0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9,
+0xD9,0x46,0xCE,0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,
+0x92,0xD3,0x47,0x8E,0xFF,0xF7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xFF,0xFD,0x02,0xE5,
+0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,
+0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,
+0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,
+0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E,0xF7,0x79,0xB8,0xF7,
+0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72,
+0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,
+0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,
+0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC,
+0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55,0x48,0x22,0x47,0xBC,0xC0,0xE2,0x43,0x3E,0x9F,
+0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7,0x43,0x3C,0x9F,0x1F,0x73,0x7B,0x1E,0x9B,0xF6,
+0x3C,0x96,0xED,0x79,0x8C,0xED,0xD9,0x67,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,
+0xDC,0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,
+0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,
+0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,
+0x70,0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,
+0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,
+0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,
+0xF4,0x02,0x1F,0x17,0x65,0x7F,0x89,0x17,0x58,0xFC,0xA4,0xAF,0xC2,0xEE,0xA7,0x17,
+0xA0,0x0A,0x49,0xE4,0x88,0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84,
+0xCF,0xD3,0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82,0x30,0x6F,0x99,0x02,
+0xE7,0x25,0xBF,0x2E,0x7A,0x01,0xAA,0x90,0x44,0x8E,0x78,0x81,0xC5,0xCB,0xF4,0x5E,
+0x39,0xF4,0x02,0x54,0x21,0x89,0x1C,0xF1,0x82,0xE5,0xF8,0x6C,0x52,0x7B,0xE8,0x05,
+0x7E,0x7C,0x36,0x55,0x7B,0xC4,0x0B,0x2C,0x7E,0xFB,0x9C,0x8E,0xCF,0xDB,0xE7,0xCC,
+0x79,0xFB,0x5C,0x1D,0x1F,0xA4,0xFD,0x7D,0x2F,0x89,0x7D,0x7C,0xFC,0xD0,0xFA,0xEF,
+0xF2,0xE1,0xF9,0xDA,0x11,0xF6,0x1C,0x3F,0xC4,0xDB,0x9F,0xF2,0xE3,0xFA,0x5D,0x9F,
+0xBD,0xDF,0xFF,0xA9,0xE5,0x37,0x7C,0xB3,0xE1,0x7E,0x12,0x0D,0x60,0x2F,0xDF,0x80,
+0xD0,0x1B,0xE7,0x70,0xCF,0xE4,0x03,0x24,0xBC,0x51,0xBC,0xB3,0xFC,0x12,0x5E,0x95,
+0xCE,0x05,0xC3,0x97,0x53,0xC3,0x37,0xA1,0xDE,0x59,0xCC,0xE2,0x0B,0x93,0x20,0xD7,
+0x39,0xF8,0x3B,0xCB,0x2F,0xFE,0xCC,0xF6,0xCB,0x07,0xA8,0x91,0x3F,0x79,0xBE,0xB3,
+0x4C,0x51,0xFD,0x86,0xFD,0xE2,0x37,0x9E,0xF5,0x1E,0xF9,0xCF,0x62,0x86,0xBF,0x79,
+0xBD,0xB3,0xBC,0xA7,0xFB,0x8B,0xDA,0xB3,0x53,0xDF,0x59,0x1E,0xEF,0x37,0x6C,0x0A,
+0xB2,0x4E,0x06,0xDE,0x59,0x7E,0xF1,0x1B,0x36,0xA9,0xB8,0xEA,0x3D,0xFE,0xA4,0x76,
+0xE3,0x51,0x9F,0xC7,0x6B,0xE4,0xBF,0x8E,0xF8,0x99,0xEE,0x8F,0xBD,0xFE,0xF3,0xC7,
+0x5F,0x7F,0x7E,0x62,0xED,0xCE,0x7F,0xAB,0x5B,0xFF,0xF7,0x7A,0xDF,0x0F,0xAF,0x99,
+0xDD,0xF7,0x7B,0x5F,0x7F,0x7E,0xE6,0x23,0xEE,0xFB,0x87,0x26,0xBD,0xEF,0xCD,0xF2,
+0xD8,0x5C,0x3B,0xAD,0xBF,0xFF,0xA4,0x72,0x6C,0xEC,0xBE,0x3E,0x5E,0x1F,0x3B,0xAD,
+0x8F,0xD7,0xC7,0xFE,0x5E,0x3E,0xFA,0xF5,0xFF,0x0D,0xDD,0x97,0x5E,0xFF,0xF9,0xD9,
+0xD7,0x9F,0x2F,0x77,0xF7,0x77,0x91,0x9F,0xEE,0xBA,0x70,0x95,0x6D,0xFD,0x91,0xFF,
+0xF5,0x9F,0xFF,0xC8,0xCA,0xCB,0x27,0x57,0xDB,0x13,0x7F,0xEB,0xEB,0x3F,0xF6,0xF3,
+0x95,0xD7,0x0E,0xFC,0xFE,0xD7,0x9F,0x77,0x5E,0x7F,0xFE,0xF5,0xD7,0xDB,0xDF,0xF3,
+0xFA,0xF3,0xDD,0xD6,0xE8,0xE7,0xCE,0x1F,0x63,0xE7,0xCE,0xF2,0xFA,0x96,0xC3,0x65,
+0x2F,0xCF,0x9E,0xFC,0xAB,0xEB,0xBF,0xFF,0x2E,0x5E,0xD1,0x6B,0x7F,0xD8,0xB9,0xF5,
+0xED,0xF7,0x9B,0x9F,0xEE,0x7E,0x74,0x2D,0xFF,0xB2,0x63,0x96,0xB8,0xFB,0xDE,0xF5,
+0xE6,0xF7,0x3A,0xDD,0xE2,0x1F,0x92,0xB6,0x7E,0x69,0x7D,0xF0,0xFA,0x6C,0x88,0xED,
+0xE3,0xEC,0x4B,0x00,0x49,0x89,0x0D,0x92,0x2F,0x81,0xF4,0x6E,0xF7,0x6D,0x12,0xD9,
+0x91,0xF9,0xA1,0xF5,0xC8,0x7C,0xB0,0xDE,0xFE,0x52,0xC7,0x77,0xFE,0xEE,0xFE,0xAA,
+0xC6,0xA5,0x91,0x76,0xF2,0xFC,0xA9,0xD7,0x9F,0x1F,0x95,0x66,0xFC,0xE4,0xFA,0xF3,
+0xE3,0xE9,0x30,0x7F,0xAB,0x94,0xE3,0x95,0x7D,0x65,0xFD,0x0C,0xF9,0x7E,0x7C,0x26,
+0xDD,0xCF,0x09,0x3D,0x2F,0x7F,0x64,0x45,0x5B,0xF9,0x0F,0xAF,0xE8,0x3F,0x11,0xBA,
+0xE6,0x77,0x2E,0x4F,0xFF,0x6F,0x77,0xF7,0xDE,0xC5,0x79,0xFC,0xD3,0x52,0x67,0x07,
+0xF8,0xF7,0xAF,0xB7,0x7F,0x78,0x6D,0xAE,0xB1,0x7F,0x66,0x7D,0x9C,0xBE,0xB0,0xE5,
+0xDF,0xCF,0x84,0x96,0xFF,0xD8,0x5A,0xD2,0xAD,0xF7,0x7D,0xB8,0xDE,0x77,0x8A,0xF7,
+0x2D,0x87,0xF2,0xAF,0xBF,0x73,0xBF,0xEF,0x9F,0x5F,0x9B,0xF1,0xFD,0xEF,0xF0,0xB0,
+0xDA,0xEF,0x87,0x4E,0x86,0xD9,0xBD,0xEC,0xA3,0x8B,0x3E,0x5C,0x7F,0x3F,0xE5,0xA2,
+0xBE,0xFF,0x9C,0x1F,0x8C,0x1F,0x59,0x5B,0x50,0x1E,0x6B,0x7B,0xEC,0x47,0x3F,0xF4,
+0x5B,0xBB,0xD0,0xAF,0x1F,0xF7,0x50,0x7B,0xD8,0xF6,0xB7,0xF7,0xD0,0x6D,0xA6,0xBE,
+0x69,0x1E,0xFA,0x03,0xF2,0xF0,0x1F,0xD0,0x87,0xF7,0xF5,0xE3,0x71,0xF9,0x3C,0x74,
+0xAA,0xE2,0xBB,0xFE,0x9B,0x9A,0xC7,0x6B,0x0F,0x7D,0x74,0x83,0xF5,0x51,0x9F,0x70,
+0xC4,0xF4,0xA1,0xE1,0x30,0xD4,0xAF,0x0D,0x0F,0xFF,0x01,0x6D,0xC3,0x47,0xBC,0xB6,
+0x0F,0xD3,0x6B,0x93,0x36,0x2F,0x27,0x87,0x3E,0xFE,0x69,0xAD,0xB1,0xD7,0xFF,0x2D,
+0x53,0xEC,0x1D,0x3E,0xCB,0x6B,0x91,0xDD,0xF1,0x71,0x85,0x87,0x2E,0x9E,0xF9,0xCD,
+0x33,0x7D,0xB8,0x16,0x9C,0xD6,0x82,0xEA,0x88,0x2E,0x45,0x1F,0xA6,0x67,0xCA,0x85,
+0xA7,0xFC,0x4C,0x7D,0x6A,0x9E,0x0D,0xC4,0x0F,0x3A,0x8E,0x0C,0x7C,0x18,0x7C,0x39,
+0x37,0x2F,0x17,0x7D,0xF5,0x1B,0x29,0x7A,0x98,0xBE,0x81,0x22,0xBC,0x17,0xD6,0x45,
+0xFD,0x47,0x17,0x7D,0xF5,0x1B,0x29,0xB2,0x26,0x7E,0x6C,0xF3,0x3E,0xEC,0xDA,0xA3,
+0x87,0xB7,0x88,0x8F,0x7C,0xA6,0x5C,0xF4,0xD5,0x6F,0xA4,0xC8,0x9A,0xF6,0x75,0x17,
+0x9D,0x7E,0x3B,0x47,0xAF,0x2A,0xFA,0xC4,0xA3,0x57,0x15,0x7D,0xC2,0xD1,0x1B,0x96,
+0x82,0x3F,0xD9,0xDD,0x4F,0xD2,0xFE,0x53,0x1C,0x1A,0xFD,0x2A,0x3D,0x3A,0x54,0xE4,
+0xF9,0xFA,0x87,0xA6,0xF2,0x8F,0xAE,0xBF,0x5B,0xF6,0xEF,0x15,0x44,0xD0,0x30,0x42,
+0x7F,0x30,0x12,0xD7,0x97,0xD1,0x72,0x3F,0xFC,0x3A,0xB9,0xA7,0x92,0x3B,0x2E,0x87,
+0xC0,0x3E,0x2A,0xED,0xA3,0xE4,0x8F,0xAF,0x87,0xE2,0x67,0xD7,0xDA,0xCF,0xA5,0x57,
+0x2B,0xCA,0x27,0x87,0xF8,0x77,0x7C,0x2C,0xE3,0xBF,0x59,0xEB,0x7E,0xB5,0xFB,0x04,
+0x96,0xBF,0xD2,0x4F,0xA2,0x4D,0x1D,0x95,0xE3,0x13,0xA9,0x7D,0x77,0xFF,0x0F,0xDF,
+0xF5,0xFF,0xE0,0x47,0x72,0xC1,0x7C,0x4A,0x6C,0x4C,0x18,0x7F,0xF5,0xE3,0x5B,0xED,
+0xC7,0xF3,0xE3,0x9F,0xE1,0x38,0xD5,0xCF,0x60,0xF9,0x27,0x3F,0xC3,0xFD,0x69,0x3E,
+0xBA,0xB7,0x3E,0xEC,0xF8,0x87,0xFB,0x6F,0xB4,0xB7,0x3E,0xEC,0x62,0x6F,0x7D,0x2C,
+0xEB,0x13,0x7B,0x0B,0x34,0x7D,0xBD,0x9F,0x48,0xFD,0x3A,0x7A,0xEB,0xC3,0xC4,0x3E,
+0x75,0xFF,0x7F,0xF7,0x56,0xF5,0x0C,0x5F,0x4F,0x6F,0xFD,0x2E,0x7F,0xE3,0xFE,0xD3,
+0x1D,0xC7,0xEA,0xBF,0xD3,0xF1,0xAD,0xC8,0xFE,0xB5,0xF7,0x2F,0x7C,0xDE,0xFC,0xC4,
+0xDA,0x92,0x1F,0x95,0x56,0xD9,0xEF,0x36,0x86,0x6D,0xA6,0xFC,0x43,0xED,0xEB,0xF8,
+0xBA,0x9F,0x0B,0x1F,0x1E,0x5F,0xDF,0x73,0x7D,0xFD,0xAF,0x0B,0x9F,0x6C,0xDF,0xC0,
+0x73,0xF1,0x85,0xBD,0x3E,0x17,0xDE,0xBE,0x7F,0x3B,0xC7,0xF0,0xF4,0x0D,0x1C,0x43,
+0x7F,0xB2,0xAF,0xE3,0xB9,0xF0,0x11,0xF2,0xF7,0x73,0x0C,0x7F,0x3B,0xCF,0x85,0xCF,
+0xB7,0xBF,0xBF,0x63,0xB8,0x59,0x58,0x3F,0x25,0xCF,0x63,0x8F,0xFD,0x99,0xF5,0x39,
+0xEC,0xB6,0x7D,0x46,0xD9,0xE7,0x8E,0xF5,0xAB,0xFD,0xE5,0xC1,0xFA,0xEE,0x9F,0x6A,
+0x70,0x5F,0x27,0xC8,0x20,0x1F,0x76,0x69,0xAA,0x7A,0x1F,0xE1,0x9F,0xED,0xDE,0xFF,
+0xF2,0xFD,0x41,0xBF,0xB8,0x3A,0xDD,0x57,0x7F,0xBE,0xEB,0xFE,0xCC,0xF3,0xFD,0x89,
+0x7A,0x13,0x17,0x3C,0xE0,0xF3,0xCF,0xF7,0x07,0x8D,0xC5,0x03,0xE5,0xA1,0x9F,0x7F,
+0x8E,0x3C,0x7B,0x78,0xF3,0xD0,0xFB,0xD3,0x7E,0xB8,0x3E,0xEC,0xF4,0x51,0x4F,0xFB,
+0x61,0x7A,0xDA,0xFC,0x40,0x79,0xE8,0x1F,0xED,0xE2,0xD3,0xFE,0x60,0xF5,0xD0,0x37,
+0xCB,0x43,0xFE,0xC7,0xD7,0xE8,0xFF,0xB2,0xBF,0x20,0xD9,0x5F,0x68,0xD7,0x87,0xFF,
+0xAD,0xF5,0xF6,0x5F,0x7C,0x96,0xC3,0x53,0x3C,0xDE,0x1E,0x6B,0x35,0x1F,0xF5,0xF8,
+0x0F,0x0B,0xFE,0xE9,0x63,0xF8,0xF9,0xF1,0xA7,0x8F,0xE5,0x8F,0x4B,0x7B,0xFE,0xA5,
+0x2F,0x76,0xDD,0x77,0xBD,0xFE,0xFC,0xE1,0xF5,0xDF,0xCF,0x7E,0xF1,0xDE,0xAE,0x7F,
+0xE4,0xF5,0xDF,0xDD,0xEB,0xCF,0x77,0xAC,0xFF,0x7E,0xF0,0xFA,0xF3,0xF9,0x2F,0xA6,
+0xB3,0xF0,0x23,0x18,0x56,0x6F,0x9C,0x8F,0x65,0xF8,0x9F,0x6F,0xC7,0xA5,0xDD,0x55,
+0x3B,0x4E,0x9F,0xDC,0x8E,0xFE,0xE3,0x18,0xA7,0xAF,0xAB,0x1D,0x9B,0xE5,0xB5,0xFC,
+0xD8,0x7A,0xEA,0xDB,0x8F,0x0D,0x89,0x7F,0xB2,0xBB,0xFF,0xDD,0xF0,0xB8,0x9E,0xFA,
+0x3F,0xD7,0x71,0xDE,0x6D,0x3F,0xCD,0x7B,0x41,0xFF,0x0A,0xFA,0xF0,0x13,0x40,0xA7,
+0x4F,0x02,0x2D,0xE3,0xB2,0xFF,0xA2,0x8F,0x5C,0x5B,0xD2,0xFC,0xB6,0xB5,0x05,0xFF,
+0x68,0x77,0x3F,0x39,0x7F,0xDF,0x9A,0x7F,0xFB,0x9A,0xFF,0x47,0xBB,0x7B,0xFE,0x0F,
+0xBC,0xFE,0xFB,0x1D,0xEB,0x7D,0xBF,0x7F,0xBD,0xEF,0x97,0xD6,0xFB,0xFE,0xB1,0x35,
+0xFF,0xC7,0xBB,0x8F,0xFC,0x7C,0xBB,0x3F,0xFF,0x17,0x97,0xD7,0xA0,0x4F,0x7D,0x5A,
+0x9F,0xFA,0xC3,0xF4,0xD4,0xA7,0xF5,0xA9,0x3F,0x2C,0x9E,0xFA,0xB4,0x3E,0xF5,0x87,
+0xE9,0xA9,0x4F,0xE9,0xD9,0xF4,0x9F,0xF5,0x2F,0xC9,0xEB,0x5F,0xA8,0x3E,0xE5,0x37,
+0xA6,0xF5,0x41,0x9F,0x0E,0xC9,0x0F,0xE3,0xA0,0xDF,0xAB,0xBE,0x72,0xFF,0xD3,0xED,
+0x37,0x75,0x7F,0xE0,0x4D,0xD7,0xFD,0xC1,0xD7,0x9F,0xA7,0xD7,0x9F,0xEF,0x79,0xFD,
+0xF9,0x96,0xD7,0x9F,0x3F,0xF4,0x26,0xFC,0x6D,0xAF,0xFF,0x7C,0x77,0x7C,0x4D,0xFE,
+0x89,0xD7,0x9F,0xDF,0xFD,0xFA,0xF3,0xF6,0xF5,0xE7,0x9B,0xD7,0xAA,0xFD,0xFA,0x68,
+0xDC,0xFF,0xCF,0xC4,0x4A,0xB4,0xF3,0xA7,0xFE,0x48,0xB7,0xBC,0x5D,0x2C,0x4F,0xCF,
+0xF7,0x07,0xFB,0x63,0xDE,0x1F,0xEE,0xBA,0xFF,0xE4,0x5F,0xEE,0xBA,0x7F,0xED,0x35,
+0xB8,0xDE,0x43,0xFB,0x3B,0xFB,0xF7,0x7C,0xDF,0xFD,0x4F,0x87,0x5F,0xFC,0x79,0x34,
+0xDA,0xCA,0xDF,0xC1,0x9F,0xB0,0xFF,0xF4,0x2F,0xDD,0xDF,0x99,0x7E,0xC2,0xFF,0x30,
+0x6F,0xF5,0xFF,0xE1,0xEB,0xCF,0x77,0x79,0x62,0xAF,0xD0,0x5E,0xE9,0xFA,0xBC,0xAF,
+0x6F,0x58,0xBF,0xFE,0x57,0xBB,0xEE,0xF6,0xFA,0xF3,0x17,0x7E,0xFD,0xDE,0x48,0xBC,
+0x69,0xDB,0xEF,0xBF,0xFA,0x97,0x96,0x47,0xDD,0xDF,0x07,0x3F,0xED,0xC5,0x7E,0x3C,
+0xFB,0xE5,0x75,0x7C,0xF9,0x35,0xFE,0xF7,0xBF,0x6F,0x6D,0x91,0xFD,0x39,0xEE,0xCF,
+0x3D,0xAF,0xCF,0x66,0x2D,0xF9,0x5F,0x5E,0x7F,0x7E,0x73,0x7D,0x0D,0x9F,0xBD,0xB7,
+0xE4,0xF5,0xE7,0x9F,0x5B,0xFF,0xFD,0x17,0xD6,0x77,0x53,0xFF,0x08,0xF8,0x73,0xEB,
+0xEA,0xC2,0x1F,0xFA,0x6B,0xAF,0xD1,0xDA,0xA4,0x1F,0x5F,0x9B,0xBF,0x34,0x42,0x5F,
+0xD3,0x3B,0xA8,0xFC,0x54,0xF7,0x7F,0xE2,0x85,0x7F,0xEF,0xFD,0xA9,0xDE,0xE9,0xFE,
+0xF7,0xD7,0x5B,0x7F,0x1B,0x47,0x14,0x37,0xEC,0x7D,0xEC,0x2B,0x7F,0xAA,0xC3,0x5B,
+0xDE,0xFF,0x26,0x6F,0x77,0x7F,0xE5,0xF5,0x07,0x2F,0xE5,0xE9,0x67,0x3B,0xBE,0x92,
+0xFB,0xE1,0x5F,0x9A,0xFF,0x57,0xD6,0xC7,0x7E,0x75,0xFD,0xD7,0xDE,0xE1,0xFF,0xF2,
+0x97,0xD6,0x46,0xD8,0x2B,0xFE,0xEF,0x5E,0x83,0xFF,0x07,0xAF,0xD8,0xFF,0x6E,0x6A,
+0x7F,0x21,0xFA,0x7D,0x7E,0x12,0xF6,0xF8,0xC3,0xAE,0xC6,0xBF,0xEB,0x0D,0x28,0xED,
+0x7D,0x4B,0x67,0x15,0xF7,0xD9,0x01,0xFC,0xB8,0xFB,0xBE,0xF2,0xFC,0xD1,0xF7,0x7D,
+0x7B,0x17,0xEF,0xFB,0xD2,0x7A,0xFF,0x84,0xC7,0x2C,0xCD,0xFF,0x4C,0xF7,0x76,0xCD,
+0xBF,0x4D,0x4F,0x89,0xF5,0xE8,0xED,0x7F,0xED,0x7E,0xEA,0xA0,0xEE,0x6D,0x17,0xDB,
+0xFD,0xF7,0xFE,0xF2,0x7A,0x8E,0xAC,0x8F,0xFF,0x9D,0xBF,0x76,0x3F,0xCD,0xF2,0xE3,
+0xBF,0x3D,0x9C,0x6E,0x78,0xFC,0xE7,0xCA,0xC7,0x7E,0x47,0x68,0xC7,0xFA,0xD0,0xF6,
+0xE5,0x7D,0xDE,0x5F,0xFA,0xB0,0x9C,0x3E,0x76,0xFB,0x6B,0xCF,0xFC,0x93,0xB4,0x3D,
+0x1E,0x33,0x82,0xFF,0x60,0xBD,0xFF,0x57,0x9E,0x3B,0xFF,0x4C,0xB0,0x93,0x6D,0x58,
+0xBA,0xDF,0xEE,0xF9,0x57,0x5F,0x93,0x7F,0xF1,0xF5,0xE7,0x6F,0xAE,0x3D,0xFB,0x1B,
+0xEB,0x59,0xFB,0xE6,0xB7,0x5E,0x1F,0xE9,0x63,0x74,0x39,0x4F,0x96,0xDA,0xCF,0x77,
+0x3F,0xF9,0x7C,0xBF,0xC7,0xAA,0xFF,0xE9,0x8E,0xD3,0x22,0xFC,0x59,0xFA,0x49,0x9E,
+0xFF,0xC7,0xD6,0xB6,0xFA,0x51,0xFF,0xEC,0x72,0x1E,0xA2,0x7C,0x9B,0x1F,0x66,0xE7,
+0xD9,0xB7,0xFF,0xFC,0xFD,0xCE,0xEF,0x5F,0xDB,0xFC,0x4D,0xDD,0x1F,0x5B,0x1F,0x8E,
+0x4E,0xF9,0x83,0x5A,0xD6,0xA3,0xEE,0x27,0xD6,0x47,0xFD,0xE0,0x9A,0x7E,0x6A,0x69,
+0xE9,0xE7,0xF9,0x1A,0x6C,0x08,0xBE,0x0E,0x80,0x6F,0xFE,0xAD,0x7B,0xFA,0xCF,0xAE,
+0xE3,0xF4,0x3B,0xF9,0xE4,0x9F,0xED,0xBE,0x4F,0x5A,0xF7,0x1B,0xFF,0x6B,0xD7,0xFD,
+0xC2,0x5F,0xBD,0x8F,0xD7,0x75,0x14,0xBC,0xF1,0x23,0xFE,0x7B,0xFE,0x7A,0xD7,0xFD,
+0x57,0x7F,0xE9,0xFE,0x6A,0xBF,0xFB,0x3F,0x7E,0x6D,0xCF,0xBF,0x72,0x7F,0xD5,0xCB,
+0x83,0xFB,0xFB,0x3B,0x8B,0xF5,0xDE,0xCF,0xBD,0xBE,0xDF,0x6D,0x5E,0x1F,0xFF,0x5F,
+0xBE,0xFE,0xFC,0xE7,0xEB,0xF0,0xC2,0x9B,0x8E,0x1D,0x0A,0xBB,0xEF,0xEF,0xFC,0xD9,
+0xAE,0xFB,0x4F,0x7F,0xDE,0xCF,0xD9,0xBC,0x7E,0xF3,0xFE,0x97,0x79,0xCE,0xE6,0xFB,
+0xBE,0xF2,0xFC,0xD1,0xF7,0xFD,0x45,0xBF,0xEF,0xCD,0xD2,0xDD,0xF6,0x96,0x62,0x1D,
+0x64,0x6F,0x83,0x86,0xFC,0xDC,0xEB,0x81,0xF8,0xE5,0x3F,0x79,0xEF,0xEA,0x5F,0xF4,
+0x83,0x70,0x3F,0x98,0xF6,0x9C,0x76,0xFF,0x57,0xD6,0x43,0xF7,0xE9,0x25,0x99,0x3A,
+0xAE,0x84,0xAC,0x47,0xF4,0x57,0x7E,0xEA,0x1E,0xDB,0xC4,0xF0,0x6F,0xBD,0x7E,0x7A,
+0xFD,0xFA,0x2F,0xE1,0x2F,0x3A,0x3D,0xDF,0x0D,0x72,0xCB,0xEE,0xF7,0xBF,0x59,0x9E,
+0xE1,0xBF,0x7D,0xBE,0x4F,0xC5,0xAC,0xB5,0xFF,0xC5,0xEB,0xCF,0x7F,0xBF,0xFE,0x6E,
+0xD9,0xDF,0xC0,0x7B,0xD4,0x3A,0x6A,0x7E,0x6A,0x6D,0xF5,0x47,0x3E,0xB6,0x5F,0x47,
+0x0D,0x3F,0x0A,0xF1,0xF0,0xF5,0x55,0x58,0x4B,0xF0,0xE1,0x74,0x40,0x33,0x3F,0xB5,
+0x8C,0x0F,0x7B,0xE4,0x77,0xFA,0xB9,0xF3,0x1B,0x6B,0xF2,0x37,0xFD,0x00,0xFC,0xC6,
+0x33,0x0F,0xC0,0xDF,0xFE,0xF3,0x4E,0xC4,0xEB,0x1A,0xFD,0x5D,0x69,0x39,0x80,0xF6,
+0xFC,0x76,0x60,0x7F,0xC7,0x1A,0x7D,0x7A,0xE9,0x02,0x8C,0xAC,0x9F,0xC4,0x03,0x3F,
+0x53,0x0F,0xB8,0xF5,0x3E,0x1B,0x5A,0x3F,0x2E,0xFC,0x3F,0xEB,0xF7,0xBD,0xBB,0xBC,
+0x28,0xF4,0x85,0x7E,0xE6,0xFF,0x48,0x7E,0x7C,0x8F,0x9F,0xD7,0x03,0xF8,0x9B,0xEB,
+0xC1,0xFA,0x3F,0x9E,0x39,0xEF,0x85,0xD9,0xFF,0x1C,0x0E,0x87,0x9D,0x02,0x9F,0xF3,
+0x87,0xD8,0xDD,0x7F,0xA2,0x8B,0x6F,0x2B,0xFF,0x26,0x87,0xB5,0x35,0xF3,0x97,0x5F,
+0x6F,0xFE,0xBF,0xEB,0xCB,0xB0,0x93,0xEC,0x8F,0xF8,0x39,0xFE,0xA9,0xE5,0x19,0x78,
+0x68,0xAC,0x67,0x9A,0x47,0xDE,0x21,0xFA,0xC0,0x3E,0xBC,0xFB,0x7F,0xDA,0xEF,0xEB,
+0x9F,0xFD,0xAC,0xB6,0x57,0xF3,0xD7,0xD6,0x31,0xF5,0x9F,0xAD,0x7D,0x85,0x43,0xC1,
+0xE3,0xDE,0xDF,0xDB,0xF8,0xB9,0xEE,0xD7,0xFE,0x87,0xD7,0xF9,0xE6,0xEB,0xD0,0xFC,
+0xDA,0x3A,0x1D,0xD0,0xB7,0x90,0x7F,0xE3,0xCF,0x74,0xEB,0xFB,0x5B,0x6F,0x07,0x56,
+0x47,0xB2,0x1D,0xD4,0xEF,0x7E,0x2D,0xF9,0xCE,0xA2,0x6C,0x7D,0x4B,0xB8,0x37,0xE5,
+0xFA,0xE7,0x79,0x76,0x7F,0xD0,0xF1,0x44,0xB1,0x33,0xF6,0x27,0x3B,0x1F,0x0F,0xD6,
+0x94,0xFF,0xF9,0x17,0xF8,0xD0,0xDF,0xF3,0x5C,0x3E,0xF4,0x7E,0xF4,0xDE,0x2C,0xE7,
+0xC6,0xFF,0xF4,0x0B,0xF7,0x17,0xA4,0x0F,0xB7,0x09,0xD4,0xDF,0x5D,0xEF,0x5B,0xBB,
+0x21,0x7C,0xDA,0xED,0x3A,0x19,0xBD,0xCB,0xDD,0x9F,0x5D,0x4E,0xB9,0x69,0xBD,0xEF,
+0xA7,0xD7,0x7F,0x27,0x3C,0x97,0xBD,0xCB,0xE2,0x7D,0xDD,0xEE,0x78,0x3D,0x04,0xBE,
+0x86,0x37,0x75,0xFE,0xBF,0x57,0x8C,0xBE,0x81,0x00,0xF1,0x8B,0xFE,0x34,0xAF,0x6D,
+0xF8,0x03,0xDD,0x7D,0x76,0x8C,0x3B,0x7F,0x4C,0xCE,0xD9,0x5F,0x59,0x4F,0xBF,0xFF,
+0x7A,0x3D,0xB7,0xBE,0xF6,0x4C,0x7D,0xC3,0xFB,0xC0,0xFF,0xD7,0xC6,0xD5,0xF3,0x34,
+0x0C,0x03,0x51,0x27,0x25,0x48,0xFD,0x17,0xED,0xC0,0xEE,0x19,0x09,0x75,0x61,0x00,
+0x21,0xA6,0x22,0x75,0xC8,0x50,0x09,0x89,0x19,0x7E,0x04,0x63,0xFE,0x44,0xC5,0xD4,
+0x8D,0xB1,0x1B,0x2B,0x8C,0x8C,0x8C,0x88,0x0D,0x31,0xB0,0x15,0x75,0x09,0x7E,0xBE,
+0xF7,0x6C,0x07,0x3A,0x58,0xAD,0xCF,0xE7,0x73,0xEE,0xC3,0x77,0xE7,0xF8,0xDA,0x2F,
+0x89,0x56,0x4C,0x69,0xD2,0x26,0xB4,0x0F,0x9F,0xF2,0x8F,0xE8,0xAE,0x65,0xCF,0xC8,
+0x81,0xD6,0x85,0x43,0xA0,0xF9,0x8D,0xA3,0x97,0xD8,0x14,0xAB,0xBC,0x10,0xE9,0x91,
+0xCC,0x76,0x57,0x6E,0x10,0xC7,0xDF,0x89,0x5B,0x26,0x3B,0x7F,0x37,0x4C,0x76,0x33,
+0x4D,0x1A,0x2F,0x77,0xA3,0x39,0xAC,0x66,0x2F,0x0D,0x7B,0x70,0xF3,0xAF,0xC7,0x59,
+0xB8,0xF4,0xAF,0x82,0x14,0x36,0xBE,0x0B,0xF1,0x03,0x31,0x44,0x43,0x7B,0xB2,0x3D,
+0x4B,0x1F,0x47,0xAE,0x5B,0xDA,0xDD,0x92,0x72,0xCA,0xC3,0x7F,0x09,0xA5,0x1A,0x75,
+0x3E,0x76,0x97,0x14,0x03,0x02,0x31,0x5A,0xF9,0x7D,0x5A,0x28,0x4F,0x04,0x65,0x23,
+0x33,0x8E,0x4D,0xB3,0xF6,0xCD,0x43,0x2F,0x89,0x70,0x3E,0x31,0x79,0x00,0x01,0xC8,
+0xF1,0x65,0x9F,0x10,0x8D,0xB3,0x7B,0xA2,0x9E,0x11,0x75,0xE6,0xF2,0x25,0xE9,0x00,
+0xF5,0x20,0x52,0x05,0xF3,0x27,0x93,0xB4,0xF5,0x40,0xA1,0x05,0x85,0xDE,0x12,0x38,
+0xCF,0x76,0xC4,0xD9,0x5D,0x9B,0x09,0x04,0xD9,0x20,0x79,0x42,0x2E,0x46,0xAF,0x12,
+0x26,0xAF,0x02,0xD2,0x1B,0xAD,0xE1,0xD9,0x5B,0x7A,0x85,0x93,0xD8,0xA2,0x25,0x4B,
+0x16,0xC4,0xA1,0x64,0x65,0x0D,0x0F,0xCE,0x25,0x42,0x26,0xF8,0x26,0x1E,0x58,0xB6,
+0x73,0x7B,0x3C,0x8C,0xD7,0x5E,0xF6,0xD1,0xB8,0xCE,0xBB,0x14,0x78,0x75,0x11,0x6F,
+0x63,0x75,0xDC,0x9A,0x54,0x45,0x93,0x3A,0xC3,0x13,0x1D,0x16,0x18,0x25,0x02,0x77,
+0x37,0xF6,0xE4,0x19,0x32,0xF7,0x82,0x9C,0x12,0xF2,0x9A,0x34,0xBF,0xCF,0x25,0x77,
+0x5E,0xE6,0x12,0x34,0x8F,0x7C,0x03,0x72,0xC2,0x5B,0xB5,0x5B,0xCA,0xAC,0xA2,0x18,
+0xB2,0x08,0xCC,0xCC,0xE3,0xEF,0x27,0xD2,0x66,0x61,0xE7,0xC9,0x17,0x9D,0x0B,0xCF,
+0x75,0xAB,0x62,0x2D,0xA4,0x37,0xF2,0x3A,0x91,0x0A,0x58,0x5D,0x70,0x1D,0xB1,0x9A,
+0x3D,0xA9,0xC5,0x4C,0x94,0x08,0x5E,0x73,0x42,0xED,0xB6,0xA1,0xB7,0xD3,0xBF,0x19,
+0xAB,0xF3,0x93,0x6A,0x0B,0x4B,0xC8,0xA7,0x41,0xB1,0x86,0xC0,0xA8,0xF3,0xC8,0x43,
+0x16,0xD7,0x51,0x22,0x0E,0x07,0xAD,0x52,0xF1,0x70,0xD0,0xFC,0xAE,0x5C,0x6F,0xB5,
+0x3F,0xB5,0x5B,0x87,0x8F,0xDE,0xCA,0x09,0x7F,0x01,0xA3,0xDD,0x0B,0xA6};
diff --git a/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp b/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp
new file mode 100644
index 0000000000..68869b96d3
--- /dev/null
+++ b/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp
@@ -0,0 +1,269 @@
+/*
+ ==============================================================================
+
+ This file is part of the JUCE framework.
+ Copyright (c) Raw Material Software Limited
+
+ JUCE is an open source framework subject to commercial or open source
+ licensing.
+
+ By downloading, installing, or using the JUCE framework, or combining the
+ JUCE framework with any other source code, object code, content or any other
+ copyrightable work, you agree to the terms of the JUCE End User Licence
+ Agreement, and all incorporated terms including the JUCE Privacy Policy and
+ the JUCE Website Terms of Service, as applicable, which will bind you. If you
+ do not agree to the terms of these agreements, we will not license the JUCE
+ framework to you, and you must discontinue the installation or download
+ process and cease use of the JUCE framework.
+
+ JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/
+ JUCE Privacy Policy: https://juce.com/juce-privacy-policy
+ JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/
+
+ Or:
+
+ You may also use this code under the terms of the AGPLv3:
+ https://www.gnu.org/licenses/agpl-3.0.en.html
+
+ THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL
+ WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED.
+
+ ==============================================================================
+*/
+
+namespace juce
+{
+
+// This only make sense with integral/enum types.
+// We use it for enums and std::pair.
+template
+static constexpr bool any (T b, TT... bs)
+{
+ return ((b == bs) || ...);
+}
+
+// Order is important!!!!
+enum class LineBreakType : uint8_t
+{
+ al, bk, cm, cr, gl, lf, nl, sp, wj,
+ zw, zwj, ai, b2, ba, bb, cb, cj, cl, cp,
+ eb, em, ex, h2, h3, hl, hy, in, is, jl,
+ id, jt, jv, ns, nu, op, po, pr, qu, ri,
+ sa, sg, sy, xx, opw
+};
+
+// Order is important!!!!
+enum class EastAsianWidthType : uint8_t
+{
+ N,
+ narrow,
+ ambiguous,
+ full,
+ half,
+ wide
+};
+
+// Order is important!!!!
+enum class BidiType : uint8_t
+{
+ // Strong: Left to right
+ ltr,
+
+ // Strong: Right to left
+ rtl,
+
+ // Strong: Arabic Right to left
+ al,
+
+ // Weak: European number
+ en,
+
+ // Weak: Arabic umber
+ an,
+
+ // Weak: European number seperator
+ es,
+
+ // Weak: European number terminator
+ et,
+
+ // Weak: Common number seperator
+ cs,
+
+ // Weak: onspacing mark
+ nsm,
+
+ // Weak: Boundary
+ bn,
+
+ // eutral: Paragraph seperator
+ b,
+
+ // eutral: Segment seperator
+ s,
+
+ // eutral: Whitespace
+ ws,
+
+ // eutral: Other s
+ on,
+
+ // Explicit Formatting: LTR Embedding
+ lre,
+
+ // Explicit Formatting: LTR Override
+ lro,
+
+ // Explicit Formatting: RTL Embedding
+ rle,
+
+ // Explicit Formatting: RTL Overide
+ rlo,
+
+ // Explicit Formatting: Pop Directional Format
+ pdf,
+
+ // Explicit Formatting: LTR Isolate
+ lri,
+
+ // Explicit Formatting: RTL Isolate
+ rli,
+
+ // Explicit Formatting: First Strong Isolate
+ fsi,
+
+ // Explicit Formatting: Pop Directional Isolate
+ pdi,
+
+ none
+};
+
+
+enum class VerticalTransformType : uint8_t
+{
+ R, U, Tr, Tu
+};
+
+// https://www.unicode.org/reports/tr51/tr51-21.html
+enum class EmojiType : uint8_t
+{
+ yes,
+ presentation,
+ modifier,
+ modifierBase,
+ component,
+ extended,
+ no
+};
+
+// This is an internal type
+enum class UnicodeTextScript : uint8_t
+{
+ Common, Inherited, Han, Arabic, Hiragana, Adlam, Mende_Kikakui, Ethiopic, Wancho,
+ Toto, Nyiakeng_Puachue_Hmong, Glagolitic, Latin, SignWriting, Greek, Duployan,
+ Nushu, Katakana, Tangut, Khitan_Small_Script, Miao, Medefaidrin, Pahawh_Hmong,
+ Bassa_Vah, Tangsa, Mro, Bamum, Cypro_Minoan, Cuneiform, Tamil, Lisu, Makasar,
+ Gunjala_Gondi, Masaram_Gondi, Marchen, Bhaiksuki, Pau_Cin_Hau, Canadian_Aboriginal,
+ Soyombo, Zanabazar_Square, Nandinagari, Dives_Akuru, Warang_Citi, Dogra, Ahom,
+ Takri, Mongolian, Modi, Siddham, Tirhuta, Newa, Grantha, Khudawadi, Multani,
+ Khojki, Sinhala, Sharada, Mahajani, Chakma, Sora_Sompeng, Kaithi, Brahmi, Elymaic,
+ Chorasmian, Sogdian, Yezidi, Hanifi_Rohingya, Psalter_Pahlavi, Avestan, Manichaean,
+ Kharoshthi, Meroitic_Cursive, Lydian, Phoenician, Hatran, Nabataean, Palmyrene,
+ Imperial_Aramaic, Cypriot, Vithkuqi, Caucasian_Albanian, Elbasan, Osage,
+ Osmanya, Shavian, Deseret, Ugaritic, Gothic, Carian, Lycian, Hangul, Cyrillic,
+ Hebrew, Armenian, Meetei_Mayek, Cherokee, Tai_Viet, Myanmar, Cham, Javanese, Rejang,
+ Kayah_Li, Devanagari, Saurashtra, Phags_Pa, Syloti_Nagri, Vai, Yi, Bopomofo,
+ Tifinagh, Georgian, Coptic, Braille, Sundanese, Ol_Chiki, Lepcha, Batak, Balinese,
+ Tai_Tham, Buginese, Khmer, Limbu, Tai_Le, Tagbanwa, Buhid, Hanunoo, Tagalog, Runic,
+ Ogham, Tibetan, Lao, Thai, Malayalam, Kannada, Telugu, Oriya, Gujarati, Gurmukhi,
+ Bengali, Syriac, Mandaic, Samaritan, Nko, Thaana,
+
+ Linear_A,
+ Linear_B,
+
+ New_Tai_Lue,
+
+ Old_Hungarian,
+ Old_Turkic,
+ Old_Uyghur,
+ Old_Sogdian,
+ Old_South_Arabian,
+ Old_North_Arabian,
+ Old_Persian,
+ Old_Permic,
+ Old_Italic,
+
+ Inscriptional_Pahlavi,
+ Inscriptional_Parthian,
+
+ Anatolian_Hieroglyphs,
+ Egyptian_Hieroglyphs,
+ Meroitic_Hieroglyphs,
+
+ Emoji
+};
+
+enum class GraphemeBreakType : uint8_t
+{
+ other, cr, lf, control, extend, regionalIndicator, prepend, spacingMark,
+ l, v, t, lv, lvt, zwj
+};
+
+
+namespace generated
+{
+#include "juce_UnicodeData.cpp"
+#ifdef JUCE_UNIT_TESTS
+ #include "juce_UnicodeTestData.cpp"
+#endif
+}
+
+using UnicodeData = generated::UnicodeEntry;
+
+struct UnicodeAnalysisPoint
+{
+ uint32_t character;
+ UnicodeData data;
+
+ struct
+ {
+ uint16_t level;
+ } bidi;
+};
+
+static UnicodeData getUnicodeDataForCodepoint (uint32_t codepoint)
+{
+ static const Array data = []
+ {
+ using namespace generated;
+
+ Array arr;
+
+ MemoryInputStream mStream {compressedUnicodeData, std::size (compressedUnicodeData), false};
+ GZIPDecompressorInputStream zStream {&mStream, false};
+
+ // TODO: error checking
+ arr.resize (uncompressedUnicodeDataSize / sizeof (UnicodeData));
+ zStream.read (arr.getRawDataPointer(), uncompressedUnicodeDataSize);
+
+ return arr;
+ }();
+
+ return data[(int) codepoint];
+}
+
+// https://www.unicode.org/Public/UCD/latest/ucd/Jamo.txt
+static inline bool isJamoSymbol (uint32_t cp)
+{
+ return ((cp >= 0x1100 && cp <= 0x1112) ||
+ (cp >= 0x1161 && cp <= 0x1175) ||
+ (cp >= 0x11A8 && cp <= 0x11C2));
+}
+
+static inline EmojiType getEmojiType (uint32_t cp)
+{
+ return getUnicodeDataForCodepoint (cp).emoji;
+}
+
+} // namespace juce