From 483576b78f1644a5788210e7643e344719e7fc30 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Wed, 1 Apr 2026 23:25:51 +0200 Subject: [PATCH] init --- .clang-format | 80 ++ .gitignore | 5 + CMakeLists.txt | 38 + assets/citrim.png | Bin 0 -> 2478 bytes assets/danilka22ah.png | Bin 0 -> 2440 bytes assets/fullharmony.png | Bin 0 -> 1410 bytes assets/gradient.png | Bin 0 -> 3088 bytes assets/invisedivine.png | Bin 0 -> 2559 bytes assets/jaan.png | Bin 0 -> 2103 bytes assets/kolyah35.png | Bin 0 -> 1900 bytes assets/level.png | Bin 0 -> 6700 bytes assets/minecraft.ttf | Bin 0 -> 21808 bytes assets/player.pdn | Bin 0 -> 7096 bytes assets/playertest.png | Bin 0 -> 1082 bytes cmake/CPM.cmake | 1291 +++++++++++++++++++++++++++++++++ file_to_header.py | 9 + src/Game.cpp | 219 ++++++ src/Game.hpp | 62 ++ src/Level.cpp | 363 ++++++++++ src/Level.hpp | 78 ++ src/Multiplayer.cpp | 247 +++++++ src/Multiplayer.hpp | 98 +++ src/Player.cpp | 131 ++++ src/Player.hpp | 27 + src/assets.hpp | 1528 +++++++++++++++++++++++++++++++++++++++ src/main.cpp | 31 + src/saferaylib.h | 103 +++ 27 files changed, 4310 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 assets/citrim.png create mode 100644 assets/danilka22ah.png create mode 100644 assets/fullharmony.png create mode 100644 assets/gradient.png create mode 100644 assets/invisedivine.png create mode 100644 assets/jaan.png create mode 100644 assets/kolyah35.png create mode 100644 assets/level.png create mode 100644 assets/minecraft.ttf create mode 100644 assets/player.pdn create mode 100644 assets/playertest.png create mode 100644 cmake/CPM.cmake create mode 100644 file_to_header.py create mode 100644 src/Game.cpp create mode 100644 src/Game.hpp create mode 100644 src/Level.cpp create mode 100644 src/Level.hpp create mode 100644 src/Multiplayer.cpp create mode 100644 src/Multiplayer.hpp create mode 100644 src/Player.cpp create mode 100644 src/Player.hpp create mode 100644 src/assets.hpp create mode 100644 src/main.cpp create mode 100644 src/saferaylib.h diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..0926c6b --- /dev/null +++ b/.clang-format @@ -0,0 +1,80 @@ +# https://clang.llvm.org/docs/ClangFormatStyleOptions.html +SpacesBeforeTrailingComments: 1 +AlignConsecutiveMacros: Consecutive +# AlignEscapedNewlines: LeftWithLastLine +AlignOperands: Align +AlignTrailingComments: + Kind: Always +AllowShortLambdasOnASingleLine: Empty +IndentWidth: 4 +ColumnLimit: 180 +UseTab: Never +AllowShortIfStatementsOnASingleLine: Never +UseCRLF: false +AlignArrayOfStructures: None +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: true +AllowShortEnumsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AlwaysBreakTemplateDeclarations: Yes +PointerAlignment: Left +QualifierAlignment: Left +ReferenceAlignment: Left +ReflowComments: IndentOnly # ? +SpaceAroundPointerQualifiers: Before +SpaceBeforeCaseColon: false +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesInAngles: Never +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: false +NamespaceIndentation: All +SortIncludes: Never +AlwaysBreakBeforeMultilineStrings: false +BinPackArguments: true +# BinPackLongBracedList: true # ? +BinPackParameters: BinPack # ? +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: MultiLine + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + BeforeLambdaBody: false +BreakAdjacentStringLiterals: true +BreakArrays: false +BreakStringLiterals: true +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: LogicalBlock +IndentAccessModifiers: false +IndentPPDirectives: BeforeHash +InsertBraces: true +KeepEmptyLines: # ? + AtEndOfFile: false + AtStartOfBlock: false + AtStartOfFile: false +LineEnding: LF +PPIndentWidth: 4 +PackConstructorInitializers: BinPack +RemoveBracesLLVM: false +RemoveEmptyLinesInUnwrappedLines: true # ? +RemoveParentheses: MultipleParentheses +RemoveSemicolon: true +# SeparateDefinitionBlocks: Always # dont use +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +AccessModifierOffset: -4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4fa0ad6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/.vscode/ +/.vs/ +/.cache/ +/build/ +/build_linux/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0cfdc10 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.5.0) +project(KolyahGame) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +include(${CMAKE_SOURCE_DIR}/cmake/CPM.cmake) + +CPMAddPackage("gh:raysan5/raylib#5.5") +CPMAddPackage("gh:lsalzman/enet#v1.3.18") +CPMAddPackage("gh:nemtrif/utfcpp#v4.0.6") +# CPMAddPackage("gh:zpl-c/enet#dfe906c400a2d68c61f7b5f40f51f7566503a6f6") + +file(GLOB SOURCES + ${CMAKE_SOURCE_DIR}/src/*.cpp +) + +add_executable(${PROJECT_NAME} ${SOURCES}) + +cmake_policy(SET CMP0079 NEW) +# target_link_libraries(${PROJECT_NAME} PUBLIC raylib enet_static) +if (WIN32) + target_link_libraries(enet PUBLIC winmm ws2_32) + if (MSVC) + target_link_options(${PROJECT_NAME} PUBLIC /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup) + endif() +endif() +target_link_libraries(${PROJECT_NAME} PUBLIC raylib enet utf8cpp) +target_include_directories(${PROJECT_NAME} PUBLIC + ${CMAKE_SOURCE_DIR}/src + ${enet_SOURCE_DIR}/include +) + +# if(EXISTS ${CMAKE_SOURCE_DIR}/assets) +# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/assets" "$/assets") +# else() +# message("-- WARNING: Don't forget to copy resources from .jar file to a directory with the game before launching!") +# endif() \ No newline at end of file diff --git a/assets/citrim.png b/assets/citrim.png new file mode 100644 index 0000000000000000000000000000000000000000..7b119365fe274b5898b8c46175d82651a53f7ea4 GIT binary patch literal 2478 zcmYLLcU;oxAO9k#sNk-Q!&0$aIV$c7H4RZwF~xN`a#80>F44@&9N{>;+&0Vx?yPg> zEJATqcBYY&3sW>hQ?cA~Djip^`~CiSp3gte>+|`%*X#A95uNaGS%fSA0C0OdYgcjQ zi4PVkCBD1K6_3OP6y=Jy0;>Cvp8!B6#NHa~e(|or*EwVd9x1x7YwTjx@UXZspWx$| zgmG70WmAXj>{(jwy8LXdJ(qL5OY-$Si^$ewgJTWSdgOL3_gOvHSvo8LA>Fv4HLX{(!tw(Rp|^4ieaa1M$nnzy{coOpbcc$N zgK0({H8?hAt2{^*oL0&1R~p0~@BK_ojm<)2+;`qFxZUTF)DMHQG1LOCWV}B7v`Tco z*_=hZ`sf)+9{gZ=!+SRs;R`Ce4}$w*lZMEsprlR+#nG3@kD9RkCrK^3O}Kj z`qOR%;MV7aoA4Bp*PS1Z{90H_5+7U^7^F;j&2!mo z8*keKL?u6YoSe&*6jh>YUFe$O6Ph$b>As~{Qn^b;Q_oiw zt>SlUvZhFmKcZY@9)TUcZJ&UEPj1&-J93Sqg$Y_*THRW$>T$+zJ1oQuBS`=8l2@%C0e1Oj;lwX;{*UBeayT)xR_Hpru z(1s@?;KZ6+tBWp)6N5v!4R94%;N?OaouhPp)aZ-b*?>_l!qOo2^Wc!{U$n2EI^Ip4zLj%^7Mb#bI0#K1hP_034V{f(^xolN#bWZE}V-It}OyLHgH7FM{s zN5AuKStjM2G9Y0*EgjamR<{oFP!9zEi;GdL33Iu6Yp2nQnH=2KLN07T$ta4!I_CrS znHaiG5Xs{R1K}uOm!HloU=~xH`TAt{PD^ z-h`eSNyJ1dYB{sSopW>oZExx?(&TE!|Uy><6Noy`aUgsn!UXtK@V5U z7PERgg#84bGnjABy`lL*BO;S-hbwNf0ub27cYbpgh1Eck(>Iu|a2fC$)kp8vc0{4> zABA>{mCgnp25XANCg7fH2RNu1+URHR)nErag`I#tAp5Vc<&!%dPiu{N^Yh!x1|_gCs81RbYnr~e>?WhF}jV`hZ4CH2>TIp2i=G-z&v zJg+Ug6HRL$j$)Ria}{eG!5a3^n=riJR9oL^eUSV4zYZ+72!4s%xhV%EmC0@J`7cRk zc?jwkpshDr7_DrAhQ?OMT;JVMzMOq0K1OlAY;~XnwIv!rux8I}u3+zJyG; zoN9Ne?t%El6&am~LbVOOL_-8uei;iIU%Mym7W&Ygckl!lmuCTgx|OCJQMm{Ocn;eG zd@L?sN-iGAL6PmWO5xNNP@#zl`coOq-LSR`Tu!b(en^)!*_hR>00fH;6fq?&)O`)6 z^VOiIJfEw!=e>dG2THAAG_=`3cV1S8tG!T-1FL8G-7b?X*MTOzlGgZ%E!&ZxlBRVG ze-rEjz4Fv?mVzoEDXMIlv!zn^XQ=5MXi3_VEn(Er9fk)_M^D&99Uq`R`l^anYh+eo z3$>JqQubebd}(Rp+lvd8=&N<&w zF=<#)4TvtylGV<;h78rzW~?e%h7oVK%3uFk!8RCm2kbLEYNS*6XSCC9tv`uX8c;$j z&@6}z@6%Ac_&A2qyoklm44Y2_^ahliN9^WGS|*+QP$b8bucWlCw$Sc2QB zo7#E=yqC^o-;QC*+&*uqkAX7}$Omo|VSQ%bjXmw{l;WEylyiVz-Eg{XVWVFa+G~7t U-x{Ys5r4n{dmAU~YO4V1KU$iS_W%F@ literal 0 HcmV?d00001 diff --git a/assets/danilka22ah.png b/assets/danilka22ah.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee013ce40fe57dfcea2205f8a3c1ef31d9d2e5f GIT binary patch literal 2440 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 literal 0 HcmV?d00001 diff --git a/assets/fullharmony.png b/assets/fullharmony.png new file mode 100644 index 0000000000000000000000000000000000000000..de06c06805b0e44eee7d8d010fd95fc9d854d890 GIT binary patch literal 1410 zcmaJ>c~Fyg5dD2$LLiCU;Rr+SQ!oq$HEc z)YR1cV$V{k)P1}0tn79}Lqq1t`wVkMxrmk7<{e!WK%*axj!TR=+9wiX$=~CRPh>=} zl!&wqdOm1k5PH)=)h*#DZ68>}SuPuTzA&24XFE{_+02Ly!ApmH;hch)GDr2UM z6<2AY#-kf(V-34lBw^K>jNO!*Cn{;uMfud{RJ-nZIr4m2*yZ!HRF)F(QAMcQ_n24v zIzu}cw!F*)e$Dira`T!wRup!J22Pu83c0gc_W5Yv?nB6@?nc#;t+<)Ui zgr<6&dwv>=G7CnvqhXhqvyF+*kS zgSD^5l%lf<{XylX^m%&A_lxj@b*|&7i|Es}go_O_kOn>~-qx`-d4s0h?(`r{c!~rKyamcD z1uSW3vn^Cqh6)5+wM<$`3c&^ZU1PCp7OL zdYc!8ssEc#8Zrp!ozI-n5o%eO&q7f7`k%{>FuVA~5JgmR+oXjcIZM2~Rl|#;yRu&) zS0`(@g>@~et)9OP`p!;WZR6)(y*PBi6Zo_jr_9faJEC#v?fi}ebX}`aKWJtqD2D0= zBFWkL>(&Q4iW?d)~d}!o?foI@Lr$qgFwEkP^gt*UrqPitX=USeXYkL zi913FMoe|_pb=ZP6|uF!ku+n6d!OtclHX8F&zNX4;v{ZDzuFtAFg-nT21+i-l1AR^ zU*9NM@iqo8q^0Ie(K0s;j?pFqS|lX8ne)(6t$R6rcE++T2`@$EU>{hyn@XluS6xiT zrTv!52e*TPM9gOXH~D0D+dpJRk0@_*OJkoKAM_dDw8y#5dXSdYQgR{GpO_Ia{o&JO zctXd?X}UUFAlPPY{**c*=v^*m=S)W=d_P}h{~6L7vqiF@O~dlX20UDRoogLKfBXyn CPHx2j literal 0 HcmV?d00001 diff --git a/assets/gradient.png b/assets/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..24f7fa9843fdb21569ab43b32cad744a6d52ff00 GIT binary patch literal 3088 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 literal 0 HcmV?d00001 diff --git a/assets/invisedivine.png b/assets/invisedivine.png new file mode 100644 index 0000000000000000000000000000000000000000..e67e1c413bb16848f89d35b354ef087b70f87ea9 GIT binary patch literal 2559 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 literal 0 HcmV?d00001 diff --git a/assets/level.png b/assets/level.png new file mode 100644 index 0000000000000000000000000000000000000000..2127a66beb029d0c7524c9281d3f2847f77e4b2d GIT binary patch literal 6700 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 Ix80-v2QeoUZU6uP literal 0 HcmV?d00001 diff --git a/assets/minecraft.ttf b/assets/minecraft.ttf new file mode 100644 index 0000000000000000000000000000000000000000..93c749100f8e6b841e67ca3f3638d6d34a0f6435 GIT binary patch literal 21808 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 literal 0 HcmV?d00001 diff --git a/assets/player.pdn b/assets/player.pdn new file mode 100644 index 0000000000000000000000000000000000000000..0bd0ba50d80335ecebaf08dd7b7437b7680fb381 GIT binary patch literal 7096 zcmd^C36v96y6%=q0LgMR4S=Ts*+UFAg$vO zpE8c<2qIgzgB%qF_YodT%kVrfvWTdFh_nlfPlVP+X?tkscW=@N_#DUg&Uxp&bG$kA z*ImE=zu*7Yy?>l~yZpntimB-+gQY?w(I8OKY`m#as**G|#0iRwXPX*T%EpFds7P>p zQ=_c0fe+=0sGrKleV~V8nWjeNWT`|wSu2yuCM!Tq(>QHvB*$mj)U>JDcrF!gNHb(p zBjrOKZb4!-kt_m=-Gj#sI0VAIaB~p#++F&6f(5W?Zg9?OjsV}BiRJXBQzZ)`3$KrCjA20 z;uVCD*X3&Q2`-{V&?H(Ao8RlgJZ@;B-INqC2!>Emqs4&()xWq1h+Sf{7vN%D0LA

0E%HQp2Xl+H61@B9!L=)u8xEu&A_-D6K0A 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 r_GNKk!Ilp;j_%>-_uuq4 literal 0 HcmV?d00001 diff --git a/assets/playertest.png b/assets/playertest.png new file mode 100644 index 0000000000000000000000000000000000000000..6b784c91e9a85ec2571b0e66dd5cfcbf3e5728e4 GIT binary patch literal 1082 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Nn{1`IRkt`T>mcxvOqwiktZ2QF_#4S1^@rgaQzf7P%Q&zfk$L90|Vb-5N14{ zzaj-FC{f}XQ4*Y=R#Ki=l*$m0n3-3i=jR%tV5(=RXWo77yCqP~w$upEG*3@01`Z&H zl|hP;m4Ok+@&aOMC>!Kr4Mt|LI1`X<$jHPX0HmXUIJ2DvES?2qgFpfhgY?5_G)ozn z85kz8Gq3gnPb65;-K%EPi~LyqR%d;dFMZ(!h@Z1VP2@wdfR-DkI^*iG8~_U-ep-&g*- z`=9j>(?9hC^1`nsFrx_fmS$}EZ*k8$vxaOLDVP`AaD zV_`Y_C42SfXU@O;#`a;YGS`aTq8bO%8={lAgq{?l*fnbHm-%_D`J$ z448h1{*iru9Z9XZ=}XQ zK51Gb5?jmnpku+3EA6fmEf>Vt&1%rz%;&)P?R@3G@PJ+W51zQQudC+soBnho3x=r& zKQm>VKFUy|6SDE=q}-E-O#eJpcMyD@CCAxdbk&V9O-r$MPFH$TL&~OJ9)V>751va# z>oN84Y%^?_|Ec={W8bX?setJl9#`@NEbQ6O^J3wu_Vp|)TE7}C2xZVe)vy0yZo`CM z*K4I3!Y-9Fewu%cpXpFF(~9}!>_=Xf&Sxul&n2R;|M8hGE&G0+suE4$y{7h1{qL^( z4U;#>RcMJWm^QJ{UN8Egwl<^PL!ljv%0avtsZVRK3suN&nCbpfS2gc{M zOf6{+451Sb^?wWd;q{9pA>UA{Ms|Yox%fn;cWfF9Bt0BfdnkTwuPovHAoze~9^*95 zz#VV4v8f%%>Fju~mzBY1z%0H%%!BdUOx}PQcP<}bXgMkP?P1m2U2GDKoD((ef4O{}v7(0M#PNOS sU#&l_A8E?ye4f$v9OIuA_wL- (ie foo-1.2.3) + set(${outName} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + set(${outVer} + "${CMAKE_MATCH_2}" + PARENT_SCOPE + ) + elseif(filename MATCHES "(([0-9]+\\.)+[0-9]+[a-zA-Z0-9]*)") + # We couldn't find a name, but we found a version + # + # In many cases (which we don't handle here) the url would look something like + # `irrelevant/ACTUAL_PACKAGE_NAME/irrelevant/1.2.3.zip`. In such a case we can't possibly + # distinguish the package name from the irrelevant bits. Moreover if we try to match the + # package name from the filename, we'd get bogus at best. + unset(${outName} PARENT_SCOPE) + set(${outVer} + "${CMAKE_MATCH_1}" + PARENT_SCOPE + ) + else() + # Boldly assume that the file name is the package name. + # + # Yes, something like `irrelevant/ACTUAL_NAME/irrelevant/download.zip` will ruin our day, but + # such cases should be quite rare. No popular service does this... we think. + set(${outName} + "${filename}" + PARENT_SCOPE + ) + unset(${outVer} PARENT_SCOPE) + endif() + else() + # No ideas yet what to do with non-archives + unset(${outName} PARENT_SCOPE) + unset(${outVer} PARENT_SCOPE) + endif() +endfunction() + +function(cpm_find_package NAME VERSION) + string(REPLACE " " ";" EXTRA_ARGS "${ARGN}") + find_package(${NAME} ${VERSION} ${EXTRA_ARGS} QUIET) + if(${CPM_ARGS_NAME}_FOUND) + if(DEFINED ${CPM_ARGS_NAME}_VERSION) + set(VERSION ${${CPM_ARGS_NAME}_VERSION}) + endif() + cpm_message(STATUS "${CPM_INDENT} Using local package ${CPM_ARGS_NAME}@${VERSION}") + CPMRegisterPackage(${CPM_ARGS_NAME} "${VERSION}") + set(CPM_PACKAGE_FOUND + YES + PARENT_SCOPE + ) + else() + set(CPM_PACKAGE_FOUND + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Create a custom FindXXX.cmake module for a CPM package This prevents `find_package(NAME)` from +# finding the system library +function(cpm_create_module_file Name) + if(NOT CPM_DONT_UPDATE_MODULE_PATH) + if(DEFINED CMAKE_FIND_PACKAGE_REDIRECTS_DIR) + # Redirect find_package calls to the CPM package. This is what FetchContent does when you set + # OVERRIDE_FIND_PACKAGE. The CMAKE_FIND_PACKAGE_REDIRECTS_DIR works for find_package in CONFIG + # mode, unlike the Find${Name}.cmake fallback. CMAKE_FIND_PACKAGE_REDIRECTS_DIR is not defined + # in script mode, or in CMake < 3.24. + # https://cmake.org/cmake/help/latest/module/FetchContent.html#fetchcontent-find-package-integration-examples + string(TOLOWER ${Name} NameLower) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config.cmake + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${NameLower}-extra.cmake\" OPTIONAL)\n" + "include(\"\${CMAKE_CURRENT_LIST_DIR}/${Name}Extra.cmake\" OPTIONAL)\n" + ) + file(WRITE ${CMAKE_FIND_PACKAGE_REDIRECTS_DIR}/${NameLower}-config-version.cmake + "set(PACKAGE_VERSION_COMPATIBLE TRUE)\n" "set(PACKAGE_VERSION_EXACT TRUE)\n" + ) + else() + file(WRITE ${CPM_MODULE_PATH}/Find${Name}.cmake + "include(\"${CPM_FILE}\")\n${ARGN}\nset(${Name}_FOUND TRUE)" + ) + endif() + endif() +endfunction() + +# Find a package locally or fallback to CPMAddPackage +function(CPMFindPackage) + set(oneValueArgs NAME VERSION GIT_TAG FIND_PACKAGE_ARGUMENTS) + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "" ${ARGN}) + + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + set(downloadPackage ${CPM_DOWNLOAD_ALL}) + if(DEFINED CPM_DOWNLOAD_${CPM_ARGS_NAME}) + set(downloadPackage ${CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + elseif(DEFINED ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + set(downloadPackage $ENV{CPM_DOWNLOAD_${CPM_ARGS_NAME}}) + endif() + if(downloadPackage) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(NOT CPM_PACKAGE_FOUND) + CPMAddPackage(${ARGN}) + cpm_export_variables(${CPM_ARGS_NAME}) + endif() + +endfunction() + +# checks if a package has been added before +function(cpm_check_if_package_already_added CPM_ARGS_NAME CPM_ARGS_VERSION) + if("${CPM_ARGS_NAME}" IN_LIST CPM_PACKAGES) + CPMGetPackageVersion(${CPM_ARGS_NAME} CPM_PACKAGE_VERSION) + if("${CPM_PACKAGE_VERSION}" VERSION_LESS "${CPM_ARGS_VERSION}") + message( + WARNING + "${CPM_INDENT} Requires a newer version of ${CPM_ARGS_NAME} (${CPM_ARGS_VERSION}) than currently included (${CPM_PACKAGE_VERSION})." + ) + endif() + cpm_get_fetch_properties(${CPM_ARGS_NAME}) + set(${CPM_ARGS_NAME}_ADDED NO) + set(CPM_PACKAGE_ALREADY_ADDED + YES + PARENT_SCOPE + ) + cpm_export_variables(${CPM_ARGS_NAME}) + else() + set(CPM_PACKAGE_ALREADY_ADDED + NO + PARENT_SCOPE + ) + endif() +endfunction() + +# Parse the argument of CPMAddPackage in case a single one was provided and convert it to a list of +# arguments which can then be parsed idiomatically. For example gh:foo/bar@1.2.3 will be converted +# to: GITHUB_REPOSITORY;foo/bar;VERSION;1.2.3 +function(cpm_parse_add_package_single_arg arg outArgs) + # Look for a scheme + if("${arg}" MATCHES "^([a-zA-Z]+):(.+)$") + string(TOLOWER "${CMAKE_MATCH_1}" scheme) + set(uri "${CMAKE_MATCH_2}") + + # Check for CPM-specific schemes + if(scheme STREQUAL "gh") + set(out "GITHUB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "gl") + set(out "GITLAB_REPOSITORY;${uri}") + set(packageType "git") + elseif(scheme STREQUAL "bb") + set(out "BITBUCKET_REPOSITORY;${uri}") + set(packageType "git") + # A CPM-specific scheme was not found. Looks like this is a generic URL so try to determine + # type + elseif(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Fall back to a URL + set(out "URL;${arg}") + set(packageType "archive") + + # We could also check for SVN since FetchContent supports it, but SVN is so rare these days. + # We just won't bother with the additional complexity it will induce in this function. SVN is + # done by multi-arg + endif() + else() + if(arg MATCHES ".git/?(@|#|$)") + set(out "GIT_REPOSITORY;${arg}") + set(packageType "git") + else() + # Give up + message(FATAL_ERROR "${CPM_INDENT} Can't determine package type of '${arg}'") + endif() + endif() + + # For all packages we interpret @... as version. Only replace the last occurrence. Thus URIs + # containing '@' can be used + string(REGEX REPLACE "@([^@]+)$" ";VERSION;\\1" out "${out}") + + # Parse the rest according to package type + if(packageType STREQUAL "git") + # For git repos we interpret #... as a tag or branch or commit hash + string(REGEX REPLACE "#([^#]+)$" ";GIT_TAG;\\1" out "${out}") + elseif(packageType STREQUAL "archive") + # For archives we interpret #... as a URL hash. + string(REGEX REPLACE "#([^#]+)$" ";URL_HASH;\\1" out "${out}") + # We don't try to parse the version if it's not provided explicitly. cpm_get_version_from_url + # should do this at a later point + else() + # We should never get here. This is an assertion and hitting it means there's a problem with the + # code above. A packageType was set, but not handled by this if-else. + message(FATAL_ERROR "${CPM_INDENT} Unsupported package type '${packageType}' of '${arg}'") + endif() + + set(${outArgs} + ${out} + PARENT_SCOPE + ) +endfunction() + +# Check that the working directory for a git repo is clean +function(cpm_check_git_working_dir_is_clean repoPath gitTag isClean) + + find_package(Git REQUIRED) + + if(NOT GIT_EXECUTABLE) + # No git executable, assume directory is clean + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + # check for uncommitted changes + execute_process( + COMMAND ${GIT_EXECUTABLE} status --porcelain + RESULT_VARIABLE resultGitStatus + OUTPUT_VARIABLE repoStatus + OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET + WORKING_DIRECTORY ${repoPath} + ) + if(resultGitStatus) + # not supposed to happen, assume clean anyway + message(WARNING "${CPM_INDENT} Calling git status on folder ${repoPath} failed") + set(${isClean} + TRUE + PARENT_SCOPE + ) + return() + endif() + + if(NOT "${repoStatus}" STREQUAL "") + set(${isClean} + FALSE + PARENT_SCOPE + ) + return() + endif() + + # check for committed changes + execute_process( + COMMAND ${GIT_EXECUTABLE} diff -s --exit-code ${gitTag} + RESULT_VARIABLE resultGitDiff + OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_QUIET + WORKING_DIRECTORY ${repoPath} + ) + + if(${resultGitDiff} EQUAL 0) + set(${isClean} + TRUE + PARENT_SCOPE + ) + else() + set(${isClean} + FALSE + PARENT_SCOPE + ) + endif() + +endfunction() + +# Add PATCH_COMMAND to CPM_ARGS_UNPARSED_ARGUMENTS. This method consumes a list of files in ARGN +# then generates a `PATCH_COMMAND` appropriate for `ExternalProject_Add()`. This command is appended +# to the parent scope's `CPM_ARGS_UNPARSED_ARGUMENTS`. +function(cpm_add_patches) + # Return if no patch files are supplied. + if(NOT ARGN) + return() + endif() + + # Find the patch program. + find_program(PATCH_EXECUTABLE patch) + if(CMAKE_HOST_WIN32 AND NOT PATCH_EXECUTABLE) + # The Windows git executable is distributed with patch.exe. Find the path to the executable, if + # it exists, then search `../usr/bin` and `../../usr/bin` for patch.exe. + find_package(Git QUIET) + if(GIT_EXECUTABLE) + get_filename_component(extra_search_path ${GIT_EXECUTABLE} DIRECTORY) + get_filename_component(extra_search_path_1up ${extra_search_path} DIRECTORY) + get_filename_component(extra_search_path_2up ${extra_search_path_1up} DIRECTORY) + find_program( + PATCH_EXECUTABLE patch HINTS "${extra_search_path_1up}/usr/bin" + "${extra_search_path_2up}/usr/bin" + ) + endif() + endif() + if(NOT PATCH_EXECUTABLE) + message(FATAL_ERROR "Couldn't find `patch` executable to use with PATCHES keyword.") + endif() + + # Create a temporary + set(temp_list ${CPM_ARGS_UNPARSED_ARGUMENTS}) + + # Ensure each file exists (or error out) and add it to the list. + set(first_item True) + foreach(PATCH_FILE ${ARGN}) + # Make sure the patch file exists, if we can't find it, try again in the current directory. + if(NOT EXISTS "${PATCH_FILE}") + if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + message(FATAL_ERROR "Couldn't find patch file: '${PATCH_FILE}'") + endif() + set(PATCH_FILE "${CMAKE_CURRENT_LIST_DIR}/${PATCH_FILE}") + endif() + + # Convert to absolute path for use with patch file command. + get_filename_component(PATCH_FILE "${PATCH_FILE}" ABSOLUTE) + + # The first patch entry must be preceded by "PATCH_COMMAND" while the following items are + # preceded by "&&". + if(first_item) + set(first_item False) + list(APPEND temp_list "PATCH_COMMAND") + else() + list(APPEND temp_list "&&") + endif() + # Add the patch command to the list + list(APPEND temp_list "${PATCH_EXECUTABLE}" "-p1" "<" "${PATCH_FILE}") + endforeach() + + # Move temp out into parent scope. + set(CPM_ARGS_UNPARSED_ARGUMENTS + ${temp_list} + PARENT_SCOPE + ) + +endfunction() + +# method to overwrite internal FetchContent properties, to allow using CPM.cmake to overload +# FetchContent calls. As these are internal cmake properties, this method should be used carefully +# and may need modification in future CMake versions. Source: +# https://github.com/Kitware/CMake/blob/dc3d0b5a0a7d26d43d6cfeb511e224533b5d188f/Modules/FetchContent.cmake#L1152 +function(cpm_override_fetchcontent contentName) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "SOURCE_DIR;BINARY_DIR" "") + if(NOT "${arg_UNPARSED_ARGUMENTS}" STREQUAL "") + message(FATAL_ERROR "${CPM_INDENT} Unsupported arguments: ${arg_UNPARSED_ARGUMENTS}") + endif() + + string(TOLOWER ${contentName} contentNameLower) + set(prefix "_FetchContent_${contentNameLower}") + + set(propertyName "${prefix}_sourceDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_SOURCE_DIR}") + + set(propertyName "${prefix}_binaryDir") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} "${arg_BINARY_DIR}") + + set(propertyName "${prefix}_populated") + define_property( + GLOBAL + PROPERTY ${propertyName} + BRIEF_DOCS "Internal implementation detail of FetchContent_Populate()" + FULL_DOCS "Details used by FetchContent_Populate() for ${contentName}" + ) + set_property(GLOBAL PROPERTY ${propertyName} TRUE) +endfunction() + +# Download and add a package from source +function(CPMAddPackage) + cpm_set_policies() + + list(LENGTH ARGN argnLength) + if(argnLength EQUAL 1) + cpm_parse_add_package_single_arg("${ARGN}" ARGN) + + # The shorthand syntax implies EXCLUDE_FROM_ALL and SYSTEM + set(ARGN "${ARGN};EXCLUDE_FROM_ALL;YES;SYSTEM;YES;") + endif() + + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + CUSTOM_CACHE_KEY + ) + + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND PATCHES) + + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}") + + # Set default values for arguments + + if(NOT DEFINED CPM_ARGS_VERSION) + if(DEFINED CPM_ARGS_GIT_TAG) + cpm_get_version_from_git_tag("${CPM_ARGS_GIT_TAG}" CPM_ARGS_VERSION) + endif() + endif() + + if(CPM_ARGS_DOWNLOAD_ONLY) + set(DOWNLOAD_ONLY ${CPM_ARGS_DOWNLOAD_ONLY}) + else() + set(DOWNLOAD_ONLY NO) + endif() + + if(DEFINED CPM_ARGS_GITHUB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://github.com/${CPM_ARGS_GITHUB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_GITLAB_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://gitlab.com/${CPM_ARGS_GITLAB_REPOSITORY}.git") + elseif(DEFINED CPM_ARGS_BITBUCKET_REPOSITORY) + set(CPM_ARGS_GIT_REPOSITORY "https://bitbucket.org/${CPM_ARGS_BITBUCKET_REPOSITORY}.git") + endif() + + if(DEFINED CPM_ARGS_GIT_REPOSITORY) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_REPOSITORY ${CPM_ARGS_GIT_REPOSITORY}) + if(NOT DEFINED CPM_ARGS_GIT_TAG) + set(CPM_ARGS_GIT_TAG v${CPM_ARGS_VERSION}) + endif() + + # If a name wasn't provided, try to infer it from the git repo + if(NOT DEFINED CPM_ARGS_NAME) + cpm_package_name_from_git_uri(${CPM_ARGS_GIT_REPOSITORY} CPM_ARGS_NAME) + endif() + endif() + + set(CPM_SKIP_FETCH FALSE) + + if(DEFINED CPM_ARGS_GIT_TAG) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_TAG ${CPM_ARGS_GIT_TAG}) + # If GIT_SHALLOW is explicitly specified, honor the value. + if(DEFINED CPM_ARGS_GIT_SHALLOW) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW ${CPM_ARGS_GIT_SHALLOW}) + endif() + endif() + + if(DEFINED CPM_ARGS_URL) + # If a name or version aren't provided, try to infer them from the URL + list(GET CPM_ARGS_URL 0 firstUrl) + cpm_package_name_and_ver_from_url(${firstUrl} nameFromUrl verFromUrl) + # If we fail to obtain name and version from the first URL, we could try other URLs if any. + # However multiple URLs are expected to be quite rare, so for now we won't bother. + + # If the caller provided their own name and version, they trump the inferred ones. + if(NOT DEFINED CPM_ARGS_NAME) + set(CPM_ARGS_NAME ${nameFromUrl}) + endif() + if(NOT DEFINED CPM_ARGS_VERSION) + set(CPM_ARGS_VERSION ${verFromUrl}) + endif() + + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}") + endif() + + # Check for required arguments + + if(NOT DEFINED CPM_ARGS_NAME) + message( + FATAL_ERROR + "${CPM_INDENT} 'NAME' was not provided and couldn't be automatically inferred for package added with arguments: '${ARGN}'" + ) + endif() + + # Check if package has been added before + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + if(CPM_PACKAGE_ALREADY_ADDED) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for manual overrides + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_${CPM_ARGS_NAME}_SOURCE}" STREQUAL "") + set(PACKAGE_SOURCE ${CPM_${CPM_ARGS_NAME}_SOURCE}) + set(CPM_${CPM_ARGS_NAME}_SOURCE "") + CPMAddPackage( + NAME "${CPM_ARGS_NAME}" + SOURCE_DIR "${PACKAGE_SOURCE}" + EXCLUDE_FROM_ALL "${CPM_ARGS_EXCLUDE_FROM_ALL}" + SYSTEM "${CPM_ARGS_SYSTEM}" + PATCHES "${CPM_ARGS_PATCHES}" + OPTIONS "${CPM_ARGS_OPTIONS}" + SOURCE_SUBDIR "${CPM_ARGS_SOURCE_SUBDIR}" + DOWNLOAD_ONLY "${DOWNLOAD_ONLY}" + FORCE True + ) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + # Check for available declaration + if(NOT CPM_ARGS_FORCE AND NOT "${CPM_DECLARATION_${CPM_ARGS_NAME}}" STREQUAL "") + set(declaration ${CPM_DECLARATION_${CPM_ARGS_NAME}}) + set(CPM_DECLARATION_${CPM_ARGS_NAME} "") + CPMAddPackage(${declaration}) + cpm_export_variables(${CPM_ARGS_NAME}) + # checking again to ensure version and option compatibility + cpm_check_if_package_already_added(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}") + return() + endif() + + if(NOT CPM_ARGS_FORCE) + if(CPM_USE_LOCAL_PACKAGES OR CPM_LOCAL_PACKAGES_ONLY) + cpm_find_package(${CPM_ARGS_NAME} "${CPM_ARGS_VERSION}" ${CPM_ARGS_FIND_PACKAGE_ARGUMENTS}) + + if(CPM_PACKAGE_FOUND) + cpm_export_variables(${CPM_ARGS_NAME}) + return() + endif() + + if(CPM_LOCAL_PACKAGES_ONLY) + message( + SEND_ERROR + "${CPM_INDENT} ${CPM_ARGS_NAME} not found via find_package(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION})" + ) + endif() + endif() + endif() + + CPMRegisterPackage("${CPM_ARGS_NAME}" "${CPM_ARGS_VERSION}") + + if(DEFINED CPM_ARGS_GIT_TAG) + set(PACKAGE_INFO "${CPM_ARGS_GIT_TAG}") + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + set(PACKAGE_INFO "${CPM_ARGS_SOURCE_DIR}") + else() + set(PACKAGE_INFO "${CPM_ARGS_VERSION}") + endif() + + if(DEFINED FETCHCONTENT_BASE_DIR) + # respect user's FETCHCONTENT_BASE_DIR if set + set(CPM_FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR}) + else() + set(CPM_FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/_deps) + endif() + + cpm_add_patches(${CPM_ARGS_PATCHES}) + + if(DEFINED CPM_ARGS_DOWNLOAD_COMMAND) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS DOWNLOAD_COMMAND ${CPM_ARGS_DOWNLOAD_COMMAND}) + elseif(DEFINED CPM_ARGS_SOURCE_DIR) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${CPM_ARGS_SOURCE_DIR}) + if(NOT IS_ABSOLUTE ${CPM_ARGS_SOURCE_DIR}) + # Expand `CPM_ARGS_SOURCE_DIR` relative path. This is important because EXISTS doesn't work + # for relative paths. + get_filename_component( + source_directory ${CPM_ARGS_SOURCE_DIR} REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} + ) + else() + set(source_directory ${CPM_ARGS_SOURCE_DIR}) + endif() + if(NOT EXISTS ${source_directory}) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild") + endif() + elseif(CPM_SOURCE_CACHE AND NOT CPM_ARGS_NO_CACHE) + string(TOLOWER ${CPM_ARGS_NAME} lower_case_name) + set(origin_parameters ${CPM_ARGS_UNPARSED_ARGUMENTS}) + list(SORT origin_parameters) + if(CPM_ARGS_CUSTOM_CACHE_KEY) + # Application set a custom unique directory name + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${CPM_ARGS_CUSTOM_CACHE_KEY}) + elseif(CPM_USE_NAMED_CACHE_DIRECTORIES) + string(SHA1 origin_hash "${origin_parameters};NEW_CACHE_STRUCTURE_TAG") + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}/${CPM_ARGS_NAME}) + else() + string(SHA1 origin_hash "${origin_parameters}") + set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash}) + endif() + # Expand `download_directory` relative path. This is important because EXISTS doesn't work for + # relative paths. + get_filename_component(download_directory ${download_directory} ABSOLUTE) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS SOURCE_DIR ${download_directory}) + + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock) + endif() + + if(EXISTS ${download_directory}) + if(CPM_SOURCE_CACHE) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} "${download_directory}" + "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + ) + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + + if(DEFINED CPM_ARGS_GIT_TAG AND NOT (PATCH_COMMAND IN_LIST CPM_ARGS_UNPARSED_ARGUMENTS)) + # warn if cache has been changed since checkout + cpm_check_git_working_dir_is_clean(${download_directory} ${CPM_ARGS_GIT_TAG} IS_CLEAN) + if(NOT ${IS_CLEAN}) + message( + WARNING "${CPM_INDENT} Cache for ${CPM_ARGS_NAME} (${download_directory}) is dirty" + ) + endif() + endif() + + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + set(PACKAGE_INFO "${PACKAGE_INFO} at ${download_directory}") + + # As the source dir is already cached/populated, we override the call to FetchContent. + set(CPM_SKIP_FETCH TRUE) + cpm_override_fetchcontent( + "${lower_case_name}" SOURCE_DIR "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + BINARY_DIR "${${CPM_ARGS_NAME}_BINARY_DIR}" + ) + + else() + # Enable shallow clone when GIT_TAG is not a commit hash. Our guess may not be accurate, but + # it should guarantee no commit hash get mis-detected. + if(NOT DEFINED CPM_ARGS_GIT_SHALLOW) + cpm_is_git_tag_commit_hash("${CPM_ARGS_GIT_TAG}" IS_HASH) + if(NOT ${IS_HASH}) + list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS GIT_SHALLOW TRUE) + endif() + endif() + + # remove timestamps so CMake will re-download the dependency + file(REMOVE_RECURSE ${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild) + set(PACKAGE_INFO "${PACKAGE_INFO} to ${download_directory}") + endif() + endif() + + if(NOT "${DOWNLOAD_ONLY}") + cpm_create_module_file(${CPM_ARGS_NAME} "CPMAddPackage(\"${ARGN}\")") + endif() + + if(CPM_PACKAGE_LOCK_ENABLED) + if((CPM_ARGS_VERSION AND NOT CPM_ARGS_SOURCE_DIR) OR CPM_INCLUDE_ALL_IN_PACKAGE_LOCK) + cpm_add_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + elseif(CPM_ARGS_SOURCE_DIR) + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "local directory") + else() + cpm_add_comment_to_package_lock(${CPM_ARGS_NAME} "${ARGN}") + endif() + endif() + + cpm_message( + STATUS "${CPM_INDENT} Adding package ${CPM_ARGS_NAME}@${CPM_ARGS_VERSION} (${PACKAGE_INFO})" + ) + + if(NOT CPM_SKIP_FETCH) + # CMake 3.28 added EXCLUDE, SYSTEM (3.25), and SOURCE_SUBDIR (3.18) to FetchContent_Declare. + # Calling FetchContent_MakeAvailable will then internally forward these options to + # add_subdirectory. Up until these changes, we had to call FetchContent_Populate and + # add_subdirectory separately, which is no longer necessary and has been deprecated as of 3.30. + # A Bug in CMake prevents us to use the non-deprecated functions until 3.30.3. + set(fetchContentDeclareExtraArgs "") + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(${CPM_ARGS_EXCLUDE_FROM_ALL}) + list(APPEND fetchContentDeclareExtraArgs EXCLUDE_FROM_ALL) + endif() + if(${CPM_ARGS_SYSTEM}) + list(APPEND fetchContentDeclareExtraArgs SYSTEM) + endif() + if(DEFINED CPM_ARGS_SOURCE_SUBDIR) + list(APPEND fetchContentDeclareExtraArgs SOURCE_SUBDIR ${CPM_ARGS_SOURCE_SUBDIR}) + endif() + # For CMake version <3.28 OPTIONS are parsed in cpm_add_subdirectory + if(CPM_ARGS_OPTIONS AND NOT DOWNLOAD_ONLY) + foreach(OPTION ${CPM_ARGS_OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + endif() + cpm_declare_fetch( + "${CPM_ARGS_NAME}" ${fetchContentDeclareExtraArgs} "${CPM_ARGS_UNPARSED_ARGUMENTS}" + ) + + cpm_fetch_package("${CPM_ARGS_NAME}" ${DOWNLOAD_ONLY} populated ${CPM_ARGS_UNPARSED_ARGUMENTS}) + if(CPM_SOURCE_CACHE AND download_directory) + file(LOCK ${download_directory}/../cmake.lock RELEASE) + endif() + if(${populated} AND ${CMAKE_VERSION} VERSION_LESS "3.30.3") + cpm_add_subdirectory( + "${CPM_ARGS_NAME}" + "${DOWNLOAD_ONLY}" + "${${CPM_ARGS_NAME}_SOURCE_DIR}/${CPM_ARGS_SOURCE_SUBDIR}" + "${${CPM_ARGS_NAME}_BINARY_DIR}" + "${CPM_ARGS_EXCLUDE_FROM_ALL}" + "${CPM_ARGS_SYSTEM}" + "${CPM_ARGS_OPTIONS}" + ) + endif() + cpm_get_fetch_properties("${CPM_ARGS_NAME}") + endif() + + set(${CPM_ARGS_NAME}_ADDED YES) + cpm_export_variables("${CPM_ARGS_NAME}") +endfunction() + +# Fetch a previously declared package +macro(CPMGetPackage Name) + if(DEFINED "CPM_DECLARATION_${Name}") + CPMAddPackage(NAME ${Name}) + else() + message(SEND_ERROR "${CPM_INDENT} Cannot retrieve package ${Name}: no declaration available") + endif() +endmacro() + +# export variables available to the caller to the parent scope expects ${CPM_ARGS_NAME} to be set +macro(cpm_export_variables name) + set(${name}_SOURCE_DIR + "${${name}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${name}_BINARY_DIR + "${${name}_BINARY_DIR}" + PARENT_SCOPE + ) + set(${name}_ADDED + "${${name}_ADDED}" + PARENT_SCOPE + ) + set(CPM_LAST_PACKAGE_NAME + "${name}" + PARENT_SCOPE + ) +endmacro() + +# declares a package, so that any call to CPMAddPackage for the package name will use these +# arguments instead. Previous declarations will not be overridden. +macro(CPMDeclarePackage Name) + if(NOT DEFINED "CPM_DECLARATION_${Name}") + set("CPM_DECLARATION_${Name}" "${ARGN}") + endif() +endmacro() + +function(cpm_add_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN false ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} "# ${Name}\nCPMDeclarePackage(${Name}\n${PRETTY_ARGN})\n") + endif() +endfunction() + +function(cpm_add_comment_to_package_lock Name) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + cpm_prettify_package_arguments(PRETTY_ARGN true ${ARGN}) + file(APPEND ${CPM_PACKAGE_LOCK_FILE} + "# ${Name} (unversioned)\n# CPMDeclarePackage(${Name}\n${PRETTY_ARGN}#)\n" + ) + endif() +endfunction() + +# includes the package lock file if it exists and creates a target `cpm-update-package-lock` to +# update it +macro(CPMUsePackageLock file) + if(NOT CPM_DONT_CREATE_PACKAGE_LOCK) + get_filename_component(CPM_ABSOLUTE_PACKAGE_LOCK_PATH ${file} ABSOLUTE) + if(EXISTS ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + include(${CPM_ABSOLUTE_PACKAGE_LOCK_PATH}) + endif() + if(NOT TARGET cpm-update-package-lock) + add_custom_target( + cpm-update-package-lock COMMAND ${CMAKE_COMMAND} -E copy ${CPM_PACKAGE_LOCK_FILE} + ${CPM_ABSOLUTE_PACKAGE_LOCK_PATH} + ) + endif() + set(CPM_PACKAGE_LOCK_ENABLED true) + endif() +endmacro() + +# registers a package that has been added to CPM +function(CPMRegisterPackage PACKAGE VERSION) + list(APPEND CPM_PACKAGES ${PACKAGE}) + set(CPM_PACKAGES + ${CPM_PACKAGES} + CACHE INTERNAL "" + ) + set("CPM_PACKAGE_${PACKAGE}_VERSION" + ${VERSION} + CACHE INTERNAL "" + ) +endfunction() + +# retrieve the current version of the package to ${OUTPUT} +function(CPMGetPackageVersion PACKAGE OUTPUT) + set(${OUTPUT} + "${CPM_PACKAGE_${PACKAGE}_VERSION}" + PARENT_SCOPE + ) +endfunction() + +# declares a package in FetchContent_Declare +function(cpm_declare_fetch PACKAGE) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package not declared (dry run)") + return() + endif() + + FetchContent_Declare(${PACKAGE} ${ARGN}) +endfunction() + +# returns properties for a package previously defined by cpm_declare_fetch +function(cpm_get_fetch_properties PACKAGE) + if(${CPM_DRY_RUN}) + return() + endif() + + set(${PACKAGE}_SOURCE_DIR + "${CPM_PACKAGE_${PACKAGE}_SOURCE_DIR}" + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + "${CPM_PACKAGE_${PACKAGE}_BINARY_DIR}" + PARENT_SCOPE + ) +endfunction() + +function(cpm_store_fetch_properties PACKAGE source_dir binary_dir) + if(${CPM_DRY_RUN}) + return() + endif() + + set(CPM_PACKAGE_${PACKAGE}_SOURCE_DIR + "${source_dir}" + CACHE INTERNAL "" + ) + set(CPM_PACKAGE_${PACKAGE}_BINARY_DIR + "${binary_dir}" + CACHE INTERNAL "" + ) +endfunction() + +# adds a package as a subdirectory if viable, according to provided options +function( + cpm_add_subdirectory + PACKAGE + DOWNLOAD_ONLY + SOURCE_DIR + BINARY_DIR + EXCLUDE + SYSTEM + OPTIONS +) + + if(NOT DOWNLOAD_ONLY AND EXISTS ${SOURCE_DIR}/CMakeLists.txt) + set(addSubdirectoryExtraArgs "") + if(EXCLUDE) + list(APPEND addSubdirectoryExtraArgs EXCLUDE_FROM_ALL) + endif() + if("${SYSTEM}" AND "${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.25") + # https://cmake.org/cmake/help/latest/prop_dir/SYSTEM.html#prop_dir:SYSTEM + list(APPEND addSubdirectoryExtraArgs SYSTEM) + endif() + if(OPTIONS) + foreach(OPTION ${OPTIONS}) + cpm_parse_option("${OPTION}") + set(${OPTION_KEY} "${OPTION_VALUE}") + endforeach() + endif() + set(CPM_OLD_INDENT "${CPM_INDENT}") + set(CPM_INDENT "${CPM_INDENT} ${PACKAGE}:") + add_subdirectory(${SOURCE_DIR} ${BINARY_DIR} ${addSubdirectoryExtraArgs}) + set(CPM_INDENT "${CPM_OLD_INDENT}") + endif() +endfunction() + +# downloads a previously declared package via FetchContent and exports the variables +# `${PACKAGE}_SOURCE_DIR` and `${PACKAGE}_BINARY_DIR` to the parent scope +function(cpm_fetch_package PACKAGE DOWNLOAD_ONLY populated) + set(${populated} + FALSE + PARENT_SCOPE + ) + if(${CPM_DRY_RUN}) + cpm_message(STATUS "${CPM_INDENT} Package ${PACKAGE} not fetched (dry run)") + return() + endif() + + FetchContent_GetProperties(${PACKAGE}) + + string(TOLOWER "${PACKAGE}" lower_case_name) + + if(NOT ${lower_case_name}_POPULATED) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30.3") + if(DOWNLOAD_ONLY) + # MakeAvailable will call add_subdirectory internally which is not what we want when + # DOWNLOAD_ONLY is set. Populate will only download the dependency without adding it to the + # build + FetchContent_Populate( + ${PACKAGE} + SOURCE_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-src" + BINARY_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-build" + SUBBUILD_DIR "${CPM_FETCHCONTENT_BASE_DIR}/${lower_case_name}-subbuild" + ${ARGN} + ) + else() + FetchContent_MakeAvailable(${PACKAGE}) + endif() + else() + FetchContent_Populate(${PACKAGE}) + endif() + set(${populated} + TRUE + PARENT_SCOPE + ) + endif() + + cpm_store_fetch_properties( + ${CPM_ARGS_NAME} ${${lower_case_name}_SOURCE_DIR} ${${lower_case_name}_BINARY_DIR} + ) + + set(${PACKAGE}_SOURCE_DIR + ${${lower_case_name}_SOURCE_DIR} + PARENT_SCOPE + ) + set(${PACKAGE}_BINARY_DIR + ${${lower_case_name}_BINARY_DIR} + PARENT_SCOPE + ) +endfunction() + +# splits a package option +function(cpm_parse_option OPTION) + string(REGEX MATCH "^[^ ]+" OPTION_KEY "${OPTION}") + string(LENGTH "${OPTION}" OPTION_LENGTH) + string(LENGTH "${OPTION_KEY}" OPTION_KEY_LENGTH) + if(OPTION_KEY_LENGTH STREQUAL OPTION_LENGTH) + # no value for key provided, assume user wants to set option to "ON" + set(OPTION_VALUE "ON") + else() + math(EXPR OPTION_KEY_LENGTH "${OPTION_KEY_LENGTH}+1") + string(SUBSTRING "${OPTION}" "${OPTION_KEY_LENGTH}" "-1" OPTION_VALUE) + endif() + set(OPTION_KEY + "${OPTION_KEY}" + PARENT_SCOPE + ) + set(OPTION_VALUE + "${OPTION_VALUE}" + PARENT_SCOPE + ) +endfunction() + +# guesses the package version from a git tag +function(cpm_get_version_from_git_tag GIT_TAG RESULT) + string(LENGTH ${GIT_TAG} length) + if(length EQUAL 40) + # GIT_TAG is probably a git hash + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + string(REGEX MATCH "v?([0123456789.]*).*" _ ${GIT_TAG}) + set(${RESULT} + ${CMAKE_MATCH_1} + PARENT_SCOPE + ) + endif() +endfunction() + +# guesses if the git tag is a commit hash or an actual tag or a branch name. +function(cpm_is_git_tag_commit_hash GIT_TAG RESULT) + string(LENGTH "${GIT_TAG}" length) + # full hash has 40 characters, and short hash has at least 7 characters. + if(length LESS 7 OR length GREATER 40) + set(${RESULT} + 0 + PARENT_SCOPE + ) + else() + if(${GIT_TAG} MATCHES "^[a-fA-F0-9]+$") + set(${RESULT} + 1 + PARENT_SCOPE + ) + else() + set(${RESULT} + 0 + PARENT_SCOPE + ) + endif() + endif() +endfunction() + +function(cpm_prettify_package_arguments OUT_VAR IS_IN_COMMENT) + set(oneValueArgs + NAME + FORCE + VERSION + GIT_TAG + DOWNLOAD_ONLY + GITHUB_REPOSITORY + GITLAB_REPOSITORY + BITBUCKET_REPOSITORY + GIT_REPOSITORY + SOURCE_DIR + FIND_PACKAGE_ARGUMENTS + NO_CACHE + SYSTEM + GIT_SHALLOW + EXCLUDE_FROM_ALL + SOURCE_SUBDIR + ) + set(multiValueArgs URL OPTIONS DOWNLOAD_COMMAND) + cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + foreach(oneArgName ${oneValueArgs}) + if(DEFINED CPM_ARGS_${oneArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + if(${oneArgName} STREQUAL "SOURCE_DIR") + string(REPLACE ${CMAKE_SOURCE_DIR} "\${CMAKE_SOURCE_DIR}" CPM_ARGS_${oneArgName} + ${CPM_ARGS_${oneArgName}} + ) + endif() + string(APPEND PRETTY_OUT_VAR " ${oneArgName} ${CPM_ARGS_${oneArgName}}\n") + endif() + endforeach() + foreach(multiArgName ${multiValueArgs}) + if(DEFINED CPM_ARGS_${multiArgName}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ${multiArgName}\n") + foreach(singleOption ${CPM_ARGS_${multiArgName}}) + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " \"${singleOption}\"\n") + endforeach() + endif() + endforeach() + + if(NOT "${CPM_ARGS_UNPARSED_ARGUMENTS}" STREQUAL "") + if(${IS_IN_COMMENT}) + string(APPEND PRETTY_OUT_VAR "#") + endif() + string(APPEND PRETTY_OUT_VAR " ") + foreach(CPM_ARGS_UNPARSED_ARGUMENT ${CPM_ARGS_UNPARSED_ARGUMENTS}) + string(APPEND PRETTY_OUT_VAR " ${CPM_ARGS_UNPARSED_ARGUMENT}") + endforeach() + string(APPEND PRETTY_OUT_VAR "\n") + endif() + + set(${OUT_VAR} + ${PRETTY_OUT_VAR} + PARENT_SCOPE + ) + +endfunction() diff --git a/file_to_header.py b/file_to_header.py new file mode 100644 index 0000000..5403075 --- /dev/null +++ b/file_to_header.py @@ -0,0 +1,9 @@ +import sys +import pathlib + +fname = pathlib.Path(sys.argv[1]).stem + +data = open(sys.argv[1], 'rb').read() + +print(f'inline uint8_t {fname}_data[{hex(len(data))}] = {{{",".join(map(hex, data))}}};') +print(f'\nconstexpr auto {fname}_data_size = {hex(len(data))};') \ No newline at end of file diff --git a/src/Game.cpp b/src/Game.cpp new file mode 100644 index 0000000..7aba885 --- /dev/null +++ b/src/Game.cpp @@ -0,0 +1,219 @@ +#include "Game.hpp" +#include +#include +#include "Multiplayer.hpp" +#include "assets.hpp" + +Game::Game() : camPos(0, 0), spawnPointChangedTime(0), chatOpen(false), entered(false) {} + +void Game::start(std::string name) { + InitWindow(1280, 720, "SFF Sandbox..?"); + SetTargetFPS(60); + + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + player = Player(skinFromName(name), name); + // player.spawnPoint = {2100, -1088}; // middle + // player.spawnPoint = {3821, -1728}; // end + player.spawnPoint = {-66, -448}; // start + player.pos = player.spawnPoint; + level.load(); + + auto lastTime = GetTime(); + + SetExitKey(KEY_NULL); + + std::vector codepoints; + for (int i = 0x20; i <= 0x7e; i++) { + codepoints.push_back(i); + } + for (int i = 0x401; i <= 0x451; i++) { + codepoints.push_back(i); + } + + const auto myFont = LoadFontFromMemory(".ttf", minecraft_data, minecraft_data_size, 20, codepoints.data(), codepoints.size()); + + // const auto gradText = LoadTexture("assets/gradient.png"); + const auto gradText = texFromMem(gradient_data, gradient_data_size); + + while (!WindowShouldClose()) { + auto time = GetTime(); + float dt = time - lastTime; + + serverTime += dt; + +#ifdef _WIN32 + if (dt > (1 / 30.f)) { + lastTime = time; + continue; + } +#endif + + if (chatOpen) { + // Get char pressed (unicode character) on the queue + int key = GetCharPressed(); + + // Check if more characters have been pressed on the same frame + while (key > 0) { + // printf("%i\n", key); + // NOTE: Only allow keys in range [32..125] + // if ((key >= 32) && (key <= 125)) { + // chatMsg.append({(char)key}); + // } + utf8::append(key, chatMsg); + + key = GetCharPressed(); // Check next character in the queue + } + + if (IsKeyPressedRepeat(KEY_BACKSPACE) || IsKeyPressed(KEY_BACKSPACE)) { + if (chatMsg.size() != 0) { + // chatMsg.pop_back(); + auto it = chatMsg.end(); + auto lastCP = utf8::prior(it, chatMsg.begin()); + chatMsg = chatMsg.substr(0, it - chatMsg.begin()); + } + } + + if (IsKeyPressed(KEY_ENTER) && !chatMsg.empty()) { + char* packetData = new char[1 + 2 + chatMsg.size()]; + packetData[0] = Header::MESSAGE; + *(uint16_t*)(packetData + 1) = chatMsg.size(); + memcpy(packetData + 3, chatMsg.c_str(), chatMsg.size()); + + Multiplayer::get().sendPacket(packetData, 1 + 2 + chatMsg.size()); + + chatMsg.clear(); + + delete[] packetData; + // chatOpen = false; + } + } + + if (IsKeyPressed(KEY_T) && !chatOpen) { + chatOpen = true; + } + + if (IsKeyPressed(KEY_ESCAPE) && chatOpen) { + chatOpen = false; + } + + level.update(dt); + + player.update(dt); + + auto& mp = Multiplayer::get(); + if (mp.m_state != MultiplayerState::CONNECTING) { + mp.update(dt); + } + + if (spawnPointChangedTime != 0) { + if (GetTime() - spawnPointChangedTime >= 0.5f) { + spawnPointChangedTime = 0; + } + } + + for (auto& [_, p] : otherPlayers) { + if (p.vel.x != 0) { + p.animTime += dt; + if (p.animTime >= p.targetFrameTime) { + p.animTime -= p.targetFrameTime; + p.curFrame = (p.curFrame + 1) % (p.totalFrames - 1); + // printf("%i\n", curFrame); + } + } else { + p.curFrame = 0; + p.animTime = 0; + } + } + + //////////////////////////// + + BeginDrawing(); + + ClearBackground(GRAY); + level.drawBack(); + + for (auto& [_, player] : otherPlayers) { + player.draw(); + auto p = worldToScreen(player.pos); + auto w = MeasureText(player.name.c_str(), 20); + + DrawText(player.name.c_str(), p.x + 32 - w / 2, p.y - 25, 20, RAYWHITE); + } + + player.draw(); + level.draw(); + + if (!entered) { + auto p = worldToScreen({71 * 64, -30 * 64 - 720}); + DrawRectangle(p.x, p.y, 11 * 64, 6 * 64 + 720, {0, 0, 0, 255}); + for (int y = -25; y > -40; y--) { + p = worldToScreen({70 * 64, y * 64.f}); + DrawTexture(gradText, p.x, p.y, WHITE); + } + } else { + DrawTextEx(myFont, "Нажми T, чтобы открыть чат!", worldToScreen({73.5f * 64.f - MeasureTextEx(myFont, "Нажми T, чтобы открыть чат!", 40, 1).x / 2.0f, -23 * 64.f}), 40, + 1, RAYWHITE); + } + + // DrawText((std::to_string(player.pos.x) + " " + std::to_string(player.pos.y)).c_str(), 0, 0, 20, RAYWHITE); + // DrawText(("Tile: " + std::to_string((int)player.pos.x / 64) + " " + std::to_string((int)player.pos.y / 64)).c_str(), 0, 20, 20, RAYWHITE); + // DrawText(("FPS: " + std::to_string(GetFPS())).c_str(), 0, 40, 20, RAYWHITE); + + if (spawnPointChangedTime != 0) { + // printf("%i\n", (uint8_t)(255 - 255 * (GetTime() - spawnPointChangedTime) / 0.5f)); + DrawText("Checkpoint!", 640 - MeasureText("Checkpoint!", 40) / 2, 500, 40, Color {245, 245, 245, (uint8_t)(255 - 255 * (GetTime() - spawnPointChangedTime) / 0.5f)}); + } + + int msgY = 720; + + if (chatOpen) { + DrawRectangle(0, 720 - 30 - 4, 1280, 30 + 4, {0, 0, 0, 100}); + + // DrawText(("> " + chatMsg).c_str(), 10, 720 - 30 + 2, 30, RAYWHITE); + DrawTextEx(myFont, ("> " + chatMsg).c_str(), {10, 720 - 30 + 2}, 20, 1, RAYWHITE); + msgY -= 36; + + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + } else { + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // if (GetTime() - msg.time <= 2) { + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, {245, 245, 245, (uint8_t)(255 - (GetTime() - msg.time) / 2.f * 255.f)}); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + // } + + // for (auto i = chatMessages.size(); i--;) { + // auto& msg = chatMessages[i]; + // DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + // msgY -= 22; + // } + } + + for (auto i = chatMessages.size(); i--;) { + auto& msg = chatMessages[i]; + DrawTextEx(myFont, msg.text.c_str(), {0, (float)msgY - 20}, 20, 1, RAYWHITE); + // DrawText(msg.c_str(), 0, msgY - 20, 20, RAYWHITE); + msgY -= 22; + } + + // DrawText((std::to_string(player.vel.x) + " " + std::to_string(player.vel.y)).c_str(), 0, 20, 20, RAYWHITE); + + EndDrawing(); + + lastTime = time; + } + + CloseWindow(); +} \ No newline at end of file diff --git a/src/Game.hpp b/src/Game.hpp new file mode 100644 index 0000000..f6075f0 --- /dev/null +++ b/src/Game.hpp @@ -0,0 +1,62 @@ +#pragma once +#include "saferaylib.h" +#include "Player.hpp" +#include "Level.hpp" +#include "unordered_map" +#include "cmath" +#include "utf8.h" +#include "assets.hpp" +#include "algorithm" + +inline Texture2D texFromMem(unsigned char* data, int size) { + return LoadTextureFromImage(LoadImageFromMemory(".png", data, size)); +} + +inline Texture2D skinFromName(std::string name) { + std::string lowerName = name; + std::transform(lowerName.begin(), lowerName.end(), lowerName.begin(), ::tolower); + + if (lowerName == "citrim") { + return texFromMem(citrim_data, citrim_data_size); + } else if (lowerName == "danilka22ah") { + return texFromMem(danilka22ah_data, danilka22ah_data_size); + } else if (lowerName == "invisedivine") { + return texFromMem(invisedivine_data, invisedivine_data_size); + } else if (lowerName == "jaan") { + return texFromMem(jaan_data, jaan_data_size); + } else if (lowerName == "fullharmony") { + return texFromMem(fullharmony_data, fullharmony_data_size); + } else { + return texFromMem(kolyah35_data, kolyah35_data_size); + } +} + +struct ChatMsg { + std::string text; + float time; +}; + +class Game { +public: + inline static Game& get() { + static Game inst; + return inst; + } + + void start(std::string name); + inline Vector2 worldToScreen(const Vector2& p) { return Vector2 {p.x - camPos.x, p.y - camPos.y}; } + + Vector2 camPos; + Level level; + Player player; + std::unordered_map otherPlayers; + std::string chatMsg; + std::vector chatMessages; + float spawnPointChangedTime; + float serverTime; + bool chatOpen; + bool entered; + +private: + Game(); +}; \ No newline at end of file diff --git a/src/Level.cpp b/src/Level.cpp new file mode 100644 index 0000000..3ebf498 --- /dev/null +++ b/src/Level.cpp @@ -0,0 +1,363 @@ +#include "Level.hpp" + +#include "assets.hpp" +#include "Game.hpp" + +Level::Level() {} + +void Level::load() { + // tex = LoadTexture("assets/level.png"); + tex = texFromMem(level_data, level_data_size); + + for (short y = 4; y > -45; y--) { + for (short x = -10; x < 130; x++) { + background.push_back({BRICKGRAY, x, y, GRAY}); + } + } + // Start room + for (short i = -11; i < 10; i++) { + tiles.push_back({BRICKGRAY, i, -5}); + } + for (short i = -6; i > -15; i--) { + tiles.push_back({BRICKGRAY, -11, i}); + } + for (short i = -9; i > -17; i--) { + tiles.push_back({BRICKGRAY, 9, i}); + } + + for (short y = -5; y < 15; y++) { + tiles.push_back({BRICKGRAY, 9, y}); + tiles.push_back({BRICKGRAY, -11, y}); + } + for (short x = -7; x < 6; x += 3) { + background.push_back({TORCH, x, -10}); + } + background.push_back({SIGN, 6, -6}); + background.push_back({BRICKGRAY, 9, -7, GRAY}); + background.push_back({BRICKGRAY, 9, -6, GRAY}); + background.push_back({BANNERBASEMENT, -10, -10}); + background.push_back({BANNERBASEMENT, 8, -10}); + + // Main level + // First platforms + background.push_back({TORCH, 11, -8}); + tiles.push_back({PLATFORMBIGLEFT, 11, -5}); + tiles.push_back({PLATFORMBIGRIGHT, 12, -5}); + + background.push_back({TORCH, 15, -10}); + tiles.push_back({PLATFORMBIGLEFT, 15, -7}); + tiles.push_back({PLATFORMBIGRIGHT, 16, -7}); + + background.push_back({TORCH, 19, -6}); + tiles.push_back({PLATFORMBIGLEFT, 19, -3}); + tiles.push_back({PLATFORMBIGRIGHT, 20, -3}); + + background.push_back({TORCH, 24, -8}); + tiles.push_back({PLATFORMBIGLEFT, 24, -5}); + tiles.push_back({PLATFORMBIGRIGHT, 25, -5}); + for (short x = 10; x < 30; x++) { + tiles.push_back({LAVA, x, 4}); + } + // Checkpoint 1 + background.push_back({BANNERSFF, 30, -10}); + background.push_back({BANNERSFF, 36, -10}); + checkpoints.push_back({CHECKPOINT, 33, -7}); + background.push_back({TORCH, 33, -10}); + + for (short x = 30; x < 36; x++) { + tiles.push_back({BRICKGRAY, x, -6}); + } + for (short y = -6; y < 15; y++) { + tiles.push_back({BRICKGRAY, 30, y}); + tiles.push_back({BRICKGRAY, 36, y}); + } + // Moving platforms + background.push_back({TORCH, 40, -9}); + background.push_back({BANNERDOOMETERNAL, 41, -9}); + background.push_back({TORCH, 42, -9}); + + background.push_back({TORCH, 45, -9}); + background.push_back({BANNERDOOMETERNAL, 46, -9}); + background.push_back({TORCH, 47, -9}); + + for (short x = 37; x < 53; x++) { + tiles.push_back({LAVA, x, 4}); + } + // for (short x = 38; x < 49; x += 5) { + // tiles.push_back({PLATFORMBIGLEFT, x, -7}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -7}); + // tiles.push_back({PLATFORMBIGLEFT, x, -10}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -10}); + // tiles.push_back({PLATFORMBIGLEFT, x, -12}); + // tiles.push_back({PLATFORMBIGRIGHT, static_cast(x + 1), -12}); + // } + plats.push_back({{38 * 64.f, -12 * 64.f}, 0}); + plats.push_back({{43 * 64.f, -12 * 64.f}, 1}); + plats.push_back({{48 * 64.f, -12 * 64.f}, 0}); + // Checkpoint 2 + checkpoints.push_back({CHECKPOINT, 56, -7}); + background.push_back({BANNERDOOMETERNAL, 53, -10}); + background.push_back({BANNERDOOMETERNAL, 59, -10}); + background.push_back({TORCH, 56, -10}); + for (short x = 53; x < 60; x++) { + tiles.push_back({BRICKGRAY, x, -6}); + } + for (short y = -6; y < 15; y++) { + tiles.push_back({BRICKGRAY, 53, y}); + tiles.push_back({BRICKGRAY, 59, y}); + } + // Way to upper platform + background.push_back({TORCH, 76, -9}); + background.push_back({TORCH, 76, -8}); + background.push_back({TORCH, 76, -7}); + background.push_back({TORCH, 76, -6}); + background.push_back({TORCH, 76, -5}); + background.push_back({TORCH, 76, -4}); + + background.push_back({TORCH, 75, -8}); + background.push_back({TORCH, 74, -7}); + + background.push_back({TORCH, 77, -8}); + background.push_back({TORCH, 78, -7}); + + for (short x = 60; x < 80; x++) { + tiles.push_back({LAVA, x, 4}); + } + + for (short y = 4; y > -40; y--) { + tiles.push_back({BRICKGRAY, 80, y}); + } + background.push_back({TORCH, 67, -8}); + background.push_back({TORCH, 62, -10}); + background.push_back({TORCH, 58, -12}); + + tiles.push_back({PLATFORMBIGLEFT, 64, -6}); + tiles.push_back({PLATFORMBIGRIGHT, 65, -6}); + + tiles.push_back({PLATFORMBIGLEFT, 69, -8}); + tiles.push_back({PLATFORMBIGRIGHT, 70, -8}); + + tiles.push_back({PLATFORMBIGLEFT, 64, -10}); + tiles.push_back({PLATFORMBIGRIGHT, 65, -10}); + + tiles.push_back({PLATFORMBIGLEFT, 60, -12}); + tiles.push_back({PLATFORMBIGRIGHT, 61, -12}); + + tiles.push_back({PLATFORMBIGLEFT, 56, -14}); + tiles.push_back({PLATFORMBIGRIGHT, 57, -14}); + + // Upper platform + for (short x = 54; x > 0; x--) { + tiles.push_back({BRICKGRAY, x, -15}); + } + background.push_back({BANNBERHL, 54, -19}); + checkpoints.push_back({CHECKPOINT, 52, -16}); + background.push_back({BANNBERHL, 50, -19}); + background.push_back({TORCH, 52, -19}); + + tiles.push_back({BRICKGRAY, 30, -16}); + tiles.push_back({BRICKGRAY, 10, -16}); + for (short x = 47; x > 34; x -= 2) { + // tiles.push_back({SAW, x, -19}); + // Vector2 pos = {x * 64.f, -19 * 64.f + 3 * 64 * (x - 34) / 2 / 7.f}; + // Vector2 pos = {x * 64.f, -19 * 64.f}; + // saws.push_back({pos, pos}); + saws.push_back({{x * 64.f, -19 * 64.f}, (x - 34) / 2 / 7.f}); + } + for (short x = 46; x > 34; x -= 2) { + background.push_back({TORCH, x, -19}); + } + // for (short x = 46; x > 33; x -= 4) { + // tiles.push_back({TORCH, x, -19}); + // } + for (short x = 29; x > 10; x--) { + tiles.push_back({LAVA, x, -16}); + } + background.push_back({BANNERNIRVANA, 31, -19}); + background.push_back({BANNERNIRVANA, 33, -19}); + background.push_back({TORCH, 32, -19}); + checkpoints.push_back({CHECKPOINT, 32, -16}); + + // Way to final corridor + background.push_back({TORCH, 24, -26}); + background.push_back({TORCH, 24, -25}); + background.push_back({TORCH, 24, -24}); + background.push_back({TORCH, 24, -23}); + background.push_back({TORCH, 24, -22}); + background.push_back({TORCH, 24, -21}); + background.push_back({TORCH, 24, -20}); + + background.push_back({TORCH, 25, -25}); + background.push_back({TORCH, 26, -24}); + + background.push_back({TORCH, 23, -25}); + background.push_back({TORCH, 22, -24}); + + tiles.push_back({PLATFORM, 27, -18}); + background.push_back({TORCH, 30, -22}); + tiles.push_back({PLATFORM, 30, -20}); + tiles.push_back({PLATFORM, 33, -22}); + tiles.push_back({PLATFORM, 35, -23}); + background.push_back({TORCH, 35, -25}); + tiles.push_back({PLATFORM, 32, -25}); + tiles.push_back({PLATFORM, 36, -27}); + tiles.push_back({PLATFORM, 40, -25}); + background.push_back({TORCH, 40, -27}); + tiles.push_back({PLATFORM, 44, -27}); + tiles.push_back({PLATFORM, 48, -23}); + background.push_back({TORCH, 48, -25}); + tiles.push_back({PLATFORM, 52, -25}); + + // final corridor + for (short x = 56; x < 81; x++) { + tiles.push_back({BRICKGRAY, x, -25}); + } + background.push_back({BANNERBASEMENT, 56, -28}); + background.push_back({TORCH, 57, -28}); + background.push_back({TORCH, 58, -28}); + background.push_back({BANNERSFF, 59, -28}); + background.push_back({TORCH, 60, -28}); + background.push_back({TORCH, 61, -28}); + background.push_back({BANNERDOOMETERNAL, 62, -28}); + background.push_back({TORCH, 63, -28}); + background.push_back({TORCH, 64, -28}); + background.push_back({BANNBERHL, 65, -28}); + background.push_back({TORCH, 66, -28}); + background.push_back({TORCH, 67, -28}); + background.push_back({BANNERNIRVANA, 68, -28}); + checkpoints.push_back({CHECKPOINT, 68, -26}); + + // tiles.push_back({BRICKGRAY, 70, -28}); + // tiles.push_back({BRICKGRAY, 70, -29}); + for (short y = -28; y > -40; y--) { + tiles.push_back({BRICKGRAY, 70, y}); + } + for (short x = 71; x < 80; x++) { + tiles.push_back({BRICKGRAY, x, -31}); + } + tiles.push_back({TABLELEFT, 75, -26}); + tiles.push_back({TABLERIGHT, 76, -26}); + + background.push_back({TORCH, 71, -29}); + background.push_back({BALOON1, 72, -29}); + background.push_back({BALOON2, 77, -30}); + background.push_back({BALOON3, 73, -28}); + background.push_back({TORCH, 79, -29}); + background.push_back({BALOON4, 78, -29}); +} + +void Level::update(float dt) { + for (auto& saw : saws) { + saw.pos.y = -19 * 64.f + 3 * 64.f * (sinf(Game::get().serverTime * 2.2f + saw.offset * 2.f) / 2.f + 0.5f); + } + for (auto& plat : plats) { + plat.pos.y = -12 * 64.f + 4 * 64.f * (sinf((Game::get().serverTime + plat.offset * PI / 2) * 2.2f) / 2.f + 0.5f); + } +} + +// #define ROUND_POS(x) (float)((int)(x)) +#define ROUND_POS(x) floorf(x) + +void Level::drawBack() { + // Behind player + for (const auto& tile : background) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + auto tid = tile.id; + if (Game::get().entered && tile.id == BRICKGRAY) { + tid = WOOD; + } + DrawTexturePro(tex, {32.0f * (tid % 10), 32.0f * (tid / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } + for (const auto& tile : checkpoints) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + DrawTexturePro(tex, {32.0f * (tile.id % 10), 32.0f * (tile.id / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } +} + +void Level::draw() { + for (const auto& tile : tiles) { + auto p = Game::get().worldToScreen({(float)tile.x * 64, (float)tile.y * 64}); + if (p.x < -64.f || p.y < -64.f || p.x > 1280 || p.y > 720) { + continue; + } + // DrawTexturePro(tex, {32.0f * (tile.id % 10), 32.0f * (tile.id / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + auto tid = tile.id; + if (Game::get().entered && tile.id == BRICKGRAY) { + tid = WOOD; + } + DrawTexturePro(tex, {32.0f * (tid % 10), 32.0f * (tid / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, tile.col); + } + for (const auto& saw : saws) { + auto p = Game::get().worldToScreen(saw.pos); + DrawTexturePro(tex, {32.0f * (SAW % 10), 32.0f * (SAW / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + } + auto c = Game::get().worldToScreen({4810, -1690}); + + DrawTexturePro(tex, {32.0f * (CAKE % 10), 32.0f * (CAKE / 10), 32.0f, 32.0f}, {ROUND_POS(c.x), ROUND_POS(c.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + for (const auto& plat : plats) { + auto p = Game::get().worldToScreen(plat.pos); + DrawTexturePro(tex, {32.0f * (PLATFORMBIGLEFT % 10), 32.0f * (PLATFORMBIGLEFT / 10), 32.0f, 32.0f}, {ROUND_POS(p.x), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, WHITE); + DrawTexturePro(tex, {32.0f * (PLATFORMBIGRIGHT % 10), 32.0f * (PLATFORMBIGRIGHT / 10), 32.0f, 32.0f}, {ROUND_POS(p.x + 64.f), ROUND_POS(p.y), 64.0f, 64.0f}, {0, 0}, 0, + WHITE); + } +} + +float Level::collides(const Rectangle& rect, bool y) { + for (const auto& plat : plats) { + Rectangle tileRect = Rectangle {plat.pos.x, plat.pos.y + 44.f, 96.f, 64.f - 44.f}; + + if (CheckCollisionRecs(rect, tileRect)) { + auto colRect = GetCollisionRec(rect, tileRect); + if (colRect.height > 0 && y) { + return colRect.height; + } + if (colRect.width > 0 && !y) { + return colRect.width; + } + } + } + + for (const auto& tile : tiles) { + Rectangle tileRect = Rectangle {tile.x * 64.0f, tile.y * 64.0f, 64.0, 64.0f}; + if (tile.id == TABLELEFT) { + tileRect.y += 26.f; + tileRect.height -= 26.f; + } else if (tile.id == TABLERIGHT) { + tileRect.y += 26.f; + tileRect.height -= 26.f; + tileRect.width -= 32.f; + } else if (tile.id == PLATFORM) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + tileRect.width -= 32.f; + } else if (tile.id == PLATFORMBIGLEFT) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + } else if (tile.id == PLATFORMBIGRIGHT) { + tileRect.y += 44.f; + tileRect.height -= 44.f; + // tileRect.width -= 32.f; + } else if (tile.id == LAVA) { + tileRect.y += 24.f; + tileRect.height -= 24.f; + } + + if (CheckCollisionRecs(rect, tileRect)) { + auto colRect = GetCollisionRec(rect, tileRect); + if (colRect.height > 0 && y) { + return colRect.height; + } + if (colRect.width > 0 && !y) { + return colRect.width; + } + } + } + + return 0; +} \ No newline at end of file diff --git a/src/Level.hpp b/src/Level.hpp new file mode 100644 index 0000000..19165c9 --- /dev/null +++ b/src/Level.hpp @@ -0,0 +1,78 @@ +#pragma once +#include "saferaylib.h" +#include +#include + +enum TextureTilePos { + BRICKGRAY = 0, + BRICKRED, + TORCH, + SAW, + CAKE, + + TABLELEFT, + TABLERIGHT, + + PLATFORMBIGLEFT, + PLATFORMBIGRIGHT, + + PLATFORM, + CHECKPOINT, + BANNERBASEMENT, + BANNERSFF, + BANNERDOOMETERNAL, + SIGN, + BANNBERHL, + BANNERNIRVANA, + LAVA, + + WHITEBRICKS, + BALOON1, + BALOON2, + BALOON3, + BALOON4, + + WOOD +}; + +// 64x64 pxl +struct Tile { + uint8_t id; + int16_t x; + int16_t y; + Color col = WHITE; + // Vector2 size = {0, 0}; +}; + +struct Saw { + // Vector2 startPos; + Vector2 pos; + float offset; +}; + +struct Platform { + // Vector2 startPos; + Vector2 pos; + float offset; +}; + +class Level { +public: + Level(); + + void load(); + float collides(const Rectangle& rect, bool y); + void update(float dt); + void draw(); + void drawBack(); + + std::vector checkpoints; + std::vector background; + std::vector tiles; + std::vector saws; + std::vector plats; + +private: + Texture2D tex; + // std::vector tilesBig; +}; \ No newline at end of file diff --git a/src/Multiplayer.cpp b/src/Multiplayer.cpp new file mode 100644 index 0000000..a14b770 --- /dev/null +++ b/src/Multiplayer.cpp @@ -0,0 +1,247 @@ +#include "Multiplayer.hpp" + +#include +#include +#include +#include +#include "Game.hpp" + +// #define SERVER_ADDRESS "127.0.0.1" +#define SERVER_ADDRESS "sffnetwork.su" + +void Multiplayer::connect(const char* name) { + printf("name %s\n", name); + m_name = name; + + m_state = MultiplayerState::CONNECTING; + + client = enet_host_create(nullptr, 1, LAST_CHANNEL, 0, 0); + if (!client) { + printf("client null\n"); + exit(1); + } + + ENetAddress address; + enet_address_set_host(&address, SERVER_ADDRESS); + address.port = 7777; + + peer = enet_host_connect(client, &address, LAST_CHANNEL, 0); + if (peer == nullptr) { + printf("peer null\n"); + enet_host_destroy(client); + exit(1); + } + + ENetEvent event; + auto res = enet_host_service(client, &event, 5000); + + if (res <= 0 || event.type != ENET_EVENT_TYPE_CONNECT) { + enet_peer_reset(peer); + printf("Failed to connect to server!\n"); + exit(1); + } + + auto packet_size = 1 + 2 + strlen(name); + auto login_packet = new char[packet_size]; + login_packet[0] = Header::IDENTIFICATION; + *(uint16_t*)(login_packet + 1) = strlen(name); + memcpy(login_packet + 3, name, strlen(name)); + + if (sendPacket(login_packet, packet_size)) { + printf("trying to reg!!\n"); + m_state = MultiplayerState::LOGGING_IN; + } +} + +int Multiplayer::sendPacket(char* data, int size, Channel channel, bool reliable) { + auto enetPacket = enet_packet_create(data, size, reliable ? ENET_PACKET_FLAG_RELIABLE : ENET_PACKET_FLAG_UNRELIABLE_FRAGMENT); + + return enet_peer_send(peer, channel, enetPacket) == 0; +} + +void Multiplayer::update(float dt) { + ENetEvent event; + while (enet_host_service(client, &event, 0) > 0) { + switch (event.type) { + case ENET_EVENT_TYPE_RECEIVE: { + // printf("packet received\n"); + + auto bytes = event.packet->data; + + // for (int i = 0; i < event.packet->dataLength; i++) { + // printf("%02X ", bytes[i]); + // } + // printf("\n"); + + switch (bytes[0]) { + case LOAD_PLAYER: { // all players get this when a new player connects + bytes++; + + uint16_t nameLen = *(uint16_t*)bytes; + bytes += 2; + + auto name = new char[nameLen + 1]; + memcpy(name, bytes, nameLen); + bytes += nameLen; + name[nameLen] = 0; + + uint32_t playerID = *(uint32_t*)bytes; + bytes += 4; + float serverTime = *(float*)bytes; + + printf("- load player name %s id %i server time %f\n", name, playerID, serverTime); + + Game::get().chatMessages.push_back({"Player " + std::string(name) + " has joined.", (float)GetTime()}); + + if (m_name == name) { + printf("- its me!\n"); + m_id = playerID; + m_state = MultiplayerState::PLAYING; + Game::get().serverTime = serverTime; + + char packet = Header::LOAD_PLAYERS; + + sendPacket(&packet, 1); + } else { + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + auto p = Player(skinFromName(name), name); + p.pos.y = -400; + Game::get().otherPlayers[playerID] = p; + } + + break; + } + + case LOAD_PLAYERS: { // get list of all players on server with their id,pos,name + printf("- load players packet size %i\n", event.packet->dataLength); + + bytes++; + + auto num = *bytes; + bytes++; + + for (int i = 0; i < num; i++) { + auto id = *(uint32_t*)bytes; + bytes += 4; + auto x = *(float*)bytes; + bytes += 4; + auto y = *(float*)bytes; + bytes += 4; + + auto nameLen = *(uint16_t*)bytes; + bytes += 2; + + auto name = new char[nameLen + 1]; + name[nameLen] = 0; + memcpy(name, bytes, nameLen); + bytes += nameLen; + + printf("- - player: x %f y %f name %s id %i\n", x, y, name, id); + // std::string texture = "assets/"; + // std::string nicknamee = name; + // std::transform(nicknamee.begin(), nicknamee.end(), nicknamee.begin(), ::tolower); + // texture.append(nicknamee).append(".png"); + + auto p = Player(skinFromName(name), name); + // auto p = Player(texture.c_str(), name); + p.pos = {x, y}; + Game::get().otherPlayers[id] = p; + } + + break; + } + + case PLAYER: { // pos of all players + bytes++; + + auto num = *bytes; + bytes++; + + for (int i = 0; i < num; i++) { + auto id = *(uint32_t*)bytes; + bytes += 4; + auto x = *(float*)bytes; + bytes += 4; + auto y = *(float*)bytes; + bytes += 4; + + if (id == peer->connectID) { + continue; + } + + if (Game::get().otherPlayers.contains(id)) { + auto& p = Game::get().otherPlayers[id]; + // Game::get().otherPlayers[id].pos = {x, y}; + auto delta_x = x - p.pos.x; + p.pos = {x, y}; + p.vel.x = delta_x; + // p.walkRight = delta_x > 0; + if (delta_x > 0) { + p.walkRight = true; + } else if (delta_x < 0) { + p.walkRight = false; + } + } + } + + break; + } + + case MESSAGE: { + bytes++; + + auto len = *(uint16_t*)bytes; + bytes += 2; + + auto msg = new char[len + 1]; + msg[len] = 0; + + memcpy(msg, bytes, len); + + Game::get().chatMessages.push_back({msg, (float)GetTime()}); + + delete[] msg; + + break; + } + + default: { + printf("- unk packet %i\n", bytes[0]); + break; + } + } + + break; + } + + case ENET_EVENT_TYPE_DISCONNECT: { + printf("Connection closed.\n"); + break; + } + + default: break; + } + } + + m_updateTime += dt; + + const auto POS_TIME = 1 / 30.f; + if (m_updateTime > POS_TIME) { + // printf("sending pos\n"); + m_updateTime -= POS_TIME; + + auto data = new char[1 + 4 + 4]; + + data[0] = Header::PLAYER; + *(float*)(data + 1) = Game::get().player.pos.x; + *(float*)(data + 1 + 4) = Game::get().player.pos.y; + + sendPacket(data, 1 + 4 + 4); + + delete[] data; + } +} \ No newline at end of file diff --git a/src/Multiplayer.hpp b/src/Multiplayer.hpp new file mode 100644 index 0000000..891d75d --- /dev/null +++ b/src/Multiplayer.hpp @@ -0,0 +1,98 @@ +#pragma once +#include "saferaylib.h" +#include "cstdio" +#include "cstdint" +#include "string" + +enum Channel : uint8_t { + EVERYTHING, + BLOCKS, + LAST_CHANNEL +}; + +enum Header : uint8_t { + // World headers (also uses in mp) + PLAYER, + BLOCK, + CHUNK, + WORLD, + ENTITY, + INVENTORY_ITEM, + + // Multiplayer headers + IDENTIFICATION, + DISCONNECT, + LOAD_CHUNK, + UNLOAD_CHUNK, + LOAD_PLAYER, + UNLOAD_PLAYER, + BLOCK_PLACE, + BLOCK_DESTROY, + + NETWORK_ERROR, + ARRAY, + TERRAIN, + LOAD_TERRAIN, + LOAD_PLAYERS, + MESSAGE, + LOAD_MESSAGE, + NULL_PACKET = 0xFF +}; + +enum MultiplayerState { + CONNECTING, + LOGGING_IN, + LOADING_TERRAIN, + PLAYING, + ERROR +}; + +class Multiplayer { +public: + static Multiplayer& get() { + static Multiplayer inst; + return inst; + } + + // ~Multiplayer() { + // printf("MP distr\n"); + + // char data = Header::DISCONNECT; + + // sendPacket(&data, 1); + + // if (peer) { + // enet_peer_reset(peer); + // peer = nullptr; + // } + + // if (client) { + // enet_host_destroy(client); + // client = nullptr; + // } + // } + + Multiplayer() : m_state(MultiplayerState::CONNECTING), client(nullptr), peer(nullptr), m_updateTime(0) { + printf("MP constr\n"); + if (enet_initialize() != 0) { + printf("An error occurred while initializing ENet.\n"); + exit(1); + } + atexit(enet_deinitialize); + } + + void connect(const char* name); + + int sendPacket(char* data, int size, Channel channel = EVERYTHING, bool reliable = true); + void update(float dt); + + MultiplayerState m_state; + +private: + ENetHost* client; + ENetPeer* peer; + std::string m_name; + uint32_t m_id; + float m_updateTime; + bool connected = false; +}; diff --git a/src/Player.cpp b/src/Player.cpp new file mode 100644 index 0000000..cab3ab6 --- /dev/null +++ b/src/Player.cpp @@ -0,0 +1,131 @@ +#include "Player.hpp" +#include "Game.hpp" +#include + +Player::Player(const char* texName, std::string name, const Vector2& frameSize, int fps) : Player(LoadTexture(texName), name, frameSize, fps) {} + +Player::Player(Texture2D tex, std::string name, const Vector2& frameSize, int fps) + : pos(0, 0), animTime(0), targetFrameTime(1.0f / fps), curFrame(0), vel(0, 0), onGround(false), walkRight(true), name(name), tex(tex) { + totalFrames = (int)(tex.width / frameSize.x); +} + +void Player::update(float dt) { + bool co = Game::get().chatOpen; + + // // Should be removed from release build + // if (IsKeyDown(KEY_R) && !co) { + // // pos = {-66, -400}; + // pos = spawnPoint; + // } + if (IsKeyDown(KEY_A) && !co) { + vel.x = -500; + walkRight = false; + } else if (IsKeyDown(KEY_D) && !co) { + vel.x = 500; + walkRight = true; + } else { + vel.x = 0; + } + + if ((IsKeyDown(KEY_SPACE) || IsKeyDown(KEY_W)) && !co +#if 1 + && onGround +#endif + ) { + onGround = false; + // vel.y = -47000 * dt; + // vel.y = -(47000 * (1.f / 60)); + vel.y = -(49000 * (1.f / 60)); + } + + // vel.y += 2000 * dt; + vel.y += 2300 * dt; + + pos.y += vel.y * dt; + auto playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + auto colY = Game::get().level.collides(playerRect, true); + if (colY != 0) { + pos.y -= colY * (vel.y > 0 ? 1 : -1); + if (vel.y > 0) { + onGround = true; + } + vel.y = 0; + } else { + onGround = false; + } + + pos.x += vel.x * dt; + playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + auto colX = Game::get().level.collides(playerRect, false); + pos.x -= colX * (vel.x > 0 ? 1 : -1); + if (vel.x != 0) { + animTime += dt; + if (animTime >= targetFrameTime) { + animTime -= targetFrameTime; + curFrame = (curFrame + 1) % (totalFrames - 1); + // printf("%i\n", curFrame); + } + } + + if (vel.x == 0) { + curFrame = 0; + animTime = 0; + } + + playerRect = Rectangle {pos.x + 10, pos.y, 64 - 20, 128}; + + for (auto& tile : Game::get().level.checkpoints) { + Rectangle tileRect = Rectangle {tile.x * 64.0f, tile.y * 64.0f, 64.0, 64.0f}; + + if (CheckCollisionRecs(playerRect, tileRect) && Game::get().spawnPointChangedTime == 0) { + spawnPoint = {tile.x * 64.0f - 32.f, tile.y * 64.0f}; + Game::get().spawnPointChangedTime = GetTime(); + break; + } + } + + for (auto& tile : Game::get().level.tiles) { + if (tile.id == LAVA) { + Rectangle tileRect = Rectangle {tile.x * 64.0f - 2, tile.y * 64.0f - 2, 64.0 + 4, 64.0f + 4}; + tileRect.x += 2; + tileRect.width -= 4; + tileRect.y += 24.f; + tileRect.height -= 24.f; + if (CheckCollisionRecs(tileRect, playerRect)) { + pos = spawnPoint; + vel = {0, 0}; + break; + } + } + } + + for (auto& saw : Game::get().level.saws) { + Rectangle tileRect = Rectangle {saw.pos.x + 2, saw.pos.y + 2, 64.0 - 4, 64.0f - 4}; + if (CheckCollisionRecs(tileRect, playerRect)) { + pos = spawnPoint; + vel = {0, 0}; + break; + } + } + + if (pos.y > -1900 && pos.y < -1700 && pos.x > 4500) { + Game::get().entered = true; + } + + // Game::get().camPos.x = fmax(pos.x - 640 + 32, -11 * 64.f); + Game::get().camPos.x = std::clamp(pos.x - 640 + 32, -11 * 64.f, 81 * 64.f - 1280); + Game::get().camPos.y = fmin(pos.y - 360 + 64, 4 * 64.f - 720 + 64); +} + +void Player::draw() { + // DrawTextureRec(tex, {(float)tex.width / totalFrames * curFrame, 0, (float)tex.width / totalFrames, (float)tex.height}, pos, WHITE); + auto p = Game::get().worldToScreen(pos); + auto ffframe = (vel.x != 0) ? curFrame + 1 : curFrame; + if (walkRight) { + DrawTexturePro(tex, {(float)tex.width / totalFrames * ffframe, 0, (float)tex.width / totalFrames, (float)tex.height}, + {p.x, p.y, (float)tex.width / totalFrames * 2, (float)tex.height * 2}, {0, 0}, 0, WHITE); + } else { + DrawTexturePro(tex, {(float)tex.width / totalFrames * (ffframe), 0, -(float)tex.width / totalFrames, (float)tex.height}, + {p.x, p.y, (float)tex.width / totalFrames * 2, (float)tex.height * 2}, {0, 0}, 0, WHITE); + } +} \ No newline at end of file diff --git a/src/Player.hpp b/src/Player.hpp new file mode 100644 index 0000000..cf4607a --- /dev/null +++ b/src/Player.hpp @@ -0,0 +1,27 @@ +#pragma once +#include "saferaylib.h" +#include "string" + +class Player { +public: + Player() {} + Player(const char* texName, std::string name, const Vector2& frameSize = {32, 64}, int fps = 7); + Player(Texture2D tex, std::string name, const Vector2& frameSize = {32, 64}, int fps = 7); + + void update(float dt); + void draw(); + + Vector2 pos; + Vector2 vel; + std::string name; + Vector2 spawnPoint; + bool walkRight; + float animTime; + int curFrame; + int totalFrames; + float targetFrameTime; + +private: + Texture2D tex; + bool onGround; +}; \ No newline at end of file diff --git a/src/assets.hpp b/src/assets.hpp new file mode 100644 index 0000000..fb9ab81 --- /dev/null +++ b/src/assets.hpp @@ -0,0 +1,1528 @@ +#pragma once +#include "cstdint" + +inline uint8_t minecraft_data[0x5530] = { + 0x0, 0x1, 0x0, 0x0, 0x0, 0xa, 0x0, 0x80, 0x0, 0x3, 0x0, 0x20, 0x4f, 0x53, 0x2f, 0x32, 0x56, 0x30, 0xf5, 0xd8, 0x0, 0x0, 0x1, 0x28, 0x0, 0x0, 0x0, 0x60, 0x63, + 0x6d, 0x61, 0x70, 0x97, 0x66, 0x8e, 0xa4, 0x0, 0x0, 0x5, 0xc8, 0x0, 0x0, 0x1, 0xda, 0x67, 0x6c, 0x79, 0x66, 0x79, 0xff, 0xef, 0x38, 0x0, 0x0, 0x9, 0xc8, 0x0, 0x0, + 0x47, 0x4c, 0x68, 0x65, 0x61, 0x64, 0xfc, 0xdd, 0xed, 0xf4, 0x0, 0x0, 0x0, 0xac, 0x0, 0x0, 0x0, 0x36, 0x68, 0x68, 0x65, 0x61, 0x8, 0x3, 0x5, 0x10, 0x0, 0x0, 0x0, + 0xe4, 0x0, 0x0, 0x0, 0x24, 0x68, 0x6d, 0x74, 0x78, 0xf0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x1, 0x88, 0x0, 0x0, 0x4, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x4a, 0x89, 0x5c, 0x76, + 0x0, 0x0, 0x7, 0xa4, 0x0, 0x0, 0x2, 0x24, 0x6d, 0x61, 0x78, 0x70, 0x1, 0x1c, 0x0, 0x28, 0x0, 0x0, 0x1, 0x8, 0x0, 0x0, 0x0, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3e, + 0xdd, 0xe1, 0x61, 0x0, 0x0, 0x51, 0x14, 0x0, 0x0, 0x3, 0xfc, 0x70, 0x6f, 0x73, 0x74, 0x0, 0x69, 0x0, 0x33, 0x0, 0x0, 0x55, 0x10, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x1, 0x19, 0x9a, 0xd5, 0xce, 0x45, 0x37, 0x5f, 0xf, 0x3c, 0xf5, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0xa0, 0x51, 0xa0, 0x0, 0x0, 0x0, + 0x0, 0xcc, 0xa9, 0x3e, 0xbd, 0x0, 0x0, 0xff, 0x80, 0x4, 0x80, 0x3, 0x80, 0x0, 0x0, 0x0, 0x8, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, + 0x3, 0x80, 0xff, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0xff, 0x80, 0x4, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x1, 0xf, 0x0, 0x1, 0x0, 0x0, 0x1, 0x11, 0x0, 0x28, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x2, 0x67, 0x1, 0x90, 0x0, 0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x2, 0x0, 0x2, 0x0, 0x0, + 0x0, 0x2, 0x0, 0x0, 0x33, 0x0, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x2, 0x7, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x47, 0x44, 0x4e, 0x0, 0x40, 0x0, 0xd, 0x21, 0x22, 0x3, 0x80, 0xff, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x80, 0x0, 0xe, 0x0, + 0x5, 0x2, 0x2, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, + 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, + 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x80, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x80, 0x3, + 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, + 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x80, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x2, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x5, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, + 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1c, + 0x0, 0x4, 0x0, 0xb8, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x20, 0x0, 0x4, 0x0, 0xa, 0x0, 0x0, 0x0, 0xd, 0x0, 0x7e, 0x0, 0xa6, 0x0, 0xde, 0x0, 0xef, 0x0, 0xff, 0x1, + 0x53, 0x1, 0x78, 0x4, 0x1, 0x4, 0x4f, 0x4, 0x51, 0x20, 0x14, 0x20, 0x1e, 0x20, 0x20, 0x20, 0x22, 0x20, 0x26, 0x20, 0x3a, 0x20, 0xac, 0x21, 0x22, 0xff, 0xff, 0x0, 0x0, + 0x0, 0x0, 0x0, 0xd, 0x0, 0x20, 0x0, 0xa1, 0x0, 0xa8, 0x0, 0xe0, 0x0, 0xf1, 0x1, 0x52, 0x1, 0x78, 0x4, 0x1, 0x4, 0x10, 0x4, 0x51, 0x20, 0x14, 0x20, 0x18, 0x20, + 0x20, 0x20, 0x22, 0x20, 0x26, 0x20, 0x39, 0x20, 0xac, 0x21, 0x22, 0xff, 0xff, 0x0, 0x0, 0xff, 0xf4, 0xff, 0xe2, 0xff, 0xc0, 0xff, 0xbf, 0xff, 0xbe, 0xff, 0xbd, 0xff, 0x6b, + 0xff, 0x47, 0xfd, 0xf, 0xfc, 0xbf, 0xfc, 0xbe, 0xe0, 0xac, 0xe0, 0xa9, 0xe0, 0xa8, 0xe0, 0xa7, 0xe0, 0xa4, 0xe0, 0x92, 0xe0, 0x21, 0xdf, 0xac, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x26, 0x0, 0x56, 0x0, 0x84, + 0x0, 0xb6, 0x0, 0xf6, 0x1, 0xa, 0x1, 0x2e, 0x1, 0x52, 0x1, 0x76, 0x1, 0x8e, 0x1, 0x9a, 0x1, 0xa6, 0x1, 0xb2, 0x1, 0xd4, 0x2, 0x4, 0x2, 0x1a, 0x2, 0x4c, 0x2, + 0x80, 0x2, 0xa4, 0x2, 0xca, 0x2, 0xf2, 0x3, 0x10, 0x3, 0x46, 0x3, 0x72, 0x3, 0x86, 0x3, 0x9a, 0x3, 0xc8, 0x3, 0xdc, 0x4, 0x8, 0x4, 0x34, 0x4, 0x5a, 0x4, 0x76, + 0x4, 0x9c, 0x4, 0xc0, 0x4, 0xda, 0x4, 0xf0, 0x5, 0x4, 0x5, 0x26, 0x5, 0x3e, 0x5, 0x52, 0x5, 0x6a, 0x5, 0x98, 0x5, 0xa6, 0x5, 0xca, 0x5, 0xee, 0x6, 0xe, 0x6, + 0x2a, 0x6, 0x56, 0x6, 0x78, 0x6, 0xa4, 0x6, 0xb6, 0x6, 0xd0, 0x6, 0xf8, 0x7, 0x1c, 0x7, 0x56, 0x7, 0x7a, 0x7, 0xa2, 0x7, 0xb4, 0x7, 0xdc, 0x7, 0xee, 0x8, 0x10, + 0x8, 0x1c, 0x8, 0x28, 0x8, 0x48, 0x8, 0x6c, 0x8, 0x90, 0x8, 0xb2, 0x8, 0xd2, 0x8, 0xee, 0x9, 0x12, 0x9, 0x32, 0x9, 0x44, 0x9, 0x64, 0x9, 0x8e, 0x9, 0xa0, 0x9, + 0xc4, 0x9, 0xda, 0x9, 0xfa, 0xa, 0x20, 0xa, 0x44, 0xa, 0x64, 0xa, 0x86, 0xa, 0xa2, 0xa, 0xb8, 0xa, 0xdc, 0xa, 0xf6, 0xb, 0x2e, 0xb, 0x4e, 0xb, 0x6e, 0xb, 0x94, + 0xb, 0xa0, 0xb, 0xc6, 0xb, 0xe4, 0xb, 0xf6, 0xc, 0x10, 0xc, 0x30, 0xc, 0x52, 0xc, 0x86, 0xc, 0x9a, 0xc, 0xc8, 0xc, 0xe8, 0xc, 0xfa, 0xd, 0x38, 0xd, 0x48, 0xd, + 0x56, 0xd, 0x7a, 0xd, 0x86, 0xd, 0x9a, 0xd, 0xb8, 0xd, 0xcc, 0xd, 0xde, 0xd, 0xec, 0xe, 0x0, 0xe, 0x20, 0xe, 0x2c, 0xe, 0x3e, 0xe, 0x4c, 0xe, 0x60, 0xe, 0x9c, + 0xe, 0xd6, 0xf, 0xa, 0xf, 0x42, 0xf, 0x6a, 0xf, 0x8e, 0xf, 0xb0, 0xf, 0xde, 0x10, 0x10, 0x10, 0x38, 0x10, 0x5a, 0x10, 0x7c, 0x10, 0xae, 0x10, 0xcc, 0x10, 0xea, 0x11, + 0x16, 0x11, 0x38, 0x11, 0x54, 0x11, 0x70, 0x11, 0x98, 0x11, 0xb8, 0x11, 0xdc, 0x12, 0xe, 0x12, 0x36, 0x12, 0x5e, 0x12, 0x90, 0x12, 0xc6, 0x12, 0xf2, 0x13, 0x2a, 0x13, 0x54, + 0x13, 0x74, 0x13, 0x94, 0x13, 0xc0, 0x13, 0xe6, 0x14, 0x12, 0x14, 0x38, 0x14, 0x5e, 0x14, 0x84, 0x14, 0xb6, 0x14, 0xec, 0x15, 0x18, 0x15, 0x3e, 0x15, 0x6a, 0x15, 0x9c, 0x15, + 0xc4, 0x15, 0xea, 0x16, 0x1c, 0x16, 0x48, 0x16, 0x5c, 0x16, 0x6e, 0x16, 0x8e, 0x16, 0xa6, 0x16, 0xce, 0x16, 0xf6, 0x17, 0x1e, 0x17, 0x50, 0x17, 0x86, 0x17, 0xb2, 0x17, 0xcc, + 0x17, 0xf4, 0x18, 0x10, 0x18, 0x2c, 0x18, 0x54, 0x18, 0x74, 0x18, 0x9c, 0x18, 0xc2, 0x18, 0xee, 0x19, 0xe, 0x19, 0x3c, 0x19, 0x6c, 0x19, 0x78, 0x19, 0x8a, 0x19, 0x9c, 0x19, + 0xae, 0x19, 0xc2, 0x19, 0xe0, 0x19, 0xfe, 0x1a, 0x1c, 0x1a, 0x32, 0x1a, 0x40, 0x1a, 0x56, 0x1a, 0x6c, 0x1a, 0x82, 0x1a, 0xac, 0x1a, 0xce, 0x1a, 0xee, 0x1b, 0xc, 0x1b, 0x34, + 0x1b, 0x44, 0x1b, 0x62, 0x1b, 0x7a, 0x1b, 0xae, 0x1b, 0xe4, 0x1c, 0x6, 0x1c, 0x34, 0x1c, 0x6c, 0x1c, 0x88, 0x1c, 0xac, 0x1c, 0xc4, 0x1c, 0xe6, 0x1c, 0xf8, 0x1d, 0x16, 0x1d, + 0x3c, 0x1d, 0x4e, 0x1d, 0x74, 0x1d, 0xa0, 0x1d, 0xde, 0x1d, 0xf6, 0x1e, 0xe, 0x1e, 0x26, 0x1e, 0x44, 0x1e, 0x64, 0x1e, 0x88, 0x1e, 0xa4, 0x1e, 0xd0, 0x1e, 0xfc, 0x1f, 0x28, + 0x1f, 0x4a, 0x1f, 0x7a, 0x1f, 0x9c, 0x1f, 0xac, 0x1f, 0xd4, 0x1f, 0xf6, 0x20, 0x28, 0x20, 0x4e, 0x20, 0x66, 0x20, 0x8a, 0x20, 0xb4, 0x20, 0xd2, 0x20, 0xf4, 0x21, 0xc, 0x21, + 0x2e, 0x21, 0x40, 0x21, 0x5e, 0x21, 0x86, 0x21, 0x98, 0x21, 0xb8, 0x21, 0xe0, 0x22, 0x18, 0x22, 0x30, 0x22, 0x4a, 0x22, 0x62, 0x22, 0x7e, 0x22, 0x9c, 0x22, 0xc2, 0x22, 0xde, + 0x23, 0x8, 0x23, 0x34, 0x23, 0x56, 0x23, 0x84, 0x23, 0xa6, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x35, 0x33, + 0x15, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x1f, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x3, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x11, + 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x11, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, + 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x1b, 0x0, + 0x0, 0x21, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x13, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, + 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, + 0x11, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, + 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x1, 0x35, 0x23, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0xff, 0x0, 0x2, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x13, 0x11, 0x33, 0x11, + 0x3, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, + 0x3d, 0x1, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, + 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x2, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, + 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0xb, 0x0, 0x0, 0x25, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, + 0x11, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, + 0x0, 0x80, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x2, 0x80, 0x2, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x2, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x31, 0x11, + 0x33, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, + 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x21, 0x11, + 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, + 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x21, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, + 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x1, 0x0, 0x80, + 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, + 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0x13, 0x0, 0x0, 0x13, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x13, 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x11, 0x23, 0x35, 0x21, 0x11, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, + 0x33, 0x11, 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x35, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x19, 0x1, 0x35, 0x33, + 0x15, 0x3d, 0x1, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, + 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x0, 0x21, + 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x21, 0x15, 0x23, 0x11, 0x21, 0x11, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, + 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, + 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, + 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x0, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x7, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x2, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x3d, 0x1, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x2, 0x80, + 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x5, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x37, 0x11, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x2, + 0x0, 0xfd, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x3, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x3, 0x35, 0x33, 0x15, + 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, + 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x5, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x3, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x80, 0xfe, + 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0x0, + 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x0, 0x4, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x11, 0x21, 0x11, + 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfd, 0x80, + 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x11, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfc, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x5, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x3, + 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x15, 0x80, 0x2, 0x0, 0x3, 0x80, 0xfd, + 0x0, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, + 0x15, 0x23, 0x11, 0x21, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, + 0x0, 0x3, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0xb, 0x0, 0x13, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x0, + 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, + 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, + 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, + 0x33, 0x35, 0x21, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, + 0xff, 0x0, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, + 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x3, + 0x35, 0x33, 0x15, 0x1, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, + 0x0, 0x0, 0x21, 0x11, 0x21, 0x35, 0x21, 0x15, 0x21, 0x11, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0xff, 0x0, 0x3, 0x0, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, 0xfe, + 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x1, 0x11, 0x33, 0x11, 0x21, 0x11, + 0x33, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, + 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x15, 0x21, 0x35, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x31, 0x11, 0x33, + 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, + 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, + 0x17, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x35, 0x21, 0x11, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x1, 0x80, 0xff, 0x0, + 0x1, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xff, 0x0, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x31, 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x1, 0x0, 0xff, 0x0, + 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x0, + 0x0, 0x0, 0x3, 0x0, 0x0, 0x15, 0x35, 0x21, 0x15, 0x2, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, + 0x11, 0x35, 0x21, 0x15, 0x1, 0x0, 0x3, 0x0, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x3d, + 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x11, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, + 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0x11, 0x0, 0x0, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x11, 0x23, 0x35, 0x33, 0x11, 0x33, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, + 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x11, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, + 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x15, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x35, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x0, + 0xff, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xf, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, + 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x4, + 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x3, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x0, 0x21, 0x35, 0x33, + 0x15, 0x25, 0x35, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, + 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x80, 0xfe, 0x0, 0x80, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x80, 0x80, 0xff, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x1, + 0x11, 0x33, 0x11, 0x13, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x23, 0x11, 0x1, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, + 0x80, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, + 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x1, 0x11, 0x33, 0x11, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x15, 0x21, 0x15, 0x21, 0x11, 0x13, 0x35, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, 0xfe, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x19, 0x1, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, + 0x13, 0x11, 0x21, 0x35, 0x21, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x11, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0xff, 0x0, + 0x1, 0x0, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x13, 0x35, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x0, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x25, + 0x35, 0x33, 0x15, 0x3d, 0x1, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x11, 0x23, 0x35, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xfe, + 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x80, + 0x1, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0xfe, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x33, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x31, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, + 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x80, 0x1, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x0, 0x3, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x3d, + 0x1, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x21, 0x35, 0x21, + 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x21, 0x15, 0x35, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2, 0x80, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x21, 0x15, 0x25, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x1, 0x0, 0xfe, 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, + 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, + 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, + 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x21, 0x35, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, + 0x15, 0x33, 0x15, 0x23, 0x15, 0x33, 0x15, 0x23, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, + 0x31, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, + 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x23, 0x35, 0x21, 0x15, 0x23, 0x15, 0x13, 0x35, 0x33, 0x15, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x11, 0x21, 0x15, 0x23, 0x15, 0x33, 0x15, 0x17, 0x11, 0x21, + 0x11, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x1, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, + 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x21, 0x35, 0x21, 0x35, 0x21, 0x11, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x21, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, + 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, + 0x1, 0x80, 0x0, 0x5, 0x0, 0x0, 0x25, 0x35, 0x21, 0x35, 0x21, 0x11, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x0, 0x0, 0x1, 0x0, 0x80, 0x1, + 0x0, 0x2, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x0, 0x13, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x3, 0x80, 0x0, 0x5, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x1, 0x11, 0x21, 0x11, 0x23, 0x15, 0x5, 0x35, 0x23, 0x35, 0x33, 0x11, 0x21, 0x11, 0x7, 0x11, 0x21, + 0x11, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x1, 0x0, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, + 0x80, 0x3, 0x80, 0xfc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x2, 0x80, 0x3, + 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, + 0x80, 0x80, 0x1, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0xf, 0x0, + 0x0, 0x15, 0x35, 0x21, 0x15, 0x1, 0x11, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x5, 0x0, + 0x9, 0x0, 0x0, 0x19, 0x1, 0x33, 0x15, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x1, + 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x80, 0x3, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x1, 0x35, 0x21, 0x15, 0x1, 0x80, 0x1, 0x0, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x9, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x21, 0x15, 0x80, + 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x0, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0xd, + 0x0, 0x11, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x13, 0x11, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x0, 0x80, + 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x80, 0xff, 0x80, 0x2, 0x0, 0x0, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x80, + 0x0, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x80, 0x2, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x1, 0x35, 0x23, 0x15, 0x7, 0x11, 0x21, 0x11, 0x1, 0x0, 0x80, 0x80, 0x1, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, + 0x1f, 0x0, 0x23, 0x0, 0x27, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, + 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, + 0x19, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x21, 0x11, 0x33, 0x15, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, + 0x35, 0x11, 0x33, 0x11, 0x25, 0x11, 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x1, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, + 0x19, 0x0, 0x1d, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x5, 0x35, 0x23, 0x11, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x25, 0x11, + 0x33, 0x11, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x0, 0x0, 0x7, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, + 0x11, 0x5, 0x35, 0x23, 0x11, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x21, 0x35, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, + 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x19, 0x1, + 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x3, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, + 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, + 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, + 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, 0x3, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, + 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, + 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, + 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, + 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x15, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x33, 0x35, 0x23, 0x35, 0x21, 0x15, 0x21, 0x15, 0x33, 0x15, + 0x23, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, 0x1, + 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x2, 0x80, + 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, + 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, + 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x31, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x15, + 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x1, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, + 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x0, 0xff, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x80, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x33, 0x11, 0x23, + 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, + 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x31, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, + 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x5, 0x11, 0x23, 0x35, + 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x2, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x2, + 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, + 0x0, 0x3, 0x0, 0xb, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x35, 0x23, 0x35, 0x33, + 0x11, 0x23, 0x35, 0x21, 0x11, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xfe, + 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x0, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, + 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, + 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, + 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x33, + 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, + 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, + 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, + 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x15, + 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, + 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x17, 0x0, 0x0, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x23, 0x11, 0x33, 0x11, 0x33, 0x15, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x35, + 0x21, 0x15, 0x33, 0x11, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, + 0x2, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, + 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, + 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, + 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, + 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, + 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, + 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, + 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x1, 0x80, + 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, + 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x21, 0x15, + 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, + 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x4, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, + 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, + 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, + 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, + 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, + 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x19, 0x0, 0x1d, 0x0, 0x21, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, + 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, + 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x35, 0x21, 0x35, 0x33, 0x11, 0x1, 0x35, + 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0xfe, 0x0, 0x2, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, + 0x0, 0x0, 0x3d, 0x1, 0x33, 0x1d, 0x1, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x11, 0x21, 0x15, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, + 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x5, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x21, 0x11, 0x33, 0x11, + 0x1, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, + 0x15, 0x11, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, + 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x3, 0x35, + 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x1d, + 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, + 0x35, 0x21, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x11, 0x35, + 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x33, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, + 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x3, 0x35, 0x21, 0x15, 0x80, 0x80, + 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, + 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, + 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x80, 0x0, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, + 0x7, 0x0, 0xb, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x21, 0x11, 0x33, + 0x11, 0x21, 0x11, 0x33, 0x15, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x21, 0x19, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x2, 0x0, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, + 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, + 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x1, 0x0, + 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x3, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, + 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x25, 0x35, + 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, + 0xfe, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x7, + 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, + 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x1d, 0x1, 0x35, 0x21, 0x35, 0x21, 0x15, 0x23, 0x15, 0x1, 0x35, 0x21, 0x15, 0x21, 0x35, 0x33, 0x15, 0x80, 0x1, + 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, + 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, + 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x80, 0x2, 0x80, 0x3, + 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x25, 0x35, 0x33, 0x15, 0x1, 0x35, 0x21, 0x15, 0x1, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x2, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xd, 0x0, + 0x17, 0x0, 0x0, 0x1, 0x35, 0x33, 0x15, 0x1, 0x35, 0x23, 0x11, 0x33, 0x11, 0x33, 0x15, 0x21, 0x15, 0x35, 0x11, 0x23, 0x35, 0x21, 0x35, 0x21, 0x15, 0x33, 0x11, 0x1, 0x0, + 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, + 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, + 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, + 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, + 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x15, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, + 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x25, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x1, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, + 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, + 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfd, 0x80, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, + 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, + 0x21, 0x15, 0x21, 0x15, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfd, 0x80, 0x4, 0x0, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x17, 0x35, 0x21, 0x15, 0x1, 0x11, 0x33, 0x11, 0x1, 0x35, 0x21, 0x35, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, + 0x15, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x1, 0x80, 0xfe, 0x80, 0xff, + 0x0, 0x80, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x13, 0x0, + 0x0, 0x35, 0x11, 0x33, 0x11, 0x15, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x15, 0x21, 0x15, 0x33, 0x15, 0x23, 0x11, 0x21, 0x15, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, + 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x0, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x21, 0x15, 0x25, 0x11, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, + 0x19, 0x1, 0x33, 0x15, 0x33, 0x35, 0x23, 0x35, 0x21, 0x11, 0x21, 0x15, 0x80, 0x80, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, 0x11, 0x33, 0x11, 0x1, 0x35, 0x33, + 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x21, 0x35, 0x33, 0x15, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x1, 0x0, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, + 0xfe, 0x0, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80, 0x3, 0x0, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x11, 0x35, 0x21, 0x15, 0x3, 0x0, 0x1, 0x80, 0x80, 0x80, + 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x19, 0x1, 0x33, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x80, 0x2, 0x0, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, 0x35, 0x11, + 0x33, 0x11, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x1, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, + 0x0, 0x15, 0x35, 0x33, 0x15, 0x35, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x0, 0x13, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, + 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x19, 0x1, 0x33, 0x11, 0x33, 0x11, + 0x33, 0x11, 0x1, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x35, 0x33, 0x15, + 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, + 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x15, 0x35, + 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x25, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0xb, 0x0, 0x0, 0x33, 0x11, 0x23, 0x35, 0x33, 0x11, + 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, + 0x80, 0x1, 0x0, 0x2, 0x80, 0x0, 0x3, 0x0, 0x0, 0x19, 0x1, 0x21, 0x11, 0x1, 0x0, 0x1, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x0, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x33, 0x35, 0x33, 0x15, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x33, 0x35, + 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, + 0x0, 0x1, 0x0, 0x1, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x0, 0x31, 0x35, 0x33, 0x15, 0x3d, 0x1, 0x33, 0x15, 0x25, 0x35, 0x33, 0x15, 0x80, 0x80, 0xff, 0x0, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x21, + 0x35, 0x21, 0x15, 0x25, 0x35, 0x23, 0x35, 0x33, 0x35, 0x23, 0x35, 0x33, 0x35, 0x33, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x11, 0x35, 0x21, 0x15, 0x1, 0x0, + 0x1, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x4, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x35, 0x21, 0x15, + 0x23, 0x11, 0x21, 0x11, 0x21, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x35, 0x23, 0x11, 0x80, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, + 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, + 0x0, 0x11, 0x0, 0x0, 0x31, 0x11, 0x33, 0x11, 0x21, 0x11, 0x21, 0x35, 0x21, 0x11, 0x23, 0x11, 0x21, 0x19, 0x1, 0x35, 0x33, 0x15, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x80, + 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x80, 0x80, 0xfc, 0x80, 0x1, 0x0, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x11, 0x33, 0x11, 0x23, 0x2, 0x0, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x13, 0x0, 0x0, 0x25, 0x11, 0x33, 0x11, 0x3, 0x11, 0x33, 0x11, 0x1, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x0, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, + 0x1, 0x0, 0xff, 0x0, 0xfe, 0x0, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, + 0x5, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x11, 0x0, 0x0, 0x15, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x37, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x5, 0x15, 0x80, 0x80, 0x80, 0x80, 0x1, + 0xff, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0xfd, 0x0, 0xff, 0x0, 0x7b, 0x2, 0x79, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xff, 0xff, 0x2, 0x81, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x35, 0x11, 0x33, 0x11, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x19, 0x1, 0x15, 0x23, 0x13, 0x7, 0x3, 0x23, 0x35, 0x33, 0x11, 0x33, + 0x3, 0x5, 0x11, 0x23, 0x13, 0x80, 0x1, 0x81, 0x2, 0x80, 0x7f, 0x81, 0x1, 0x80, 0x1, 0x7f, 0x7f, 0x81, 0x1, 0x1, 0x1, 0x81, 0x1, 0x1, 0x1, 0x80, 0xfe, 0x80, 0x3, + 0x7f, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x1, 0x81, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xe, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1c, 0x0, 0x20, 0x0, 0x0, 0x11, 0x33, + 0x15, 0x23, 0x33, 0x21, 0x15, 0x21, 0x25, 0x31, 0x11, 0x31, 0x33, 0x11, 0x31, 0x1, 0x21, 0x15, 0x21, 0x25, 0x11, 0x33, 0x31, 0x11, 0x1, 0x21, 0x31, 0x15, 0x21, 0x23, 0x33, + 0x15, 0x23, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x80, 0x0, 0x5, 0x0, 0x9, 0x0, 0x11, 0x0, 0x0, 0x19, 0x1, 0x21, 0x35, 0x23, 0x11, 0x13, 0x33, 0x15, 0x23, 0x1, 0x11, 0x23, 0x11, 0x33, 0x11, 0x33, 0x11, + 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x80, 0x3, 0x0, 0xfd, 0x80, 0x80, 0x3, 0x0, 0xfe, 0x80, 0xff, 0x0, 0xff, 0x0, + 0x3, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x6, 0x0, 0xa, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, + 0x15, 0x21, 0x31, 0x1, 0x33, 0x15, 0x23, 0x1, 0x11, 0x23, 0x15, 0x33, 0x11, 0x33, 0x11, 0x25, 0x33, 0x15, 0x31, 0x23, 0x13, 0x33, 0x15, 0x23, 0x80, 0x80, 0xff, 0x0, 0x1, + 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x2, 0x0, 0xff, 0x0, 0x80, 0xff, + 0x0, 0x2, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x8, 0x0, 0xc, 0x0, 0x12, 0x0, 0x17, 0x0, 0x1c, 0x0, + 0x20, 0x0, 0x24, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x15, 0x31, 0x23, 0x11, 0x23, 0x1, 0x33, 0x15, 0x23, 0x13, 0x33, 0x15, 0x31, 0x23, 0x31, 0x13, 0x33, 0x31, 0x15, 0x23, + 0x3, 0x15, 0x23, 0x35, 0x31, 0x5, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x1, 0x0, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x4, 0x0, 0x9, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x33, 0x31, 0x19, 0x1, 0x33, + 0x15, 0x23, 0x31, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x1, 0x0, 0xfc, 0x80, + 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x19, 0x0, 0x0, 0x31, 0x11, 0x31, 0x33, 0x15, 0x33, 0x31, 0x15, 0x23, + 0x11, 0x31, 0x1, 0x23, 0x15, 0x33, 0x13, 0x15, 0x23, 0x31, 0x15, 0x33, 0x31, 0x11, 0x33, 0x31, 0x11, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, 0x0, + 0x0, 0x11, 0x33, 0x11, 0x21, 0x31, 0x11, 0x33, 0x11, 0x23, 0x31, 0x11, 0x21, 0x11, 0x23, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, + 0xfc, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x15, 0x21, + 0x35, 0x5, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x15, 0x21, 0x35, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x3, 0x80, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x8, 0x0, + 0x0, 0x31, 0x11, 0x21, 0x11, 0x23, 0x31, 0x11, 0x21, 0x11, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfc, 0x80, 0x3, 0x0, 0xfd, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x31, 0x11, 0x21, 0x39, 0x1, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x11, 0x23, 0x11, 0x2, 0x0, 0xfe, + 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x3, 0x80, 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x3, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x5, 0x15, 0x23, + 0x35, 0x11, 0x15, 0x21, 0x35, 0x25, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x3, 0x0, 0xfd, 0x80, 0x2, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, + 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x2, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x3, 0x80, 0x80, 0xfd, 0x0, 0x3, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x11, 0x21, 0x11, 0x33, 0x11, + 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x1, 0x80, 0xfd, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x0, 0x13, + 0x33, 0x35, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x35, 0x33, 0x11, 0x23, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, + 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, + 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x1d, + 0x1, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x80, 0x80, 0x2, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, + 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x3, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x3, 0x80, + 0x0, 0xe, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x31, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x31, 0x21, 0x31, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, + 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0xff, 0x0, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x23, + 0x33, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfc, 0x80, 0x1, 0x80, 0x0, 0x0, + 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x31, 0x33, 0x11, 0x33, 0x31, 0x11, 0x21, 0x80, 0x80, + 0x80, 0x80, 0x80, 0xfd, 0x80, 0x3, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfc, 0x80, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x3, 0x80, 0x0, + 0x13, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x31, 0x11, 0x39, 0x1, 0x33, 0x11, 0x31, 0x23, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0xfd, 0x80, 0x3, 0x80, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0x3, 0x0, 0xfd, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, + 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x0, 0x11, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x31, 0x11, 0x23, 0x1, 0x11, 0x23, 0x11, 0x1, 0x0, 0x1, 0x0, 0xff, + 0x0, 0x1, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x3, 0x0, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, 0x11, + 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x1, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, + 0xff, 0x0, 0x1, 0x0, 0x2, 0x0, 0xfc, 0x80, 0x3, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, + 0x11, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x18, + 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, 0x11, 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x13, 0x21, 0x11, 0x33, 0x11, 0x23, 0x31, 0x11, 0x21, 0x80, 0x80, + 0x2, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0xff, 0x0, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, + 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x11, 0x23, 0x11, 0x23, 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x3, 0x80, 0xfe, 0x80, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0xfe, 0x80, 0x3, 0x80, 0x80, 0x80, + 0xfd, 0x0, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x80, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, + 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x37, 0x21, 0x11, 0x23, 0x11, 0x23, 0x15, 0x23, 0x35, 0x23, 0x35, 0x21, 0x11, 0x21, 0x13, 0x15, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x80, + 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x3, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0xfc, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, + 0x1, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, + 0x0, 0x1, 0x15, 0x21, 0x35, 0x11, 0x15, 0x23, 0x35, 0x37, 0x21, 0x35, 0x33, 0x11, 0x21, 0x35, 0x21, 0x35, 0x21, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x80, 0x3, 0x0, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, + 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x14, 0x0, 0x0, 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, + 0x15, 0x31, 0x21, 0x15, 0x13, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x5, 0x0, 0x0, 0x31, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, + 0x0, 0xb, 0x0, 0x15, 0x0, 0x0, 0x21, 0x15, 0x21, 0x35, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x35, 0x31, 0x2, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, + 0x0, 0xfe, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x1, 0x15, 0x21, + 0x35, 0x1, 0x15, 0x21, 0x35, 0x3, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x23, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, + 0x0, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, + 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x1b, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x1, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x25, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x15, 0x23, 0x11, 0x23, 0x11, 0x23, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0xff, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x1, 0x15, 0x21, 0x35, 0x5, + 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x1d, 0x1, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, + 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, + 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x21, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfe, 0x0, + 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x9, 0x0, 0xd, 0x0, 0x11, 0x0, + 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x21, 0x1, 0x15, 0x23, 0x35, 0x25, 0x15, 0x23, 0x35, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x1, 0x0, + 0x80, 0x1, 0x0, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0x2, 0x0, 0xfd, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x1, 0x15, 0x23, 0x35, + 0x25, 0x15, 0x23, 0x35, 0x11, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x80, 0x1, 0x0, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0x1, 0x0, 0x80, 0x80, 0x1, 0x0, 0x80, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xd, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x23, 0x35, 0x37, 0x21, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, 0x1, 0x0, 0x80, + 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0xb, 0x0, 0x13, 0x0, 0x0, 0x11, 0x33, 0x15, 0x33, 0x15, 0x23, 0x11, 0x23, 0x1, 0x15, 0x23, 0x35, 0x37, 0x33, 0x35, 0x33, 0x11, + 0x23, 0x11, 0x23, 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, + 0x1, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x11, 0x23, 0x11, 0x21, 0x11, + 0x23, 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x1, 0x15, 0x21, 0x35, 0x5, 0x11, 0x23, 0x19, 0x1, 0x15, 0x21, 0x35, 0x19, 0x1, 0x23, + 0x11, 0x2, 0x0, 0xfe, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, + 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x21, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x2, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x2, 0x80, 0xfd, 0x80, 0x2, 0x0, 0xfe, 0x0, 0x0, 0x2, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x0, 0x11, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x15, 0x23, 0x11, 0x5, 0x11, 0x23, 0x11, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x80, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, + 0x80, 0x80, 0x80, 0x3, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, + 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x25, 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x15, 0x23, 0x35, 0x13, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, + 0x0, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xff, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x7, 0x0, 0x0, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x11, 0x21, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xf, + 0x0, 0x0, 0x21, 0x15, 0x21, 0x35, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0x80, + 0xfe, 0x80, 0x80, 0x80, 0x2, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfd, 0x80, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, + 0x0, 0x3, 0x0, 0x7, 0x0, 0x17, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x21, 0x11, 0x23, 0x11, 0x25, 0x21, 0x15, 0x23, 0x11, 0x33, 0x15, 0x23, 0x15, 0x23, 0x35, 0x23, 0x35, + 0x33, 0x11, 0x23, 0x80, 0x80, 0x2, 0x80, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, + 0x80, 0x80, 0xff, 0x0, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, + 0xf, 0x0, 0x13, 0x0, 0x17, 0x0, 0x1b, 0x0, 0x1f, 0x0, 0x23, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, + 0x1d, 0x1, 0x23, 0x35, 0x1d, 0x1, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x5, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x80, 0x80, 0x2, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, + 0x80, 0x80, 0x80, 0x80, 0x1, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x2, 0x80, 0x2, 0x80, 0x0, 0xc, 0x0, 0x0, 0x11, 0x33, 0x11, 0x21, 0x11, 0x33, 0x31, + 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x1, 0x0, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x2, 0x80, 0xfe, 0x0, 0x2, 0x0, 0xfe, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0xc, 0x0, 0x0, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x31, 0x33, 0x11, 0x23, 0x11, 0x21, 0x80, 0x80, + 0x80, 0x1, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, + 0x2, 0x80, 0x0, 0xb, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, + 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0xfd, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xff, 0x80, 0x3, 0x0, 0x2, 0x80, 0x0, 0xf, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, + 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfd, 0x80, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, + 0x2, 0x0, 0xfe, 0x0, 0xff, 0x0, 0x80, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x0, 0x11, 0x21, 0x15, 0x21, + 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x23, 0x5, 0x11, 0x23, 0x11, 0x1, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x80, 0x3, 0x0, 0x80, 0x2, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x2, 0x0, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xa, 0x0, 0xe, 0x0, 0x12, 0x0, 0x0, + 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x11, 0x1, 0x11, 0x23, 0x11, 0x1, 0x11, 0x23, 0x11, 0x80, 0x1, 0x0, 0xff, 0x0, 0x1, 0x0, 0xfe, 0x80, 0x2, + 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x2, 0x80, 0xff, 0x0, 0xff, 0x0, 0x1, 0x0, 0x1, 0x0, 0xfd, 0x80, 0x2, 0x80, 0x0, 0x0, 0x0, + 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x9, 0x0, 0xd, 0x0, 0x0, 0x11, 0x33, 0x15, 0x21, 0x15, 0x21, 0x11, 0x21, 0x15, 0x21, 0x1, 0x11, 0x23, + 0x11, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x0, 0x2, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xff, 0x0, 0x80, 0x1, 0x80, 0xff, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, + 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0xb, 0x0, 0xf, 0x0, 0x17, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x25, 0x15, 0x21, 0x35, 0x11, + 0x15, 0x23, 0x35, 0x5, 0x15, 0x21, 0x35, 0x13, 0x21, 0x35, 0x33, 0x11, 0x23, 0x35, 0x21, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x2, 0x0, 0xfe, 0x80, 0x80, 0x1, 0x0, + 0x80, 0x80, 0xff, 0x0, 0x2, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xfe, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x1, 0x0, 0x80, 0xfe, 0x80, 0x80, 0x0, 0x4, 0x0, 0x0, 0x0, + 0x0, 0x3, 0x0, 0x2, 0x80, 0x0, 0xc, 0x0, 0x10, 0x0, 0x14, 0x0, 0x18, 0x0, 0x0, 0x11, 0x33, 0x11, 0x33, 0x35, 0x33, 0x11, 0x23, 0x35, 0x23, 0x11, 0x23, 0x11, 0x21, + 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x1, 0x11, 0x23, 0x11, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x80, 0xff, 0x0, 0x1, 0x0, 0xff, 0x0, 0x1, 0x80, 0x80, 0x2, + 0x80, 0xff, 0x0, 0x80, 0xfe, 0x80, 0x80, 0xff, 0x0, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x1, 0x80, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, + 0x0, 0x0, 0x2, 0x80, 0x2, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x0, 0x13, 0x15, 0x23, 0x35, 0x13, 0x11, 0x23, 0x11, 0x13, 0x21, 0x11, 0x23, 0x11, 0x21, 0x35, + 0x21, 0x35, 0x21, 0x80, 0x80, 0x80, 0x80, 0x80, 0x2, 0x0, 0x80, 0xfe, 0x80, 0x1, 0x80, 0xfe, 0x80, 0x2, 0x0, 0x80, 0x80, 0xff, 0x0, 0xff, 0x0, 0x1, 0x0, 0x1, 0x80, + 0xfd, 0x80, 0x1, 0x0, 0x80, 0x80, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0x3, 0x0, 0x7, 0x0, 0x11, 0x0, 0x15, 0x0, 0x19, 0x0, 0x0, 0x1, + 0x15, 0x21, 0x35, 0x1, 0x15, 0x21, 0x35, 0x3, 0x33, 0x15, 0x21, 0x35, 0x33, 0x11, 0x21, 0x15, 0x23, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x2, 0x0, 0xfe, 0x80, + 0x2, 0x0, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x1, 0x0, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0xfe, 0x0, 0x80, 0x80, 0x1, 0x80, 0x80, + 0x80, 0xff, 0x0, 0x80, 0x3, 0x0, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x3, 0x80, 0x0, 0xb, 0x0, 0xf, 0x0, 0x13, 0x0, 0x0, + 0x31, 0x11, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x21, 0x15, 0x1, 0x15, 0x23, 0x35, 0x21, 0x15, 0x23, 0x35, 0x2, 0x80, 0xfe, 0x0, 0x1, 0x80, 0xfe, 0x80, 0x2, + 0x0, 0xfe, 0x80, 0x80, 0x1, 0x80, 0x80, 0x2, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x3, 0x80, 0x80, 0x80, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x1, 0xfe, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0x0, 0x60, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xd, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x2, 0x0, 0x7, 0x0, 0x94, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x15, 0x0, 0x86, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0xb, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x9, 0x0, 0x19, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8, 0x0, 0xf, 0x0, 0x9b, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x6, 0x0, 0x77, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x4d, + 0x0, 0xb, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x8, 0x0, 0x58, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x26, 0x0, 0x60, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x20, 0x0, 0x1, 0x0, 0xd, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x2, 0x0, 0x7, 0x0, 0x94, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x3, + 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x4, 0x0, 0x15, 0x0, 0x86, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x5, 0x0, 0xb, 0x0, 0x0, 0x0, + 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x6, 0x0, 0x9, 0x0, 0x19, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0x8, 0x0, 0xf, 0x0, 0x9b, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, + 0x0, 0x9, 0x0, 0x6, 0x0, 0x77, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x0, 0xa, 0x0, 0x4d, 0x0, 0xb, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x0, 0x0, 0x4c, 0x1, + 0x94, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x1, 0x0, 0x1a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x2, 0x0, 0xe, 0x0, 0xc6, 0x0, 0x3, 0x0, 0x1, + 0x4, 0x9, 0x0, 0x3, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x4, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x5, 0x0, + 0x16, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x6, 0x0, 0x12, 0x1, 0x6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0x8, 0x0, 0x1e, 0x1, 0xe0, 0x0, 0x3, + 0x0, 0x1, 0x4, 0x9, 0x0, 0x9, 0x0, 0xc, 0x1, 0xc2, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x0, 0xa, 0x0, 0x9a, 0x0, 0xea, 0x0, 0x3, 0x0, 0x1, 0x4, 0x9, 0x1, + 0x0, 0x0, 0x10, 0x1, 0x84, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x0, 0x0, 0x4c, 0x1, 0x94, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x1, 0x0, 0x1a, 0x0, 0xaa, + 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x2, 0x0, 0xe, 0x0, 0xc6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x3, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, + 0x19, 0x0, 0x4, 0x0, 0x2a, 0x0, 0xaa, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x5, 0x0, 0x16, 0x0, 0xd4, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x6, 0x0, 0x12, + 0x1, 0x6, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x8, 0x0, 0x1e, 0x1, 0xe0, 0x0, 0x3, 0x0, 0x1, 0x4, 0x19, 0x0, 0x9, 0x0, 0xc, 0x1, 0xc2, 0x0, 0x3, 0x0, + 0x1, 0x4, 0x19, 0x0, 0xa, 0x0, 0x9a, 0x0, 0xea, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x31, 0x2e, 0x31, 0xd0, 0xf3, 0xf1, 0xf1, 0xea, 0xe8, 0xe9, 0x20, 0xf8, + 0xf0, 0xe8, 0xf4, 0xf2, 0x20, 0x4d, 0x69, 0x6e, 0x65, 0x63, 0x72, 0x61, 0x66, 0x74, 0x2e, 0x20, 0xd1, 0xe4, 0xe5, 0xeb, 0xe0, 0xed, 0xee, 0x20, 0xf1, 0x20, 0xed, 0xf3, 0xeb, + 0xff, 0x20, 0xe8, 0xe7, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2e, 0x70, 0x6e, 0x67, 0x20, 0x2b, 0x20, 0xe4, 0xee, 0xe1, 0xe0, 0xe2, 0xeb, 0xe5, 0xed, 0xfb, 0x20, 0xe3, 0xeb, 0xe8, + 0xf4, 0xfb, 0x20, 0xe8, 0xe7, 0x20, 0xe0, 0xed, 0xe3, 0xeb, 0x41, 0x51, 0x41, 0x4d, 0x64, 0x46, 0x70, 0x6e, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xa9, + 0x20, 0x32, 0x30, 0x30, 0x34, 0x2d, 0x32, 0x30, 0x31, 0x32, 0x2c, 0x20, 0x42, 0x4f, 0x47, 0x44, 0x41, 0x4e, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x65, 0x63, 0x72, 0x61, 0x66, 0x74, 0x20, 0x52, 0x75, 0x73, 0x20, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x46, 0x6f, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x20, 0x36, 0x2e, 0x30, 0x0, 0x4d, 0x0, 0x69, 0x0, 0x6e, 0x0, 0x65, 0x0, 0x63, 0x0, 0x72, 0x0, 0x61, 0x0, 0x66, 0x0, 0x74, 0x0, 0x20, 0x0, 0x52, 0x0, 0x75, + 0x0, 0x73, 0x0, 0x20, 0x0, 0x52, 0x0, 0x65, 0x0, 0x67, 0x0, 0x75, 0x0, 0x6c, 0x0, 0x61, 0x0, 0x72, 0x0, 0x56, 0x0, 0x65, 0x0, 0x72, 0x0, 0x73, 0x0, 0x69, 0x0, + 0x6f, 0x0, 0x6e, 0x0, 0x20, 0x0, 0x31, 0x0, 0x2e, 0x0, 0x31, 0x4, 0x20, 0x4, 0x43, 0x4, 0x41, 0x4, 0x41, 0x4, 0x3a, 0x4, 0x38, 0x4, 0x39, 0x0, 0x20, 0x4, 0x48, + 0x4, 0x40, 0x4, 0x38, 0x4, 0x44, 0x4, 0x42, 0x0, 0x20, 0x0, 0x4d, 0x0, 0x69, 0x0, 0x6e, 0x0, 0x65, 0x0, 0x63, 0x0, 0x72, 0x0, 0x61, 0x0, 0x66, 0x0, 0x74, 0x0, + 0x2e, 0x0, 0x20, 0x4, 0x21, 0x4, 0x34, 0x4, 0x35, 0x4, 0x3b, 0x4, 0x30, 0x4, 0x3d, 0x4, 0x3e, 0x0, 0x20, 0x4, 0x41, 0x0, 0x20, 0x4, 0x3d, 0x4, 0x43, 0x4, 0x3b, + 0x4, 0x4f, 0x0, 0x20, 0x4, 0x38, 0x4, 0x37, 0x0, 0x20, 0x0, 0x66, 0x0, 0x6f, 0x0, 0x6e, 0x0, 0x74, 0x0, 0x2e, 0x0, 0x70, 0x0, 0x6e, 0x0, 0x67, 0x0, 0x20, 0x0, + 0x2b, 0x0, 0x20, 0x4, 0x34, 0x4, 0x3e, 0x4, 0x31, 0x4, 0x30, 0x4, 0x32, 0x4, 0x3b, 0x4, 0x35, 0x4, 0x3d, 0x4, 0x4b, 0x0, 0x20, 0x4, 0x33, 0x4, 0x3b, 0x4, 0x38, + 0x4, 0x44, 0x4, 0x4b, 0x0, 0x20, 0x4, 0x38, 0x4, 0x37, 0x0, 0x20, 0x4, 0x30, 0x4, 0x3d, 0x4, 0x33, 0x4, 0x3b, 0x0, 0x41, 0x0, 0x51, 0x0, 0x41, 0x0, 0x4d, 0x0, + 0x64, 0x0, 0x46, 0x0, 0x70, 0x0, 0x6e, 0x0, 0x43, 0x0, 0x6f, 0x0, 0x70, 0x0, 0x79, 0x0, 0x72, 0x0, 0x69, 0x0, 0x67, 0x0, 0x68, 0x0, 0x74, 0x0, 0x20, 0x0, 0xa9, + 0x0, 0x20, 0x0, 0x32, 0x0, 0x30, 0x0, 0x30, 0x0, 0x34, 0x0, 0x2d, 0x0, 0x32, 0x0, 0x30, 0x0, 0x31, 0x0, 0x32, 0x0, 0x2c, 0x0, 0x20, 0x0, 0x42, 0x0, 0x4f, 0x0, + 0x47, 0x0, 0x44, 0x0, 0x41, 0x0, 0x4e, 0x0, 0x20, 0x0, 0x53, 0x0, 0x6f, 0x0, 0x66, 0x0, 0x74, 0x0, 0x77, 0x0, 0x61, 0x0, 0x72, 0x0, 0x65, 0x0, 0x46, 0x0, 0x6f, + 0x0, 0x6e, 0x0, 0x74, 0x0, 0x43, 0x0, 0x72, 0x0, 0x65, 0x0, 0x61, 0x0, 0x74, 0x0, 0x6f, 0x0, 0x72, 0x0, 0x20, 0x0, 0x36, 0x0, 0x2e, 0x0, 0x30, 0x0, 0x3, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; + +constexpr auto minecraft_data_size = 0x5530; + +inline uint8_t citrim_data[0x9ae] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0x68, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4f, 0x68, 0x15, 0x47, 0x1c, 0xfe, 0x9e, 0x28, 0x2f, 0x51, 0x42, 0xb4, 0xa9, 0xa2, 0xb5, 0x98, 0x4b, 0x5b, 0x4c, 0x83, 0x39, 0x54, 0x14, 0xf5, 0xd0, 0x82, 0xd5, 0x48, 0x49, + 0xc0, 0x22, 0x54, 0x28, 0xe6, 0x90, 0x22, 0x1e, 0x7a, 0x91, 0x5a, 0xa3, 0x98, 0x2a, 0x58, 0xa1, 0x6d, 0x44, 0x6d, 0x2b, 0x3d, 0xb4, 0x7, 0x29, 0x6d, 0xc1, 0x22, 0x54, 0xea, + 0x29, 0x52, 0xea, 0x9f, 0x4b, 0xe, 0x62, 0x6d, 0x6d, 0x45, 0x9, 0x85, 0x9a, 0x83, 0x91, 0x5a, 0xc4, 0x90, 0xa8, 0xd8, 0x98, 0x3c, 0x4c, 0xdd, 0x1e, 0xe2, 0x8c, 0xb3, 0xfb, + 0x66, 0x77, 0x67, 0x76, 0x67, 0xf6, 0x37, 0xef, 0xbd, 0xfd, 0x20, 0xe4, 0xed, 0xbe, 0x9d, 0xfd, 0xbe, 0xf9, 0xfd, 0x99, 0xf9, 0xed, 0xec, 0x7b, 0xfb, 0xa, 0xc8, 0x91, 0x43, + 0x1, 0x87, 0x3a, 0xe1, 0x45, 0xbd, 0xff, 0xb0, 0x34, 0x3, 0xb3, 0x8b, 0x8f, 0xb1, 0xbb, 0x1f, 0x85, 0xac, 0x34, 0x55, 0x3, 0xb4, 0x8d, 0x45, 0xe9, 0x8, 0xea, 0x20, 0xa0, + 0xe6, 0xa7, 0xd2, 0x70, 0xa8, 0x13, 0x1e, 0x3b, 0xaf, 0x8c, 0x2b, 0x88, 0x6a, 0xf4, 0xbd, 0x2d, 0xd, 0x5a, 0x62, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x54, 0x1a, 0xc4, + 0xa0, 0xbb, 0xf7, 0xa8, 0x11, 0x73, 0x67, 0xdd, 0xc7, 0xc3, 0xd2, 0xc, 0x6c, 0x3b, 0xf8, 0x33, 0x3f, 0xe6, 0xd8, 0x9e, 0xd, 0x0, 0xe0, 0xd3, 0x50, 0x4d, 0xbe, 0xb7, 0xa9, + 0x41, 0x59, 0x28, 0xa5, 0x23, 0xa8, 0x83, 0x80, 0x9a, 0x9f, 0x4a, 0x3, 0xe3, 0x1c, 0x9b, 0xa8, 0xc3, 0x33, 0xf5, 0x93, 0x0, 0x50, 0xc6, 0x29, 0x72, 0xe7, 0xb6, 0xd7, 0xd7, + 0x30, 0x43, 0x47, 0xc0, 0xd8, 0x44, 0x1d, 0x0, 0x48, 0x5, 0x0, 0x90, 0x3a, 0x26, 0x2d, 0x28, 0xb9, 0x5d, 0xe0, 0xa7, 0xd4, 0xc0, 0xf8, 0x58, 0xf2, 0x1, 0x90, 0x8e, 0xf6, + 0x22, 0x1e, 0x96, 0xa6, 0x43, 0x2a, 0xae, 0x5c, 0x53, 0x41, 0x2d, 0xd8, 0x5e, 0x29, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x54, 0x1a, 0xe, 0x75, 0xc2, 0x13, 0xf9, + 0xd8, 0x39, 0xb7, 0x1c, 0x38, 0x2b, 0x3d, 0xde, 0x46, 0x12, 0xd4, 0x82, 0xed, 0x63, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0xef, 0x82, 0x86, 0x7b, 0x8f, 0x1a, 0x8d, + 0x9e, 0x4f, 0x15, 0xd4, 0xfd, 0xce, 0x4a, 0x83, 0xd2, 0xc, 0x8, 0xd0, 0x39, 0x82, 0x9a, 0xdb, 0x5, 0x7e, 0x2a, 0xd, 0x63, 0x13, 0x75, 0x98, 0x3b, 0xeb, 0x3e, 0x80, 0xe9, + 0xc0, 0xdb, 0x7f, 0xe6, 0x3f, 0xb4, 0xbe, 0xfe, 0x16, 0xfe, 0xe8, 0xf8, 0xce, 0x77, 0xdc, 0x73, 0xaf, 0xac, 0x43, 0x57, 0xcf, 0x27, 0x78, 0xf9, 0xb7, 0x2e, 0x7e, 0xac, 0x29, + 0x54, 0xbb, 0xed, 0x95, 0x4b, 0x50, 0x2a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0x85, 0x86, 0xf, 0x36, 0x34, 0xf2, 0xd2, 0x89, 0x95, 0x60, 0x43, 0xf7, 0xeb, 0xf9, 0xfb, 0xd, + 0x85, 0x62, 0x59, 0x9b, 0x1b, 0x37, 0x6e, 0xa0, 0xa1, 0x50, 0x8c, 0x2d, 0xcf, 0x74, 0x50, 0xb, 0xb6, 0x8f, 0x3c, 0x8a, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0xe1, + 0xf1, 0x54, 0x89, 0xbf, 0x66, 0x25, 0x58, 0xdb, 0x82, 0x71, 0xbe, 0x6f, 0xe3, 0xc4, 0x8f, 0x65, 0x6d, 0xee, 0xde, 0xbd, 0x2b, 0xdd, 0x9f, 0x4, 0xb5, 0x64, 0xfb, 0xc8, 0x4, + 0xa4, 0x74, 0x4, 0x75, 0x10, 0x50, 0xf3, 0xbb, 0xa2, 0x41, 0xc4, 0x3f, 0xbf, 0x9f, 0xc3, 0xe0, 0xf9, 0x93, 0x18, 0x3c, 0x7f, 0x32, 0x76, 0x7f, 0x9a, 0x59, 0xc8, 0x85, 0x7e, + 0x67, 0xa5, 0x61, 0x66, 0x12, 0x71, 0xcc, 0xe0, 0x51, 0xfb, 0xbf, 0xdf, 0xbf, 0x1e, 0x0, 0x73, 0x84, 0xb9, 0xb2, 0x84, 0x92, 0xdb, 0x5, 0xfe, 0xac, 0x34, 0xb0, 0x51, 0x9f, + 0x21, 0x6c, 0xe1, 0x21, 0x88, 0x2d, 0x7, 0xce, 0xf2, 0x7b, 0x62, 0xa6, 0x51, 0x8d, 0xb6, 0x8f, 0x1d, 0xa6, 0xd2, 0x38, 0x22, 0x2d, 0x28, 0xb9, 0x5d, 0xe0, 0x77, 0x45, 0x3, + 0x5, 0x5c, 0xe8, 0x77, 0x16, 0x1a, 0xcc, 0x5d, 0xad, 0xe6, 0xc8, 0x21, 0xc0, 0xe4, 0x62, 0x4c, 0x35, 0x23, 0x51, 0x9, 0xaa, 0x3, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x7f, + 0x1a, 0xd, 0xe2, 0xfd, 0xaf, 0x8b, 0x37, 0x8b, 0xd8, 0x22, 0x39, 0x66, 0xf1, 0xf2, 0xf5, 0xfc, 0xf5, 0xad, 0xcb, 0x4f, 0x47, 0xfd, 0x4a, 0xee, 0x77, 0xd6, 0x1a, 0x62, 0x13, + 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0x61, 0x6c, 0xa2, 0xe, 0x7f, 0x8d, 0x78, 0x9c, 0x43, 0x3c, 0x77, 0x90, 0x4b, 0xd4, 0x72, 0xa8, 0x13, 0xd8, 0x7a, 0xad, + 0x17, 0xbb, 0xd1, 0x97, 0x98, 0xbb, 0x56, 0x6c, 0xaf, 0x7c, 0x1f, 0xf0, 0xe2, 0xcd, 0x62, 0x19, 0xa1, 0x48, 0xcc, 0xfe, 0x82, 0xc2, 0xb6, 0x5e, 0xeb, 0x55, 0x12, 0xe2, 0x22, + 0xb7, 0xb, 0xfc, 0x14, 0x1a, 0x76, 0xd, 0xed, 0x0, 0xe0, 0xf, 0xc0, 0x4d, 0x6d, 0x45, 0x29, 0xb7, 0x88, 0xc5, 0xcb, 0xd7, 0x63, 0x53, 0x5b, 0xf9, 0xf2, 0x7c, 0x52, 0xd4, + 0x82, 0xed, 0x23, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0x41, 0x16, 0x3c, 0x8c, 0x3b, 0xec, 0x8f, 0x71, 0x6e, 0xbd, 0xd6, 0x8b, 0xa6, 0xe1, 0xbe, 0xc4, + 0xdf, 0x46, 0xa8, 0x25, 0xdb, 0x47, 0x1a, 0x69, 0xb4, 0xb9, 0xd7, 0x3, 0x80, 0xaf, 0x97, 0xf5, 0xf1, 0x51, 0x80, 0xe1, 0xd4, 0xd5, 0x92, 0xb4, 0xd, 0x13, 0xa, 0x0, 0xc7, + 0xee, 0xbf, 0x9f, 0xd8, 0x11, 0x94, 0xdc, 0x2e, 0xf0, 0x53, 0x6b, 0x60, 0xdc, 0xdb, 0x1a, 0x3f, 0x2b, 0x7b, 0xef, 0xd4, 0xd5, 0x52, 0xd9, 0x88, 0xff, 0xe9, 0xc2, 0xe, 0xbe, + 0xdd, 0x5d, 0x6c, 0xcb, 0x6d, 0xaf, 0xa8, 0x21, 0xf6, 0x0, 0x17, 0x1c, 0x41, 0xc1, 0xed, 0x2, 0x3f, 0xb5, 0x86, 0xd1, 0xe6, 0x5e, 0x2f, 0xc8, 0xcb, 0x82, 0xef, 0xbd, 0x37, + 0x3e, 0xe2, 0xfb, 0x8e, 0xfe, 0xb4, 0xf, 0x0, 0x38, 0xf7, 0xce, 0xdb, 0xa7, 0x2b, 0xba, 0xdf, 0x59, 0x6a, 0x88, 0x5d, 0x84, 0x69, 0x1a, 0xee, 0x2b, 0x30, 0x21, 0x41, 0x1, + 0x0, 0x70, 0x78, 0xdf, 0x2f, 0xbe, 0xfd, 0x3b, 0x6f, 0x9f, 0xe6, 0x42, 0xd2, 0x1a, 0x81, 0x92, 0xdb, 0x5, 0x7e, 0x6a, 0xd, 0x42, 0x7b, 0xa5, 0xaf, 0xf6, 0xec, 0xbc, 0x7d, + 0x9a, 0xbd, 0xf4, 0x90, 0xe0, 0x71, 0x27, 0x41, 0xee, 0x5a, 0xb0, 0xbd, 0xd2, 0x6d, 0x8, 0x6a, 0x47, 0x50, 0x71, 0xbb, 0xc0, 0x4f, 0xa8, 0x81, 0x73, 0x89, 0xb3, 0x9d, 0xc, + 0x3f, 0xec, 0xb8, 0xe0, 0xdb, 0xde, 0xfc, 0xf9, 0x1a, 0xb1, 0x7d, 0x62, 0x1b, 0xd4, 0x82, 0xed, 0x55, 0x44, 0x2a, 0x3b, 0x62, 0xcd, 0xd2, 0xb5, 0xbe, 0xed, 0x27, 0x8e, 0xd0, + 0xe1, 0x72, 0x89, 0xdb, 0x5, 0x7e, 0x2a, 0xd, 0x9e, 0xa, 0x9f, 0x8c, 0x53, 0xc2, 0x9f, 0xdb, 0x3e, 0x42, 0x43, 0x9c, 0x38, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0xa5, + 0x6, 0x4f, 0x85, 0xd3, 0x2, 0x2f, 0xe7, 0x7, 0x6a, 0xc3, 0xf6, 0xb1, 0xf7, 0x1, 0x55, 0x1d, 0x61, 0x3, 0x94, 0xdc, 0x2e, 0xf0, 0xbb, 0xa2, 0x21, 0xc, 0x51, 0x81, 0x97, + 0x16, 0x2e, 0xf4, 0x3b, 0xb, 0xd, 0x46, 0x3e, 0xb, 0x6a, 0xd3, 0x11, 0x2e, 0x73, 0xbb, 0xc0, 0x6f, 0x5b, 0x3, 0x5b, 0xe1, 0xd4, 0x41, 0xa0, 0xfc, 0xb2, 0x86, 0x6a, 0xb0, + 0xbd, 0x72, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x5d, 0xd1, 0x40, 0x1, 0x17, 0xfa, 0x6d, 0x53, 0x43, 0xfe, 0x6d, 0x88, 0x1c, 0x39, 0x8, 0x61, 0xfd, 0xdb, 0x10, + 0x39, 0x2a, 0x13, 0xeb, 0xe6, 0x4e, 0x7f, 0xa2, 0xe3, 0xa8, 0xf0, 0x3a, 0x88, 0x55, 0xa5, 0x91, 0xd0, 0xf6, 0x6b, 0x23, 0xde, 0xcb, 0xf1, 0x14, 0xb1, 0x9, 0x48, 0xe9, 0x8, + 0xea, 0x20, 0xa0, 0xe6, 0x77, 0x45, 0x43, 0xe7, 0x89, 0x5d, 0xe8, 0x7f, 0xfb, 0x70, 0xea, 0xf3, 0xe8, 0xc0, 0x85, 0x7e, 0x67, 0xa1, 0x41, 0xab, 0x4, 0xed, 0x3c, 0xb1, 0x4b, + 0xe7, 0x70, 0xa3, 0xa0, 0xe4, 0x76, 0x81, 0xdf, 0x15, 0xd, 0x14, 0x70, 0xa1, 0xdf, 0xb6, 0x34, 0xe4, 0xd7, 0x80, 0x39, 0x72, 0x10, 0x22, 0x4f, 0xc0, 0x1c, 0x39, 0x8, 0x91, + 0x27, 0x60, 0xe, 0x15, 0x14, 0x54, 0x4b, 0xb0, 0x67, 0xbf, 0xdc, 0x68, 0x59, 0x4a, 0x75, 0x41, 0x37, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0xae, 0x68, 0x0, 0x0, + 0xac, 0x9a, 0xf7, 0x92, 0xd5, 0xf3, 0x7, 0xe0, 0x42, 0xbf, 0xad, 0x68, 0x48, 0x3d, 0x3, 0x66, 0xec, 0x8, 0x67, 0xb8, 0x5d, 0xe0, 0x77, 0x45, 0x3, 0x5, 0x5c, 0xe8, 0xb7, + 0x9, 0xd, 0x79, 0x9, 0x9a, 0x23, 0x7, 0x21, 0xf2, 0x4, 0xcc, 0x91, 0x83, 0x10, 0x79, 0x2, 0xe6, 0xc8, 0x41, 0x88, 0xfc, 0xa3, 0x68, 0x39, 0xa4, 0x48, 0x7b, 0xe3, 0x39, + 0x5f, 0xd, 0x55, 0x43, 0x6c, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x29, 0x35, 0xb0, 0x7, 0xe, 0x85, 0x3d, 0x86, 0x2f, 0xee, 0xbc, 0xb7, 0x2e, 0x9f, 0x8d, 0x7d, + 0x84, 0x5f, 0x14, 0x6a, 0xc5, 0xf6, 0xb1, 0x9, 0x28, 0x73, 0x84, 0x8e, 0xb0, 0x34, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x6a, 0xd, 0xf, 0xfe, 0x1d, 0xf7, 0x6d, 0xcb, 0xfc, + 0x3e, 0xda, 0x3c, 0xfd, 0xfc, 0xd0, 0x3, 0x23, 0xe7, 0xb0, 0x7f, 0xfe, 0x3a, 0x0, 0x40, 0xd3, 0x70, 0x5f, 0x59, 0x5b, 0x5d, 0xd4, 0x8a, 0xed, 0x95, 0x4a, 0xd0, 0xa0, 0x31, + 0xfb, 0x9b, 0xbb, 0x71, 0x66, 0x64, 0x10, 0xed, 0xf3, 0x5b, 0xb1, 0x1a, 0x8b, 0x7c, 0xc6, 0x67, 0xaf, 0x9b, 0x86, 0xfb, 0xa4, 0x6d, 0x75, 0x41, 0x19, 0x4, 0x2e, 0xf0, 0x53, + 0x69, 0x8, 0xb, 0x1c, 0xe6, 0xfb, 0xfd, 0xf3, 0xd7, 0xe1, 0xc0, 0xc8, 0x39, 0xbe, 0x9f, 0x6d, 0x33, 0xee, 0xa5, 0xaf, 0xbd, 0x99, 0x88, 0x57, 0x44, 0x2d, 0xd8, 0x3e, 0x76, + 0x11, 0x66, 0xf1, 0xf2, 0xf5, 0xa2, 0x31, 0x3d, 0x0, 0x3c, 0xf9, 0x64, 0x8, 0x3a, 0x26, 0x8d, 0x23, 0x2, 0xdc, 0x1c, 0xfd, 0xcd, 0xdd, 0xd8, 0x3e, 0x7b, 0x5, 0x46, 0x9b, + 0x7b, 0xb1, 0x7d, 0xf6, 0xa, 0x2b, 0xdc, 0x2e, 0xf0, 0x13, 0x6a, 0x28, 0x4, 0xfe, 0x3c, 0xc6, 0xc9, 0x92, 0x2f, 0xa, 0x2c, 0x20, 0x91, 0xe2, 0x81, 0x48, 0xb5, 0x62, 0xfb, + 0xb8, 0x4, 0xc, 0x3a, 0x2, 0xfd, 0xcd, 0xdd, 0xfc, 0xcd, 0xd5, 0x58, 0x14, 0xda, 0x30, 0xe0, 0x84, 0x24, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x57, 0x34, 0x80, 0x71, 0x26, + 0x80, 0xd2, 0xa3, 0xfc, 0x24, 0x70, 0xa1, 0xdf, 0x99, 0x68, 0xd0, 0xb9, 0xd, 0x91, 0xd4, 0x98, 0x49, 0xdb, 0x95, 0x21, 0xe3, 0x20, 0x70, 0x8e, 0x9f, 0x48, 0x43, 0xa2, 0xb6, + 0x42, 0x0, 0x1a, 0x41, 0xb5, 0xda, 0x5e, 0xeb, 0x3e, 0xa0, 0xae, 0x0, 0x83, 0x4e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x52, 0xd, 0x9, 0x3, 0xcf, 0x14, 0xaa, 0xda, 0xf6, 0x15, + 0x73, 0x23, 0x9e, 0x38, 0x8, 0xc8, 0xf9, 0x5d, 0xd1, 0x90, 0x0, 0xa9, 0x67, 0x21, 0x17, 0xfa, 0x6d, 0x4b, 0x43, 0xc5, 0x24, 0x60, 0x4a, 0x18, 0x2d, 0x45, 0x2a, 0x90, 0x1f, + 0x20, 0xd0, 0x60, 0xba, 0xc, 0x4d, 0x8, 0xa7, 0x6d, 0x5f, 0xf5, 0x9f, 0x84, 0x19, 0x6d, 0xee, 0xe5, 0xb7, 0x44, 0x6a, 0x91, 0xdf, 0x84, 0x86, 0xce, 0xe1, 0x6f, 0x7d, 0xdb, + 0x5f, 0xc, 0xff, 0x2a, 0x7d, 0x2d, 0xdb, 0xa6, 0x44, 0x25, 0xd8, 0x5e, 0xeb, 0x71, 0xe5, 0x6c, 0x1a, 0x16, 0xef, 0x1, 0x2, 0xfe, 0xfb, 0x1f, 0xc1, 0xed, 0x27, 0xe4, 0x69, + 0x57, 0xe1, 0x4c, 0x8c, 0x62, 0x46, 0x7e, 0x23, 0x80, 0x88, 0x9f, 0x5a, 0x83, 0xf7, 0xee, 0xf3, 0x7, 0xcb, 0x76, 0x7e, 0xf5, 0xf7, 0x1e, 0xfe, 0xfa, 0x9d, 0x25, 0x7b, 0xd1, + 0x5a, 0xf4, 0x3f, 0xb, 0xb3, 0xe7, 0x7a, 0x47, 0x1a, 0x4e, 0xce, 0x9d, 0xb2, 0xbd, 0xd3, 0x1a, 0xb4, 0x66, 0x40, 0x71, 0x24, 0x8c, 0x1b, 0xf9, 0xc, 0x8f, 0x84, 0x5, 0x0, + 0xde, 0x3b, 0x4b, 0xf6, 0xf2, 0x1d, 0xcc, 0xd9, 0x4f, 0x9c, 0xc, 0x0, 0x88, 0x8, 0x92, 0xb4, 0xe, 0xe0, 0xbf, 0x90, 0xc3, 0x34, 0x88, 0xc1, 0xd6, 0x73, 0xbd, 0xa3, 0x8c, + 0xdb, 0x10, 0xaf, 0x4c, 0x3, 0x20, 0x49, 0x8, 0x96, 0xc, 0x47, 0x5e, 0xe4, 0xbf, 0xce, 0x63, 0x2a, 0x1, 0x54, 0x74, 0xd9, 0x2c, 0xf3, 0xb8, 0xed, 0x65, 0x7d, 0x16, 0xfb, + 0xb, 0x0, 0x83, 0xa5, 0xb, 0xf8, 0xe6, 0xe6, 0xc7, 0x62, 0x3b, 0x93, 0x1a, 0x82, 0xf0, 0x0, 0xbf, 0xcd, 0x75, 0xf9, 0x75, 0x12, 0x30, 0x34, 0x8, 0x7b, 0xae, 0x77, 0x94, + 0x19, 0xc2, 0xa6, 0xf3, 0x83, 0x23, 0x2d, 0xec, 0x7, 0x1, 0xc4, 0xf3, 0x4b, 0xf8, 0x49, 0xc1, 0x92, 0xaf, 0xbd, 0xa5, 0x88, 0xc1, 0xf1, 0xb, 0xa6, 0xf5, 0x79, 0x0, 0x30, + 0x58, 0xf7, 0x61, 0xe4, 0x41, 0xb7, 0xe6, 0x1c, 0xc1, 0xa3, 0x6, 0x6b, 0x57, 0x34, 0x5c, 0x43, 0xeb, 0x64, 0xb4, 0x8e, 0xc, 0x61, 0x24, 0xde, 0x2a, 0xe5, 0x1a, 0x50, 0xbb, + 0xb3, 0x71, 0x1, 0x93, 0x4, 0xed, 0x2d, 0x45, 0xdc, 0x82, 0x3f, 0xd0, 0x8e, 0x5f, 0x1a, 0xb7, 0xc6, 0x17, 0x2, 0x5f, 0x42, 0xc, 0xc, 0x4d, 0x72, 0x6d, 0x0, 0xf0, 0x68, + 0xe1, 0x51, 0x5c, 0xc1, 0x51, 0xae, 0xcb, 0x4, 0x5e, 0x7d, 0xa1, 0x2e, 0x4d, 0x73, 0x23, 0xbf, 0xd5, 0xc7, 0x34, 0x4, 0xed, 0x7c, 0x65, 0xde, 0x66, 0xdf, 0xf6, 0x9d, 0x7, + 0x53, 0x69, 0xa9, 0x54, 0xe0, 0x31, 0x4d, 0x3, 0x43, 0x93, 0x3e, 0xd, 0xba, 0xfc, 0x89, 0x12, 0x70, 0xac, 0xf1, 0x8, 0x0, 0xe0, 0x4a, 0xfd, 0xd3, 0xe6, 0x41, 0x43, 0x98, + 0x6, 0xb, 0x7e, 0x0, 0x91, 0x23, 0x6d, 0x48, 0x22, 0xa4, 0xd, 0x82, 0xb8, 0x1, 0xa0, 0x30, 0x30, 0x34, 0xe9, 0xa5, 0xc, 0x54, 0x2d, 0xb0, 0xc4, 0x3, 0xa6, 0x6d, 0xb3, + 0x40, 0x32, 0x28, 0xc0, 0xe2, 0xb5, 0x8f, 0xc8, 0xf, 0x0, 0x67, 0xfe, 0x2c, 0xa1, 0xbd, 0x5, 0x3e, 0x1d, 0x5d, 0x2b, 0xe7, 0x98, 0x18, 0x8, 0x5c, 0x58, 0xc5, 0x14, 0xc1, + 0x93, 0xcf, 0x4, 0x2a, 0x61, 0x6, 0xf4, 0x39, 0x20, 0x24, 0xd0, 0x0, 0xc8, 0x93, 0x8f, 0x8d, 0x52, 0x49, 0xf9, 0x18, 0xd8, 0xc, 0xb3, 0xc0, 0x5e, 0x99, 0xa5, 0x5, 0xa6, + 0x27, 0x8, 0x83, 0xc9, 0x7, 0x20, 0x36, 0xd0, 0xa, 0xc2, 0x7f, 0x13, 0x89, 0x22, 0x3d, 0x47, 0x96, 0x3, 0x5b, 0x8, 0x7c, 0xba, 0x4c, 0xea, 0x71, 0x23, 0x9a, 0x62, 0x10, + 0x13, 0xfc, 0x3c, 0xd0, 0x6, 0x86, 0x26, 0x8d, 0x18, 0x27, 0x2c, 0xb8, 0x83, 0xfc, 0xa, 0xa3, 0xbb, 0xb1, 0x9f, 0x4a, 0xd6, 0xd4, 0x63, 0x75, 0xe1, 0x45, 0x73, 0x40, 0xd3, + 0x82, 0xaa, 0xff, 0x14, 0x34, 0x18, 0xb5, 0xbd, 0xad, 0x41, 0xa0, 0x22, 0x12, 0x50, 0x6, 0x49, 0xf0, 0x5b, 0x5d, 0x88, 0x89, 0x98, 0xf9, 0xa4, 0x4e, 0x4e, 0x30, 0xf3, 0x26, + 0xd2, 0x13, 0x62, 0x87, 0xb4, 0x50, 0xb1, 0xa3, 0x94, 0xe7, 0xce, 0x83, 0x29, 0xd2, 0x2a, 0x61, 0x41, 0xc3, 0x4c, 0xb4, 0xb7, 0x4c, 0x97, 0xc4, 0xb6, 0x11, 0xf4, 0x6f, 0x92, + 0xeb, 0x4f, 0x97, 0x13, 0x30, 0xb4, 0xf4, 0x14, 0x60, 0x75, 0xa4, 0x8f, 0xa, 0x24, 0x93, 0x8b, 0x1c, 0x69, 0x21, 0x24, 0xbb, 0xf5, 0x11, 0x3f, 0x6a, 0x50, 0x99, 0xbe, 0xe, + 0x94, 0x56, 0xf, 0x46, 0x67, 0x23, 0x9b, 0x3, 0x5b, 0xd6, 0xdc, 0x2e, 0x27, 0xa0, 0xca, 0x75, 0x4e, 0x19, 0x22, 0xca, 0x50, 0xad, 0x20, 0x8, 0x4b, 0xbe, 0x0, 0xb7, 0xed, + 0x7b, 0x6c, 0xce, 0x20, 0x10, 0x78, 0xb2, 0x7e, 0x4b, 0x2b, 0x10, 0x61, 0x21, 0x26, 0x75, 0x12, 0x4a, 0x34, 0x50, 0x2d, 0xd0, 0xf8, 0xee, 0xc9, 0x8a, 0x6f, 0xe8, 0xce, 0xbc, + 0x4e, 0x27, 0x20, 0x43, 0x48, 0xb9, 0xa5, 0x1c, 0x4, 0xc2, 0xc, 0xa1, 0x1c, 0x4, 0x31, 0x33, 0x1c, 0x55, 0xe2, 0xf1, 0xbe, 0x89, 0xfa, 0x6c, 0xcf, 0x8, 0x69, 0x67, 0x57, + 0xdd, 0xd5, 0xd0, 0x98, 0xfe, 0xb8, 0x34, 0xe8, 0x79, 0x5d, 0x2b, 0xe7, 0xc8, 0xf6, 0x2b, 0x6b, 0x74, 0x3e, 0x1, 0x3, 0xc9, 0x97, 0xd8, 0xf8, 0x3a, 0xd7, 0x64, 0xc2, 0x28, + 0xe6, 0x92, 0xb3, 0x1, 0xc8, 0x4b, 0x43, 0xd3, 0xe5, 0x67, 0x8, 0xac, 0x2e, 0x28, 0x31, 0x8, 0x3e, 0x72, 0xca, 0xf6, 0xb6, 0x6, 0x39, 0xdb, 0xdf, 0x86, 0x30, 0x5d, 0x22, + 0x64, 0x51, 0x72, 0xf8, 0x9e, 0x0, 0x50, 0xab, 0x10, 0x3, 0x2e, 0xcd, 0xa, 0xe0, 0xf1, 0x4b, 0xe3, 0x3a, 0xb3, 0x9f, 0xab, 0xb6, 0x2f, 0x7b, 0x32, 0x84, 0xc, 0xc2, 0xc0, + 0xad, 0x1c, 0xa7, 0xd6, 0x12, 0x50, 0x98, 0x9a, 0x13, 0x27, 0x8d, 0x58, 0x4f, 0x87, 0x4c, 0xf5, 0x4a, 0x18, 0x18, 0x9a, 0xa4, 0xbc, 0x70, 0xcf, 0xea, 0x3a, 0xc5, 0x24, 0x4f, + 0x1, 0x48, 0x37, 0xea, 0x7, 0x12, 0x8f, 0x2a, 0xa9, 0x32, 0xbd, 0x46, 0xec, 0x5a, 0x39, 0x47, 0x3b, 0xee, 0x93, 0x18, 0xc5, 0xdb, 0xb8, 0x6c, 0x7a, 0x71, 0xa4, 0xa1, 0xde, + 0x7f, 0x53, 0x5c, 0x96, 0x24, 0x29, 0x4b, 0x47, 0x59, 0x27, 0xe2, 0xce, 0x15, 0xd6, 0x71, 0xeb, 0x25, 0x5a, 0x6, 0xe5, 0x61, 0xe8, 0xa7, 0x6d, 0x2c, 0x95, 0xa1, 0x41, 0x5b, + 0xea, 0xda, 0xde, 0xba, 0xcd, 0xc3, 0x6, 0xe6, 0x3b, 0xf, 0xa6, 0xd8, 0x0, 0x6e, 0x53, 0x43, 0x28, 0xbf, 0x6a, 0xdc, 0xff, 0xf, 0xc1, 0xaf, 0x5b, 0x28, 0xd1, 0x2f, 0x8c, + 0xb9, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto citrim_data_size = 0x9ae; + +inline uint8_t danilka22ah_data[0x988] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0x42, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5c, + 0x3f, 0x68, 0xdc, 0x56, 0x1c, 0xfe, 0x2e, 0x39, 0x5c, 0x54, 0xb8, 0xdc, 0x59, 0x83, 0xd, 0x81, 0x4b, 0x16, 0x1b, 0xc, 0xcd, 0x5d, 0x86, 0x12, 0x4a, 0x17, 0x9b, 0x6, 0x2, + 0xd, 0x1e, 0x52, 0x12, 0x3a, 0xc5, 0x4b, 0x86, 0x4c, 0xa1, 0xc4, 0x59, 0xd2, 0x6c, 0xc1, 0x74, 0x29, 0x59, 0xda, 0x90, 0x66, 0xea, 0x9a, 0x8e, 0x9, 0x1c, 0xd4, 0xa4, 0x60, + 0x8, 0xd8, 0x6b, 0xa7, 0xc6, 0x19, 0xa, 0x4d, 0x87, 0x26, 0x24, 0xd4, 0x26, 0x75, 0x9d, 0xdc, 0x20, 0x62, 0x8e, 0xaa, 0xc3, 0xdd, 0x93, 0x25, 0x9d, 0xfe, 0x3c, 0xe9, 0xbd, + 0xa7, 0xdf, 0x93, 0xee, 0x7d, 0x20, 0x8c, 0xce, 0x92, 0xbe, 0xef, 0xfd, 0xfe, 0xbc, 0xdf, 0xd3, 0x7b, 0x92, 0x6a, 0xc8, 0x88, 0xcd, 0x4e, 0xc7, 0xd, 0xff, 0xb6, 0xb4, 0xbd, + 0x5d, 0xcb, 0x7a, 0x9d, 0x3c, 0xa0, 0xe4, 0xd6, 0x81, 0x9f, 0x52, 0x43, 0x14, 0x2f, 0x35, 0x7f, 0x15, 0x6c, 0x9f, 0xeb, 0xe4, 0xcd, 0x4e, 0xc7, 0x5d, 0x5c, 0x7a, 0xeb, 0xed, + 0x6f, 0x6d, 0x36, 0xa5, 0x88, 0xd1, 0x9d, 0x5b, 0x7, 0x7e, 0x4a, 0xd, 0x2c, 0x0, 0x27, 0xd5, 0xf7, 0x2a, 0x34, 0x1c, 0xc9, 0x2b, 0x84, 0x11, 0x3, 0x87, 0xe, 0x49, 0xea, + 0x25, 0x65, 0x82, 0x92, 0x5b, 0x7, 0x7e, 0x2a, 0xd, 0x2c, 0xc8, 0xde, 0xdf, 0x3b, 0xeb, 0x6d, 0x93, 0xe6, 0x7b, 0xd9, 0x1a, 0x72, 0xf7, 0x1c, 0x9b, 0x9d, 0x8e, 0xfb, 0xc9, + 0xd3, 0x8f, 0xbd, 0xfd, 0xf, 0xbe, 0x7a, 0x52, 0x68, 0x4f, 0x4c, 0xc5, 0xad, 0x3, 0x3f, 0xa5, 0x6, 0x56, 0x1, 0xde, 0xdf, 0x3b, 0x5b, 0x38, 0x37, 0xe3, 0xaf, 0x92, 0xed, + 0x73, 0x57, 0x40, 0x46, 0xcc, 0x50, 0x74, 0x6f, 0x48, 0xc9, 0xad, 0x3, 0x3f, 0x85, 0x86, 0x56, 0xab, 0x15, 0x18, 0x7e, 0x1d, 0x38, 0xa7, 0x71, 0xe0, 0x9c, 0xe, 0x70, 0xb7, + 0x5a, 0xad, 0xca, 0xfb, 0x5e, 0xa6, 0x86, 0x5c, 0x9, 0x48, 0xe9, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd2, 0xd0, 0x6a, 0xb5, 0xdc, 0x5e, 0xbb, 0x1d, 0xf8, 0x6d, 0xca, 0xfa, + 0xcd, 0xe3, 0x67, 0xdc, 0xbd, 0x76, 0xbb, 0xb2, 0xbe, 0x57, 0xa1, 0x21, 0x73, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0xa9, 0x35, 0xb0, 0x0, 0xeb, 0xdf, 0xb9, 0xe1, + 0x5, 0x1e, 0xc3, 0x81, 0x73, 0x1a, 0xfd, 0x3b, 0x37, 0x2, 0x13, 0x34, 0x32, 0x51, 0x55, 0xdb, 0x67, 0x1e, 0x33, 0xb7, 0x5a, 0x2d, 0xf7, 0xdf, 0x95, 0x63, 0x0, 0x86, 0x8e, + 0x88, 0x43, 0xe3, 0xe6, 0x77, 0x98, 0x7e, 0xf0, 0xe, 0xfb, 0xfb, 0xfb, 0xd2, 0xc6, 0xe5, 0x94, 0xdc, 0x3a, 0xf0, 0x53, 0x6a, 0x60, 0x1, 0xf5, 0xe2, 0xf5, 0xed, 0xc4, 0xe3, + 0x4e, 0x1c, 0x5f, 0xc3, 0xfe, 0xfe, 0x3e, 0x20, 0x30, 0xbf, 0x10, 0xc7, 0x5f, 0x45, 0xdb, 0xe7, 0x4a, 0x40, 0x80, 0xc6, 0x11, 0x3a, 0x4, 0x1, 0x25, 0x3f, 0xa5, 0x86, 0x56, + 0xab, 0xe5, 0xae, 0x36, 0x9b, 0xf8, 0xfe, 0x6d, 0x72, 0x85, 0xeb, 0xb5, 0xdb, 0x58, 0xda, 0xde, 0x96, 0xc6, 0xeb, 0xe7, 0x7, 0xaa, 0x67, 0xfb, 0x7a, 0x1e, 0x21, 0xab, 0xcd, + 0x26, 0x4e, 0x1c, 0x5f, 0x4b, 0x3c, 0xa6, 0xd7, 0x6e, 0x63, 0x69, 0x28, 0x42, 0x2a, 0x28, 0xb9, 0x75, 0xe0, 0xa7, 0xd6, 0xb0, 0xda, 0x1c, 0xce, 0xf6, 0x7d, 0x76, 0xec, 0x98, + 0xf4, 0x6b, 0xf3, 0x70, 0x57, 0xcd, 0xf6, 0xb9, 0x12, 0x90, 0x9, 0x1, 0xe8, 0x1c, 0x41, 0xc5, 0xad, 0x3, 0x3f, 0xb5, 0x86, 0x49, 0x6d, 0xb7, 0xa, 0xd, 0x42, 0xcb, 0x10, + 0x94, 0x46, 0xa0, 0xe4, 0xd6, 0x81, 0x5f, 0x17, 0xd, 0x14, 0xd0, 0xa1, 0xdd, 0xb2, 0x34, 0x8, 0x25, 0xa0, 0xc1, 0xe4, 0xe2, 0xc2, 0xcb, 0x97, 0xb8, 0xf2, 0xe6, 0x95, 0xb7, + 0x7f, 0xe5, 0xcd, 0xab, 0xc0, 0xbe, 0x1, 0x1f, 0x84, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0xc1, 0xb6, 0x8e, 0xe0, 0xcf, 0xd7, 0xff, 0x4, 0x7e, 0xb, + 0xef, 0xab, 0x44, 0x55, 0x6c, 0x2f, 0x9c, 0x80, 0x94, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x4a, 0xd, 0x7b, 0xce, 0x7f, 0x98, 0x9e, 0x9e, 0x8e, 0xdd, 0x57, 0x8d, 0xaa, 0xd8, + 0x5e, 0x38, 0x1, 0x29, 0x1d, 0x41, 0x1d, 0x4, 0xd4, 0xfc, 0x94, 0x1a, 0x7a, 0xed, 0x36, 0xfc, 0x8b, 0xd2, 0xe1, 0x7d, 0xd5, 0xa8, 0x8a, 0xed, 0x73, 0xcf, 0x82, 0x32, 0x84, + 0x8d, 0x5e, 0xa4, 0x13, 0x28, 0xb9, 0x75, 0xe0, 0xd7, 0x45, 0x3, 0x5, 0x74, 0x68, 0xb7, 0xc, 0xd, 0x66, 0x12, 0xc6, 0xc0, 0x80, 0x10, 0x26, 0x1, 0xd, 0xb8, 0x91, 0xf6, + 0x14, 0xc, 0x0, 0xf6, 0x14, 0x8c, 0x1, 0x27, 0x72, 0x3f, 0x8a, 0xb6, 0xda, 0x6c, 0x26, 0xae, 0x85, 0xf8, 0x1c, 0x21, 0xfd, 0x51, 0x34, 0xa, 0x6e, 0x1d, 0xf8, 0x35, 0xd0, + 0xc0, 0xfb, 0x90, 0x73, 0xd5, 0xda, 0xad, 0x4c, 0x43, 0x5e, 0x91, 0x64, 0x8e, 0x20, 0xe6, 0xd6, 0x81, 0x9f, 0x42, 0x83, 0xc7, 0x37, 0x35, 0xbb, 0xc, 0x0, 0x78, 0xff, 0xf7, + 0xcf, 0x81, 0x3, 0x3e, 0x9c, 0xff, 0x1a, 0x0, 0xe0, 0x3c, 0xbf, 0x23, 0x9b, 0x3b, 0x52, 0x47, 0xa, 0x4a, 0x63, 0xfb, 0xac, 0x43, 0x50, 0x97, 0x9, 0x98, 0x9a, 0x5d, 0xc6, + 0xd4, 0xec, 0x32, 0x5c, 0xd7, 0xd, 0x6c, 0xd6, 0xdc, 0x4d, 0x58, 0x73, 0x37, 0xb3, 0x8a, 0xd5, 0x9d, 0x5b, 0x7, 0xfe, 0xa2, 0x35, 0x30, 0x2e, 0x97, 0x71, 0xb1, 0xe4, 0x3, + 0x80, 0x5a, 0xad, 0x86, 0xad, 0x6e, 0x17, 0x5b, 0xdd, 0x2e, 0x6a, 0xb5, 0xc3, 0x58, 0xb, 0x71, 0xcb, 0xb2, 0x41, 0x65, 0x6d, 0xcf, 0x93, 0xa5, 0x63, 0xbd, 0x9f, 0x1f, 0x7, + 0x3b, 0xeb, 0xd8, 0xec, 0x74, 0x0, 0xc, 0x4b, 0xaf, 0x4f, 0x80, 0xbf, 0x37, 0xe4, 0xe5, 0xd2, 0x89, 0x5b, 0x7, 0x7e, 0x2a, 0xd, 0x5e, 0xa0, 0x25, 0xe1, 0x60, 0x67, 0x1d, + 0x40, 0x20, 0xe9, 0x2, 0x18, 0xf1, 0x1b, 0xdb, 0x27, 0x68, 0x48, 0x13, 0x47, 0xe9, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd4, 0xe0, 0xf2, 0x70, 0xc6, 0x5, 0x9f, 0x0, 0xaf, + 0xc7, 0xf, 0x4c, 0x86, 0xed, 0x53, 0x87, 0xa0, 0xbc, 0x8e, 0xd8, 0xec, 0x74, 0xc2, 0x59, 0x2f, 0xc, 0x4a, 0x6e, 0x1d, 0xf8, 0x75, 0xd1, 0x40, 0x1, 0x1d, 0xda, 0x5d, 0x84, + 0x6, 0xb3, 0xc, 0x61, 0x90, 0x8, 0xd6, 0xc3, 0x67, 0x41, 0x95, 0x3a, 0x2, 0xd5, 0xe0, 0x4e, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0xbf, 0x2e, 0x1a, 0x28, 0xa0, 0x43, + 0xbb, 0x55, 0x6a, 0x30, 0x15, 0xd0, 0xc0, 0x80, 0x10, 0x26, 0x1, 0xd, 0xc, 0x8, 0x61, 0x12, 0xd0, 0x20, 0x15, 0x79, 0x86, 0x60, 0x6, 0x7c, 0xc8, 0x94, 0x80, 0x94, 0x8e, + 0xa0, 0xe, 0x2, 0x6a, 0x7e, 0x5d, 0x34, 0x50, 0x40, 0x87, 0x76, 0xab, 0xd2, 0x20, 0xfc, 0x3a, 0x92, 0xc1, 0x64, 0x62, 0x6a, 0x76, 0x19, 0x4b, 0xdb, 0xc9, 0x6b, 0x60, 0x6, + 0xe9, 0x10, 0x4e, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x3f, 0xb5, 0x6, 0xca, 0xc4, 0xab, 0x8a, 0xed, 0xa5, 0x54, 0x40, 0x4a, 0x47, 0x50, 0xf7, 0xbe, 0xd4, 0xfc, 0x5, + 0x69, 0xa8, 0x1d, 0xec, 0xac, 0xa7, 0x3e, 0x1d, 0x3, 0x14, 0xbb, 0xf4, 0x51, 0x5, 0xdb, 0x67, 0x9d, 0x84, 0xa9, 0xf1, 0x8e, 0x85, 0x15, 0x38, 0x82, 0x92, 0x5b, 0x7, 0x7e, + 0x5d, 0x34, 0x0, 0x0, 0x8e, 0x36, 0x3e, 0x52, 0x7a, 0xfd, 0x10, 0x74, 0x68, 0xb7, 0x12, 0xd, 0xc2, 0xb3, 0xa0, 0x5, 0x3b, 0x42, 0x1b, 0x6e, 0x1d, 0xf8, 0x75, 0xd1, 0x40, + 0x1, 0x1d, 0xda, 0x2d, 0x43, 0x83, 0x59, 0x86, 0x28, 0x19, 0x2c, 0xcb, 0xe2, 0x3e, 0x8e, 0x1d, 0xcb, 0x7b, 0x8e, 0xce, 0xa8, 0x6a, 0xbb, 0x4d, 0x2, 0x1a, 0x18, 0x10, 0xc2, + 0x24, 0xa0, 0x81, 0x1, 0x21, 0xcc, 0x3a, 0xa0, 0x41, 0x24, 0x44, 0x17, 0x9e, 0xab, 0xf0, 0x20, 0x78, 0x11, 0x48, 0x4d, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0xbf, 0x14, + 0xbc, 0xba, 0x97, 0xeb, 0x34, 0xff, 0xcb, 0xb6, 0x51, 0x48, 0x6b, 0xdb, 0x66, 0xa7, 0x23, 0xf4, 0x85, 0x34, 0xe1, 0x27, 0x4f, 0x72, 0xb6, 0x5b, 0xa6, 0x6, 0x1e, 0xff, 0xa7, + 0x26, 0x60, 0x94, 0x23, 0x2, 0xc2, 0x52, 0x44, 0x8a, 0x38, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x1, 0x60, 0x63, 0xe6, 0xc5, 0x50, 0xc3, 0x4e, 0xcc, 0x1, 0x29, 0x81, 0xf6, 0xcb, + 0xdc, 0x1c, 0x3e, 0x7f, 0xfe, 0x5c, 0x48, 0x3, 0x43, 0x54, 0x40, 0xda, 0xb6, 0x8d, 0x7a, 0xfd, 0x30, 0x8c, 0xae, 0x5d, 0x38, 0x87, 0xdb, 0x3f, 0xfe, 0x24, 0xcc, 0x95, 0x66, + 0xfb, 0x22, 0xda, 0x9d, 0xaa, 0x1, 0xc9, 0x31, 0xc0, 0xe3, 0xff, 0x3c, 0x1f, 0x65, 0x82, 0x6d, 0xdb, 0x58, 0xbb, 0x7a, 0xd9, 0x9b, 0x71, 0xb2, 0x2c, 0xb, 0x33, 0x33, 0x33, + 0x98, 0x99, 0x99, 0xc1, 0xda, 0xd5, 0xcb, 0x19, 0x2f, 0x99, 0xd, 0x7, 0x3b, 0xeb, 0xde, 0xc6, 0xc0, 0xb8, 0x81, 0xe1, 0xcc, 0x17, 0xd3, 0x30, 0xfb, 0xc3, 0x37, 0x85, 0xf1, + 0x33, 0x6e, 0x3f, 0xbf, 0x2a, 0x1c, 0x7d, 0xf7, 0xc4, 0xdb, 0x18, 0x2c, 0xcb, 0x42, 0xa3, 0xd1, 0xc0, 0xad, 0x95, 0x8b, 0x0, 0x0, 0xc7, 0x71, 0x84, 0xbe, 0xc, 0xb6, 0xb4, + 0xbd, 0x3d, 0x16, 0x3c, 0xfe, 0xf6, 0xa5, 0xcd, 0x30, 0xaa, 0xf8, 0x3e, 0x68, 0x54, 0xbb, 0x1b, 0x8d, 0x86, 0xb7, 0xdd, 0x5a, 0xb9, 0xa8, 0x7c, 0xe6, 0xd3, 0xef, 0x7f, 0x96, + 0x7c, 0x22, 0xb1, 0x9f, 0x5a, 0x1, 0xc3, 0x86, 0xb4, 0x6d, 0x7b, 0xec, 0x98, 0x46, 0xa3, 0x11, 0xd8, 0x3f, 0x75, 0xea, 0x14, 0x9e, 0x3d, 0x7b, 0x16, 0x79, 0x7e, 0x16, 0x44, + 0x9d, 0xcb, 0x82, 0xfd, 0xda, 0x85, 0x73, 0xb8, 0xfb, 0xf0, 0x71, 0xe2, 0xf9, 0xb, 0x4b, 0x5f, 0xe4, 0xe6, 0x96, 0xc1, 0x2f, 0x23, 0x8, 0xc3, 0xd7, 0x70, 0x1c, 0xa7, 0x66, + 0x59, 0x56, 0xec, 0x17, 0xb7, 0xee, 0xf7, 0x36, 0x0, 0x0, 0xec, 0x98, 0x9c, 0x55, 0x20, 0x77, 0xf2, 0x32, 0x7e, 0x91, 0x6b, 0x0, 0xe2, 0xb6, 0x93, 0x51, 0xf5, 0xa3, 0x34, + 0x58, 0x96, 0x85, 0x5b, 0x2b, 0x17, 0xf1, 0xed, 0x83, 0x47, 0x0, 0x0, 0xc7, 0x71, 0x2, 0xff, 0xb7, 0x6d, 0x1b, 0x7b, 0x7b, 0x7b, 0xb1, 0xe7, 0x87, 0x91, 0x56, 0x1, 0x6b, + 0xa1, 0xd, 0xd7, 0x2f, 0x9d, 0xc7, 0xf5, 0x4b, 0xe7, 0x3d, 0x1, 0x8d, 0x46, 0x3, 0xbb, 0xbb, 0xbb, 0xde, 0x9, 0xf7, 0x7b, 0x1b, 0xf8, 0xf2, 0xd3, 0xd3, 0x51, 0xe7, 0x67, + 0xc5, 0x18, 0x37, 0x2f, 0x98, 0x36, 0x1, 0x6e, 0x1d, 0xf8, 0xb9, 0x34, 0xb0, 0x8a, 0x7, 0x0, 0x83, 0xc1, 0x0, 0xc0, 0x61, 0x87, 0xe8, 0x38, 0x4e, 0x8d, 0x6d, 0x2, 0x1a, + 0x2, 0x5c, 0xfe, 0xe0, 0x53, 0x88, 0x5c, 0xb6, 0xbf, 0xdf, 0xdb, 0xc0, 0xf5, 0x4b, 0xe7, 0x1, 0x1c, 0xb6, 0xbd, 0x48, 0xd, 0x77, 0x1f, 0x3e, 0xf6, 0xf8, 0x79, 0xcf, 0xcd, + 0xfc, 0xa5, 0xb2, 0x70, 0x89, 0x67, 0x9, 0xc8, 0x2a, 0x3, 0xc3, 0x28, 0x29, 0x65, 0x7f, 0x20, 0xd5, 0x65, 0x65, 0x9e, 0x55, 0x1f, 0xff, 0xfd, 0xc7, 0xee, 0xee, 0xae, 0x37, + 0x4, 0x19, 0xf5, 0x4c, 0xca, 0xf9, 0x99, 0x6, 0x3f, 0xb7, 0x42, 0x7e, 0x0, 0xc3, 0xea, 0xc6, 0x12, 0xcf, 0x9f, 0xc, 0x96, 0x65, 0x79, 0xf6, 0xe8, 0xf7, 0xfb, 0xc2, 0xc3, + 0xd0, 0x10, 0xc6, 0x7c, 0xef, 0x38, 0x8e, 0x37, 0x22, 0xa, 0xfb, 0x1, 0x92, 0xdb, 0x1e, 0x57, 0xf5, 0xc3, 0xa3, 0xaf, 0xc1, 0x60, 0x0, 0xc7, 0x71, 0x64, 0xb7, 0xdd, 0xf, + 0x17, 0x0, 0xd6, 0xae, 0x5e, 0xc6, 0xb7, 0xf, 0x1e, 0xc1, 0x71, 0x9c, 0x40, 0xec, 0xf, 0x6, 0x3, 0x56, 0x1, 0xb9, 0xf8, 0x4b, 0x97, 0x80, 0xe1, 0x21, 0x30, 0x73, 0x3c, + 0xab, 0xc2, 0xaa, 0x13, 0x30, 0x89, 0xbf, 0xc8, 0x4, 0x4c, 0xf8, 0x1f, 0xea, 0xf5, 0x3a, 0xfa, 0xfd, 0x3e, 0xd3, 0x21, 0x43, 0x83, 0xcb, 0xae, 0xed, 0x7, 0x1b, 0x7e, 0x85, + 0x27, 0x62, 0x7c, 0x23, 0x22, 0x69, 0xed, 0xd7, 0x28, 0x1, 0x1, 0x9f, 0x3d, 0x44, 0x13, 0xb0, 0x4c, 0xb, 0xf1, 0xa9, 0x5f, 0x1a, 0x8e, 0xb8, 0x1, 0x57, 0xf1, 0x85, 0xe4, + 0x52, 0x20, 0x1c, 0x98, 0xa2, 0x88, 0x9a, 0xdc, 0x88, 0x9b, 0xf0, 0x8, 0x77, 0xc6, 0x15, 0x44, 0xd, 0x18, 0xbf, 0xff, 0xcb, 0x83, 0x32, 0x25, 0x60, 0xe4, 0x4, 0x50, 0x1c, + 0xca, 0xf0, 0x1c, 0xa0, 0x41, 0xa9, 0x21, 0xa5, 0xc2, 0x96, 0x2a, 0x1, 0xc3, 0xf0, 0xf, 0x7b, 0xc, 0xe8, 0xb0, 0xb7, 0xb7, 0xe7, 0x4d, 0x0, 0x85, 0x30, 0xb1, 0x23, 0x10, + 0x5e, 0x94, 0x3a, 0x1, 0x19, 0xfc, 0xb3, 0xb0, 0x11, 0x50, 0x16, 0x4, 0x71, 0xf7, 0x7f, 0x93, 0x82, 0xa4, 0x21, 0xd8, 0x4, 0xc, 0x43, 0xa5, 0xa0, 0xf4, 0x9, 0x98, 0x94, + 0x7c, 0x93, 0x98, 0x14, 0x4, 0x50, 0x39, 0xd9, 0x51, 0x79, 0x94, 0x3e, 0x1, 0x47, 0x28, 0x22, 0x8, 0xb4, 0x1f, 0x4e, 0x29, 0xea, 0x70, 0xc8, 0xdb, 0x9d, 0x34, 0xeb, 0x4b, + 0x8, 0x29, 0x9a, 0xca, 0x92, 0x80, 0x63, 0x8d, 0xa5, 0xb8, 0xff, 0x8b, 0x9a, 0x4, 0x4a, 0x19, 0xfe, 0x4a, 0x47, 0x5c, 0x30, 0xb2, 0xe4, 0xf3, 0xaf, 0x3, 0x4a, 0xe4, 0x14, + 0x39, 0x5d, 0xc7, 0xe4, 0x11, 0x45, 0xe4, 0xb2, 0x4c, 0x1e, 0x94, 0x25, 0x1, 0x33, 0xcd, 0x80, 0x46, 0x40, 0x34, 0x8, 0xd2, 0x3a, 0x80, 0x9a, 0x8c, 0x29, 0xe9, 0xbc, 0x60, + 0x6b, 0x7f, 0xe1, 0xe4, 0x93, 0xb0, 0x16, 0x16, 0x6b, 0xb7, 0x70, 0x7b, 0xa3, 0x26, 0x62, 0x64, 0xdc, 0x7, 0x6a, 0x58, 0xfd, 0xa4, 0x25, 0x1f, 0x50, 0x8e, 0x4, 0x8c, 0x75, + 0x0, 0x4f, 0xf5, 0xc9, 0x61, 0x28, 0x37, 0x62, 0x13, 0xed, 0x0, 0xa4, 0xe3, 0xcc, 0xfc, 0x49, 0x0, 0xe3, 0xed, 0x93, 0xbc, 0x0, 0x9f, 0x66, 0xbf, 0x5a, 0xe8, 0xaf, 0x28, + 0x97, 0x1b, 0xde, 0x64, 0x5c, 0x57, 0x2, 0x2, 0xb1, 0x20, 0x73, 0xa8, 0x2f, 0x94, 0x80, 0xb2, 0x17, 0x7b, 0xe3, 0x10, 0xf7, 0xf4, 0xc9, 0x8, 0x9e, 0xf3, 0x65, 0x55, 0xa1, + 0xc5, 0xee, 0x2, 0x16, 0xbb, 0xb, 0xb1, 0xff, 0xf, 0x3f, 0x7d, 0x93, 0x0, 0xe5, 0x1, 0xa4, 0xa8, 0xf2, 0x25, 0x42, 0x65, 0xb5, 0x3f, 0x33, 0x7f, 0xd2, 0xeb, 0x5c, 0x44, + 0x20, 0x3b, 0x79, 0x59, 0x3c, 0xc8, 0xbe, 0xcf, 0x2e, 0x43, 0x5, 0x8c, 0x44, 0x44, 0xf0, 0x2b, 0x9, 0x3a, 0xdb, 0xb6, 0xd3, 0xaa, 0x5f, 0x24, 0x6f, 0x11, 0x33, 0xb0, 0x67, + 0xe6, 0x4f, 0xa2, 0xdf, 0xef, 0x7b, 0x1b, 0x20, 0xf5, 0xd1, 0xb3, 0xb4, 0x0, 0x8e, 0xe4, 0x89, 0x59, 0xf, 0x2c, 0xc, 0xf5, 0x7a, 0xbd, 0xb0, 0xd9, 0xef, 0x70, 0x47, 0x94, + 0xa7, 0xed, 0x3a, 0x27, 0x60, 0x64, 0x10, 0xc4, 0x55, 0xbf, 0xa2, 0x90, 0xa1, 0xfa, 0x15, 0xe, 0x99, 0x95, 0x2f, 0x6e, 0x4, 0x90, 0x54, 0xfd, 0xd8, 0x6b, 0x38, 0x11, 0xd0, + 0x65, 0x28, 0x29, 0x84, 0xc5, 0xee, 0x2, 0x7b, 0xce, 0x54, 0xda, 0x28, 0x40, 0xe7, 0x4, 0x8c, 0xd, 0x82, 0xa4, 0xe0, 0x4f, 0x30, 0x8c, 0x70, 0x10, 0xb0, 0xb7, 0x1e, 0x54, + 0x3c, 0x6c, 0xac, 0x2b, 0xfc, 0x1, 0xe7, 0xb3, 0x6d, 0x54, 0xbb, 0x3, 0xbf, 0x31, 0x3b, 0xf9, 0x7c, 0x28, 0x35, 0x9, 0x55, 0xf, 0xb3, 0x53, 0x10, 0xfb, 0xaa, 0x51, 0x42, + 0x27, 0x14, 0x89, 0x52, 0x3c, 0xcb, 0x15, 0xd3, 0xa8, 0xb8, 0x20, 0xf0, 0x1c, 0xcd, 0x2, 0x66, 0xb1, 0xbb, 0x80, 0xad, 0xa7, 0xbf, 0x63, 0xf4, 0x3f, 0x2e, 0xc7, 0x8d, 0x8e, + 0xcf, 0xc2, 0xad, 0x1c, 0xfe, 0xfb, 0x9a, 0x5f, 0xff, 0xf8, 0x4b, 0x39, 0x1f, 0x4b, 0x9e, 0x91, 0x2d, 0xb8, 0xda, 0xec, 0xb7, 0x17, 0x3b, 0xdf, 0x67, 0x7f, 0x2e, 0x24, 0xb5, + 0x8d, 0x38, 0xf1, 0xc2, 0x70, 0x63, 0x66, 0x7a, 0xb9, 0x35, 0x6a, 0x9f, 0x80, 0x79, 0x82, 0xc0, 0x5f, 0x5, 0xf3, 0x4, 0x81, 0xef, 0x38, 0x9d, 0x9c, 0x9d, 0x88, 0x2, 0x2, + 0x93, 0xbb, 0xf3, 0x4a, 0x9a, 0xc0, 0x4a, 0x3, 0x4b, 0x3e, 0xcd, 0x12, 0x2d, 0x53, 0x7, 0x92, 0x5, 0x99, 0xdf, 0x7, 0x2c, 0x80, 0xc3, 0xe3, 0xf2, 0x3b, 0x32, 0x43, 0x52, + 0xb8, 0x40, 0x74, 0x10, 0x64, 0x49, 0xe2, 0x1c, 0x88, 0xb3, 0x8d, 0xf2, 0x77, 0xe2, 0x0, 0xe9, 0x1, 0x3b, 0x66, 0x43, 0x4e, 0xdb, 0xb9, 0x61, 0xbb, 0x87, 0x2, 0xb7, 0x90, + 0x97, 0x74, 0x19, 0xa, 0xea, 0x94, 0xe2, 0xa0, 0xe6, 0x85, 0xdc, 0xb8, 0xc0, 0x4e, 0x8, 0xf8, 0x3c, 0x3c, 0x40, 0x49, 0x82, 0x80, 0x93, 0x57, 0xda, 0x3a, 0x59, 0xd4, 0x14, + 0xbd, 0xa2, 0xaa, 0x11, 0xb0, 0x7f, 0x56, 0xdb, 0x17, 0x61, 0xf3, 0x38, 0x7b, 0x0, 0x85, 0x55, 0xd2, 0xd8, 0x7c, 0x18, 0x21, 0x95, 0x5b, 0x4a, 0x2, 0x32, 0x52, 0x5, 0x55, + 0x27, 0xaa, 0x87, 0xe1, 0xaa, 0x80, 0x39, 0xce, 0x13, 0x45, 0x92, 0x33, 0x94, 0x26, 0x20, 0x30, 0xc, 0x38, 0x5, 0xc1, 0x16, 0xb6, 0x65, 0x56, 0xdb, 0x2b, 0xb5, 0x79, 0x92, + 0x3d, 0x0, 0x65, 0x36, 0xf1, 0x23, 0x31, 0x1f, 0xc0, 0xd1, 0xfe, 0xff, 0x1, 0x96, 0x14, 0x3b, 0xb, 0x9b, 0xbc, 0x5f, 0xda, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82}; + +constexpr auto danilka22ah_data_size = 0x988; + +inline uint8_t gradient_data[0xc10] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x40, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xaa, 0x69, 0x71, 0xde, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, + 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc3, 0x0, 0x0, 0xe, 0xc3, 0x1, 0xc7, 0x6f, 0xa8, 0x64, 0x0, 0x0, 0x0, 0x18, + 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x8b, + 0xd6, 0xf7, 0x39, 0x0, 0x0, 0x0, 0xb6, 0x65, 0x58, 0x49, 0x66, 0x49, 0x49, 0x2a, 0x0, 0x8, 0x0, 0x0, 0x0, 0x5, 0x0, 0x1a, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x4a, 0x0, 0x0, 0x0, 0x1b, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x28, 0x1, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x31, + 0x1, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x69, 0x87, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, + 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, + 0x0, 0x3, 0x0, 0x0, 0x90, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x32, 0x33, 0x30, 0x1, 0xa0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0xa0, + 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x2, 0x0, 0x4, 0x0, 0x0, 0x0, 0x52, 0x39, 0x38, 0x0, 0x2, + 0x0, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x31, 0x30, 0x30, 0x0, 0x0, 0x0, 0x0, 0x25, 0x47, 0x9e, 0x8d, 0xa3, 0x34, 0xb5, 0xc5, 0x0, 0x0, 0xa, 0xbf, 0x49, 0x44, + 0x41, 0x54, 0x78, 0x5e, 0xad, 0xdb, 0x89, 0x6e, 0x24, 0xc7, 0x11, 0x84, 0xe1, 0x5d, 0xc9, 0x3a, 0x6c, 0xbf, 0xff, 0xc3, 0xea, 0xb2, 0x3d, 0x1f, 0xcd, 0xbf, 0x11, 0x5b, 0x6a, + 0xe, 0x49, 0x41, 0x1, 0x24, 0x32, 0x2b, 0x33, 0xf2, 0xaa, 0xee, 0x19, 0x52, 0xc4, 0xea, 0xeb, 0x97, 0xff, 0xe3, 0xa7, 0x91, 0x1f, 0x1f, 0xf2, 0xef, 0x87, 0xfc, 0xf0, 0x6a, + 0xff, 0xeb, 0x21, 0x3f, 0x3f, 0xe4, 0xfb, 0x87, 0xf0, 0xff, 0xe3, 0x21, 0xff, 0x7c, 0x88, 0x58, 0x3e, 0x75, 0xf0, 0xc4, 0xaa, 0xc3, 0x56, 0x3, 0xa7, 0x9c, 0x6c, 0x7e, 0x5a, + 0x8d, 0xef, 0x1e, 0xc2, 0x1f, 0xd7, 0xb9, 0xb8, 0xba, 0x7c, 0x2b, 0x7c, 0x1b, 0xc3, 0x3f, 0xed, 0xf4, 0x29, 0xb0, 0xfa, 0x2b, 0x22, 0xfc, 0xfa, 0x90, 0xff, 0x3e, 0xe4, 0xf7, + 0x87, 0xf0, 0xfd, 0xf1, 0x10, 0xe0, 0x83, 0xff, 0x3c, 0xa4, 0x38, 0x2d, 0x4e, 0x34, 0xa5, 0xe5, 0xe0, 0x28, 0x2a, 0x1e, 0x1f, 0xc4, 0xf0, 0x9c, 0x9, 0x8e, 0x38, 0xc8, 0xcd, + 0x1f, 0x9a, 0x29, 0xee, 0x37, 0x3, 0xbf, 0xa, 0xa4, 0xcb, 0xad, 0xe, 0x7f, 0xf6, 0x5b, 0xb8, 0x72, 0x6b, 0xd6, 0x80, 0x6e, 0x76, 0x8b, 0x14, 0x37, 0x30, 0xe, 0x1, 0x3c, + 0xc0, 0xdb, 0xe5, 0xd9, 0x49, 0x35, 0xc2, 0x79, 0x29, 0xe1, 0x1a, 0xe6, 0x55, 0x57, 0xcb, 0x79, 0xf3, 0xd9, 0x5d, 0xdc, 0xd6, 0xc2, 0xad, 0xc6, 0xa7, 0xd1, 0x20, 0x8a, 0x55, + 0xc4, 0x53, 0x61, 0xb7, 0xa4, 0xa7, 0xde, 0x40, 0x35, 0xee, 0xe9, 0x3b, 0xf7, 0xd6, 0xe0, 0xb0, 0xe3, 0xd0, 0x9b, 0x7, 0xf5, 0xd8, 0x73, 0x36, 0x38, 0x97, 0x13, 0xd8, 0xf9, + 0x8a, 0x93, 0xbd, 0xe4, 0xf8, 0x9d, 0xc3, 0xda, 0x77, 0xb8, 0x3e, 0x2, 0x2d, 0xdb, 0x62, 0x2d, 0xd2, 0x53, 0xaf, 0x21, 0xf8, 0x7c, 0x42, 0x3, 0x89, 0xb3, 0x5b, 0x84, 0x5d, + 0xc, 0xd2, 0xf9, 0xea, 0x1, 0x7c, 0xd5, 0x85, 0xcd, 0xe3, 0x27, 0xd5, 0xb, 0x71, 0xf4, 0xcb, 0x5f, 0xce, 0x9, 0xfe, 0xb7, 0x62, 0x2f, 0xa8, 0xb9, 0x42, 0xbf, 0x3d, 0xa4, + 0x73, 0x3, 0x6a, 0xc2, 0xa7, 0x48, 0xba, 0x81, 0x6a, 0xde, 0x25, 0x75, 0xde, 0x9a, 0xfb, 0x74, 0xf9, 0xf9, 0xd2, 0x40, 0x93, 0x73, 0xd0, 0x72, 0xe3, 0x9f, 0x71, 0xe8, 0x4c, + 0x6f, 0xbd, 0x93, 0x57, 0xec, 0x16, 0xd, 0xdb, 0x6b, 0x5e, 0x33, 0x6f, 0x44, 0x3, 0xf4, 0x45, 0x85, 0x3, 0x15, 0xac, 0x11, 0x5e, 0x4f, 0x95, 0x9c, 0x97, 0x86, 0xdf, 0x5, + 0xf1, 0xd1, 0xd5, 0x86, 0xf8, 0xc5, 0x4f, 0xf0, 0x93, 0x66, 0x5, 0x39, 0xa1, 0x3a, 0x21, 0xfe, 0x87, 0xb0, 0x45, 0xd9, 0xde, 0x2, 0xc5, 0xfd, 0x54, 0x30, 0x74, 0x4b, 0xd0, + 0xd9, 0xbb, 0x6c, 0xf9, 0xf4, 0x2e, 0x25, 0x1f, 0x1a, 0x86, 0xb4, 0x7c, 0xf5, 0x80, 0xee, 0xd2, 0xd8, 0x2d, 0x56, 0x9d, 0x34, 0x6c, 0x9d, 0x6a, 0x85, 0xea, 0x85, 0x38, 0xef, + 0xa2, 0x5, 0x2a, 0xd6, 0x93, 0x6a, 0x51, 0x68, 0xe0, 0x7c, 0xbd, 0x1d, 0xb0, 0x83, 0xc8, 0xd, 0xec, 0x72, 0xaa, 0x9, 0xe9, 0x16, 0x2e, 0x1f, 0xaf, 0x9a, 0xb, 0xb1, 0x33, + 0xa7, 0x73, 0xe0, 0x5b, 0xd, 0x77, 0xbc, 0xc5, 0x15, 0xd3, 0x18, 0x2c, 0x55, 0x81, 0x6c, 0x22, 0xbe, 0x3, 0xb4, 0xa4, 0x98, 0xcb, 0xd8, 0x45, 0xd8, 0x4, 0x1f, 0x4f, 0x9c, + 0xbd, 0xfe, 0xea, 0xd5, 0xb7, 0x7c, 0x3e, 0x2, 0xc5, 0xeb, 0x1f, 0x9c, 0x17, 0x71, 0x42, 0xf9, 0xb0, 0xb5, 0xd6, 0x1f, 0xae, 0xbc, 0xb3, 0x41, 0x9, 0xbd, 0xe6, 0xfd, 0x34, + 0x20, 0x1, 0x2f, 0x2e, 0xf4, 0xdd, 0xc0, 0xa7, 0x5e, 0x79, 0xcb, 0x1, 0xe7, 0x90, 0x5d, 0x3f, 0x28, 0x7f, 0x7d, 0x74, 0x97, 0x1e, 0x36, 0x37, 0xac, 0xbd, 0xc0, 0xdd, 0xbe, + 0xe1, 0xe2, 0x77, 0x1, 0x3d, 0xad, 0xfd, 0x11, 0x17, 0x70, 0x5a, 0x4c, 0xb1, 0x16, 0x6, 0x17, 0xc3, 0x8f, 0xdf, 0x25, 0xd1, 0xd5, 0x6d, 0x29, 0xd2, 0x45, 0xee, 0x40, 0xde, + 0x36, 0xb9, 0xf1, 0xb2, 0xe3, 0xd0, 0x72, 0x76, 0x9e, 0x38, 0xf4, 0xfa, 0xa1, 0xbc, 0xf7, 0x70, 0xf1, 0x76, 0x50, 0x62, 0x39, 0x45, 0x2d, 0xe5, 0xb, 0x91, 0xaf, 0xc5, 0x6a, + 0x78, 0x2e, 0xc7, 0xb7, 0x43, 0xee, 0x13, 0xe3, 0xeb, 0xa3, 0xd2, 0x5, 0x56, 0x8f, 0x2d, 0x9e, 0x2e, 0x3f, 0xd, 0xd9, 0xf5, 0x84, 0xe5, 0xca, 0xd, 0x6b, 0x7f, 0x18, 0x15, + 0xde, 0xe6, 0xa, 0x19, 0x1a, 0xd8, 0x6, 0xbe, 0xfb, 0x3c, 0x43, 0x17, 0x86, 0xb7, 0x3f, 0x3a, 0x77, 0x60, 0xb0, 0xbc, 0x1a, 0xfc, 0xb8, 0x38, 0xd5, 0xe8, 0x12, 0xf7, 0x5c, + 0x5f, 0x88, 0x4f, 0x2f, 0xca, 0x83, 0x33, 0xf6, 0x61, 0x34, 0x68, 0x3, 0x28, 0xf4, 0xcb, 0x43, 0x2a, 0xde, 0x10, 0xfb, 0x25, 0xc9, 0x5f, 0xbc, 0xa7, 0x4a, 0x70, 0x9d, 0xe9, + 0xbe, 0x3, 0xd8, 0x3b, 0x68, 0x3d, 0xa0, 0xbc, 0x7c, 0xf1, 0x93, 0x78, 0x70, 0x67, 0x6f, 0xcd, 0xb0, 0x36, 0x9c, 0xe7, 0x70, 0xf9, 0xbb, 0x80, 0x5d, 0xd0, 0xf7, 0x0, 0xdb, + 0x7f, 0xaa, 0xe6, 0x6b, 0x28, 0xb0, 0xa4, 0x2, 0xe7, 0x25, 0xb0, 0x7d, 0x6c, 0x60, 0x63, 0x9e, 0xfc, 0x39, 0x74, 0xb5, 0x7a, 0xd3, 0xf8, 0x89, 0x3c, 0xdc, 0xf8, 0xcd, 0x57, + 0x3c, 0xd4, 0x6f, 0xb9, 0x70, 0x77, 0x7e, 0x8a, 0x1a, 0x34, 0x50, 0x4d, 0x1a, 0xc, 0x5a, 0x38, 0xb0, 0x5b, 0x8a, 0xc8, 0x2d, 0x5e, 0x3d, 0xe0, 0x13, 0xc3, 0x61, 0x8b, 0x91, + 0x6c, 0x7a, 0x63, 0x74, 0x52, 0x5e, 0x73, 0x6d, 0x5d, 0xfe, 0x74, 0x7c, 0x58, 0x1b, 0xe2, 0x3d, 0x45, 0x85, 0x7b, 0x75, 0x25, 0x95, 0xd8, 0x62, 0x2d, 0xdb, 0xa5, 0x78, 0x5b, + 0x60, 0x2f, 0x49, 0x5c, 0xad, 0x62, 0xf2, 0x7a, 0x33, 0x40, 0x4c, 0xbd, 0x72, 0xea, 0x5b, 0x1e, 0x3e, 0xbd, 0xfc, 0xd5, 0x5d, 0x4, 0x9c, 0x4b, 0x96, 0x3, 0xec, 0x8d, 0xbf, + 0x87, 0xeb, 0xef, 0x1, 0x6, 0x33, 0x30, 0xe9, 0xc7, 0x9c, 0x18, 0xf1, 0x91, 0xc8, 0xd6, 0x0, 0x57, 0x93, 0x4, 0x6a, 0x4c, 0xe2, 0xed, 0x8f, 0xcb, 0xfc, 0x4, 0xba, 0xec, + 0x72, 0x88, 0x33, 0xc4, 0xe1, 0x6b, 0xf1, 0x6a, 0x2e, 0x9c, 0xab, 0x73, 0x87, 0xea, 0xc2, 0x5d, 0xee, 0xb, 0x6a, 0x96, 0x43, 0x2, 0xdf, 0xbe, 0x11, 0xce, 0xe7, 0x97, 0x9a, + 0x27, 0x4d, 0x1a, 0xbc, 0x46, 0x2e, 0xa7, 0x9c, 0xe2, 0xec, 0x9e, 0xbc, 0x73, 0xdc, 0xd3, 0x4e, 0x93, 0x73, 0xb1, 0xbb, 0x7c, 0x50, 0xfb, 0xf4, 0x2d, 0xaa, 0xf1, 0x66, 0x5c, + 0x1, 0xd0, 0xd0, 0x92, 0x2d, 0x6a, 0xf8, 0x92, 0xfb, 0x62, 0x3, 0x7c, 0xdc, 0x80, 0x63, 0xb8, 0xde, 0x8a, 0x2e, 0xce, 0xb9, 0x25, 0xce, 0x65, 0xa0, 0x1a, 0x2d, 0x20, 0x9e, + 0x6, 0x7e, 0x76, 0xfe, 0xed, 0x1b, 0x87, 0x9f, 0x84, 0xb8, 0x21, 0xde, 0x1d, 0x2e, 0x5e, 0x17, 0x10, 0xb9, 0x81, 0x2c, 0xdd, 0xad, 0x2f, 0xb6, 0x29, 0x2d, 0x8f, 0x74, 0x61, + 0xbb, 0x18, 0x14, 0x27, 0x2d, 0x71, 0xda, 0x50, 0xcd, 0x3d, 0x93, 0xea, 0x5, 0x79, 0x71, 0x80, 0x7d, 0xce, 0x13, 0xf2, 0xdf, 0xe1, 0xe2, 0x35, 0xa8, 0x27, 0x7, 0x92, 0xb2, + 0x35, 0xef, 0x5c, 0x42, 0x7c, 0xd8, 0xe6, 0x71, 0x1, 0xa7, 0xcf, 0x3f, 0x9f, 0x98, 0x1a, 0x2e, 0x74, 0x17, 0x27, 0x2d, 0xd8, 0x39, 0x64, 0xe3, 0x13, 0x75, 0xca, 0x65, 0x27, + 0x10, 0x97, 0xce, 0xf7, 0x61, 0x28, 0xa, 0x12, 0x3d, 0x45, 0x67, 0xc3, 0x77, 0x6e, 0xc0, 0x96, 0xd8, 0x6, 0x78, 0xf8, 0x1a, 0xb7, 0x1c, 0x1b, 0xd7, 0x17, 0x67, 0x5c, 0x75, + 0x96, 0xb, 0x38, 0xec, 0xce, 0x62, 0xf8, 0xf5, 0x5b, 0xe4, 0x5b, 0x3e, 0x5d, 0xe, 0x38, 0xef, 0x6c, 0xe1, 0xce, 0xf7, 0xd, 0x14, 0x49, 0xb7, 0x78, 0xbf, 0x8, 0xf5, 0xe4, + 0xd, 0x60, 0x9, 0x4b, 0xd6, 0x18, 0xd8, 0x20, 0x47, 0x9c, 0x26, 0xe2, 0xe5, 0x34, 0x7c, 0xc3, 0x12, 0x79, 0xa4, 0x33, 0xac, 0xd, 0xf1, 0xf2, 0xb1, 0xf5, 0x3f, 0x39, 0x21, + 0xfe, 0x99, 0x43, 0x9e, 0xa2, 0x65, 0x2a, 0xd0, 0x99, 0xee, 0x57, 0x62, 0xe8, 0xfb, 0x0, 0xcf, 0x45, 0x39, 0xbb, 0x20, 0xb, 0xf2, 0x75, 0x39, 0x6c, 0x3e, 0x36, 0x2d, 0x3f, + 0x4e, 0xc3, 0x14, 0x3, 0x7e, 0x75, 0xa0, 0xfe, 0xf1, 0xc4, 0x80, 0x8f, 0x7d, 0xc6, 0xb2, 0x81, 0xdd, 0xb9, 0x99, 0xcb, 0x7f, 0x86, 0xeb, 0xf7, 0x80, 0xc8, 0x74, 0x37, 0x6d, + 0x30, 0xf1, 0x6, 0x68, 0x11, 0x7e, 0xb2, 0x97, 0x12, 0xaa, 0xd7, 0xf2, 0x62, 0xc5, 0xe9, 0xe2, 0xc5, 0x0, 0xb7, 0x5, 0xea, 0xb1, 0xe8, 0x72, 0xbb, 0x34, 0x70, 0x5e, 0x1e, + 0xbb, 0xdc, 0x33, 0xff, 0x19, 0xae, 0x1f, 0x83, 0x90, 0xdd, 0x13, 0x1, 0x4f, 0x5b, 0x61, 0x1f, 0xb, 0xfe, 0x1d, 0xb2, 0xd7, 0x5e, 0x9e, 0x58, 0x76, 0xba, 0x81, 0xc5, 0xd8, + 0xf9, 0xd4, 0x0, 0xe7, 0x16, 0x21, 0xd0, 0x99, 0x4e, 0xaa, 0xc9, 0x5e, 0x94, 0x3, 0x71, 0x3f, 0xd, 0xc5, 0xc1, 0x2d, 0x37, 0x30, 0xdd, 0xb9, 0xa7, 0x9c, 0x6e, 0x11, 0xcd, + 0xf9, 0xb2, 0xbb, 0xa8, 0xbe, 0xec, 0xa0, 0xa1, 0xf8, 0x7b, 0x63, 0x1a, 0x52, 0xce, 0xb9, 0xd4, 0x2e, 0x4, 0xf2, 0xe2, 0x1, 0x6e, 0x67, 0x72, 0xe6, 0x9e, 0xbe, 0xb5, 0xdf, + 0x44, 0xc3, 0xf6, 0x4, 0x35, 0x5, 0x36, 0x9f, 0xb8, 0xa5, 0x6a, 0xde, 0x17, 0x5b, 0xc5, 0xc5, 0xf1, 0x8, 0x5f, 0x8b, 0x42, 0xbc, 0x2e, 0xa9, 0x1, 0x37, 0x9f, 0x2f, 0xbd, + 0x1c, 0xa0, 0x9d, 0x9b, 0x71, 0xe3, 0x71, 0xc2, 0x59, 0xf, 0xd6, 0x3e, 0x71, 0xc5, 0x2a, 0xe, 0x6c, 0x85, 0x68, 0xaf, 0x3c, 0x34, 0x4, 0x18, 0xbc, 0xa7, 0xd8, 0xd3, 0x27, + 0xe2, 0x62, 0xd9, 0xe2, 0xce, 0xd9, 0x34, 0x11, 0x6f, 0x79, 0xe2, 0xc, 0x9d, 0xc9, 0x22, 0x5f, 0x75, 0x48, 0x39, 0xc0, 0xff, 0xc, 0x67, 0xbd, 0xc5, 0x15, 0xab, 0x60, 0x83, + 0x79, 0x82, 0xe0, 0xc, 0xce, 0xfb, 0xd4, 0xf1, 0xd3, 0x2e, 0xc1, 0xdf, 0xff, 0x9d, 0xf3, 0xb5, 0x28, 0x74, 0x6e, 0x50, 0x1c, 0x76, 0x97, 0x13, 0x36, 0x1e, 0x67, 0xe3, 0x21, + 0x7f, 0x9c, 0xfa, 0x84, 0xf2, 0x4f, 0xdc, 0xd5, 0xba, 0x70, 0xe, 0x6b, 0xa9, 0x9a, 0x18, 0x94, 0x14, 0x73, 0x11, 0x20, 0x96, 0x6f, 0xe1, 0xd7, 0x67, 0xbe, 0x16, 0x24, 0x7d, + 0x1c, 0x1a, 0xba, 0xdc, 0xea, 0x3, 0x9b, 0x40, 0x9c, 0xf2, 0xb3, 0xe3, 0x6c, 0xdf, 0xf4, 0x62, 0x7d, 0xec, 0x72, 0x4f, 0x5c, 0x3c, 0x5, 0x61, 0x3f, 0xbb, 0x82, 0x3e, 0xf7, + 0x50, 0x63, 0xbe, 0x6, 0x6, 0x36, 0x7f, 0x79, 0xe7, 0x85, 0xd4, 0x94, 0xbf, 0x1e, 0xe5, 0x97, 0x5b, 0xdd, 0xad, 0x1f, 0x37, 0x1f, 0x54, 0x3b, 0xce, 0x33, 0x6c, 0x1e, 0x38, + 0xdf, 0xe1, 0xf2, 0xd7, 0xd0, 0xc2, 0x3d, 0xe1, 0x1d, 0x1a, 0x2c, 0xd8, 0xa2, 0xa4, 0x6, 0x8a, 0x34, 0x74, 0x97, 0xb0, 0x79, 0x72, 0x1a, 0x9c, 0x74, 0x2e, 0xf, 0xd6, 0x86, + 0x6a, 0xc3, 0x39, 0xbc, 0xf3, 0x9d, 0x6f, 0x21, 0x7f, 0x67, 0xd8, 0x7a, 0xb7, 0x88, 0x4c, 0xd7, 0xc0, 0x40, 0x2d, 0xd, 0xe7, 0x62, 0x50, 0xe3, 0x2e, 0xa0, 0x3c, 0xda, 0x45, + 0xd2, 0xbd, 0x45, 0xd, 0x51, 0x7c, 0x25, 0xe8, 0xe7, 0xdc, 0x5, 0x41, 0xf6, 0xea, 0xb0, 0xb9, 0xb0, 0xb1, 0xb5, 0xdf, 0x45, 0x8b, 0xed, 0x70, 0xa, 0xf4, 0x36, 0x18, 0xc, + 0x1a, 0xc2, 0xa5, 0xf4, 0x24, 0xbb, 0x98, 0xfe, 0x5e, 0xc0, 0x8f, 0x6f, 0x71, 0xf1, 0xfe, 0x9b, 0xa2, 0x61, 0xe9, 0x2e, 0xb, 0xaf, 0x41, 0xab, 0x53, 0xcd, 0x7a, 0x65, 0x43, + 0x3a, 0x38, 0x27, 0x7f, 0x5, 0x57, 0x9e, 0x26, 0xa0, 0x61, 0xff, 0x4e, 0xa8, 0xa5, 0x5b, 0x8c, 0xcf, 0x52, 0xd, 0xd4, 0x82, 0xe9, 0xad, 0x71, 0x42, 0xad, 0x5d, 0xb6, 0xda, + 0xbb, 0x5c, 0x38, 0x7d, 0x1e, 0x4a, 0xe0, 0x2f, 0x56, 0x9f, 0xb3, 0xdf, 0x59, 0xf, 0x70, 0xde, 0xf2, 0xbf, 0x60, 0x87, 0xef, 0x89, 0x79, 0xfa, 0x96, 0x67, 0xf7, 0xb4, 0x7b, + 0xba, 0xd9, 0x62, 0xfd, 0x2b, 0xb1, 0x6a, 0x88, 0xc7, 0x37, 0xbc, 0xb, 0x15, 0x8b, 0xcf, 0xa6, 0xc5, 0xb3, 0xa1, 0x4b, 0x69, 0xd0, 0xf4, 0x89, 0xf8, 0xc5, 0x3b, 0x87, 0xce, + 0xab, 0x71, 0x4f, 0x1e, 0x5c, 0x3d, 0xf6, 0x2, 0xc, 0x92, 0xf8, 0x67, 0x6e, 0xc0, 0xbf, 0xd2, 0x53, 0x91, 0x87, 0xe7, 0x5c, 0x13, 0xbe, 0x6d, 0xe8, 0x7c, 0xd6, 0x2f, 0x26, + 0x8f, 0x88, 0x97, 0x1b, 0xb6, 0xe, 0xc1, 0x2b, 0x6f, 0xd1, 0x2c, 0xa1, 0x9c, 0x96, 0xdb, 0x1a, 0x27, 0x2e, 0x5f, 0x8d, 0xd, 0x27, 0xa1, 0x27, 0x8a, 0xc0, 0xe6, 0x87, 0x8a, + 0xf2, 0x79, 0xf5, 0x5b, 0x1c, 0x97, 0x74, 0x6, 0xb9, 0xf9, 0xf9, 0xaa, 0xdd, 0x19, 0x1a, 0xcc, 0x79, 0x75, 0xc8, 0x7, 0xf9, 0x57, 0xaf, 0x40, 0xba, 0x9c, 0xc5, 0x53, 0x9f, + 0xa1, 0x80, 0xc3, 0xab, 0x4f, 0xb7, 0xe4, 0x2e, 0xbf, 0xb, 0x75, 0x49, 0xc4, 0xe2, 0x78, 0x7c, 0x62, 0x6, 0xe1, 0xdf, 0x81, 0xf6, 0xcc, 0x6, 0xe7, 0x7c, 0x80, 0x47, 0xe0, + 0xd4, 0xa1, 0x73, 0x97, 0x9d, 0x3c, 0x83, 0xf8, 0xf6, 0xf9, 0x13, 0x76, 0xa0, 0x96, 0xd6, 0xc0, 0x65, 0xb4, 0x20, 0x6c, 0x43, 0x5c, 0xb1, 0x2e, 0xc8, 0xf2, 0xc0, 0x5f, 0x7e, + 0x4d, 0x77, 0x79, 0x90, 0x5f, 0x5d, 0xfe, 0x96, 0x81, 0xed, 0x5, 0x78, 0xf5, 0xcb, 0x7, 0xd5, 0xdb, 0xba, 0x70, 0x77, 0x3e, 0x73, 0xc3, 0xc5, 0xd5, 0x24, 0xf4, 0x6, 0x90, + 0x5e, 0xf3, 0x2d, 0xd0, 0x99, 0xf4, 0x13, 0xa0, 0x78, 0x9c, 0x86, 0x6, 0x97, 0xc1, 0xde, 0xc5, 0x88, 0xdc, 0x5d, 0xae, 0x1a, 0x7b, 0x91, 0xdb, 0x9b, 0x86, 0xf2, 0xc9, 0xdf, + 0x86, 0x2e, 0xa0, 0xa2, 0x35, 0xed, 0xdf, 0xfa, 0xd6, 0xbc, 0xd7, 0x9c, 0x18, 0x2e, 0x7e, 0x3, 0xed, 0x90, 0x6a, 0x5a, 0xb2, 0x85, 0xf8, 0x5a, 0x8, 0xe8, 0x6a, 0x10, 0xd8, + 0x39, 0xe2, 0x41, 0xb9, 0xe2, 0x64, 0x6b, 0x94, 0x9b, 0x86, 0xcd, 0x7d, 0x86, 0x2b, 0xa7, 0xc6, 0x15, 0xa4, 0x89, 0xa6, 0x7e, 0x14, 0xd6, 0xb8, 0xe6, 0xeb, 0xeb, 0x63, 0xc2, + 0xdf, 0x53, 0x65, 0x43, 0xcb, 0x37, 0xbc, 0x73, 0x1f, 0x19, 0x9c, 0xb8, 0x69, 0xa2, 0xbf, 0x73, 0x39, 0x69, 0x31, 0x76, 0xf3, 0xf1, 0x65, 0x43, 0xfa, 0x5a, 0xea, 0x15, 0x9d, + 0x4f, 0xff, 0xe2, 0xfa, 0x9b, 0xe0, 0x59, 0xb4, 0x57, 0x5c, 0xe3, 0x9a, 0xb2, 0x2d, 0xc2, 0x6f, 0x99, 0xb8, 0x62, 0x7e, 0x87, 0x68, 0xe0, 0x80, 0xd7, 0xb9, 0x18, 0x5f, 0xf9, + 0xb0, 0x36, 0x6c, 0x8e, 0xfa, 0xf1, 0x43, 0xe7, 0x62, 0x21, 0xdf, 0xa2, 0xf3, 0xe9, 0x5f, 0x5c, 0x7f, 0x13, 0xb4, 0x30, 0xec, 0xc2, 0x7e, 0xd1, 0x9, 0xdb, 0xb4, 0xe5, 0xe9, + 0xce, 0xc5, 0xd9, 0x2d, 0xeb, 0x4c, 0x40, 0x1c, 0x3a, 0xd7, 0x17, 0xf2, 0xc9, 0xc3, 0x4b, 0x6f, 0xce, 0xd6, 0xc9, 0x7f, 0x57, 0xa3, 0xd8, 0x87, 0x51, 0x91, 0x9a, 0xf4, 0x8f, + 0x22, 0xbc, 0xea, 0x5b, 0xac, 0x25, 0xf1, 0xd, 0xe8, 0x4d, 0xd8, 0x1, 0x40, 0xbc, 0x41, 0xf0, 0x1, 0x97, 0xf8, 0xb8, 0x2c, 0xf8, 0x82, 0x9c, 0x6a, 0x82, 0xba, 0xf5, 0x6e, + 0xae, 0xea, 0xae, 0x1d, 0x3a, 0x9f, 0xcb, 0x3b, 0x9f, 0xbe, 0x70, 0xd5, 0xd8, 0xb, 0x30, 0x84, 0xc5, 0x49, 0xaf, 0x3a, 0x7f, 0xba, 0xc1, 0xba, 0x4, 0x52, 0x83, 0x16, 0x76, + 0xee, 0x72, 0xf6, 0xd2, 0xe2, 0x85, 0xea, 0x26, 0xd5, 0xdc, 0x4b, 0x0, 0x31, 0x7e, 0x68, 0xe8, 0xcd, 0x83, 0x8d, 0xc7, 0x9, 0x77, 0xbe, 0x6f, 0x50, 0x23, 0x9a, 0x78, 0x3, + 0xfa, 0x3c, 0x57, 0x58, 0xa3, 0xfe, 0x46, 0xe8, 0xa3, 0x52, 0xc1, 0x72, 0xc4, 0xb7, 0x89, 0xbc, 0x86, 0x13, 0xdf, 0x3a, 0x67, 0xe, 0x61, 0xc7, 0xef, 0xd2, 0x42, 0x75, 0xab, + 0x49, 0xe7, 0x5b, 0xbd, 0x39, 0x27, 0x9e, 0xc5, 0x5e, 0x86, 0x81, 0x1a, 0xd3, 0xde, 0x0, 0x45, 0x3d, 0x8d, 0x86, 0xe7, 0x67, 0xe7, 0x93, 0x87, 0xd7, 0x60, 0xd, 0xd1, 0x50, + 0xec, 0x5e, 0xfb, 0x7a, 0xd0, 0xd5, 0x11, 0x27, 0x7c, 0x72, 0xaa, 0xc9, 0xae, 0x46, 0x79, 0x9d, 0x61, 0x7d, 0xf2, 0xc3, 0x72, 0x3e, 0x85, 0xa, 0xf6, 0xea, 0x19, 0xc4, 0x5b, + 0xc0, 0xdf, 0x17, 0x23, 0xf0, 0xef, 0xef, 0x5, 0xd0, 0x7f, 0x3d, 0x6e, 0x8d, 0x16, 0x3, 0xcb, 0x42, 0x39, 0x6a, 0x34, 0xf8, 0xd6, 0x92, 0x9f, 0x3f, 0x1f, 0xe0, 0x3, 0x5f, + 0x12, 0xb6, 0xf, 0x64, 0xaf, 0xf, 0xce, 0xf3, 0x9f, 0xd0, 0xf0, 0xc1, 0x59, 0x92, 0xe6, 0x16, 0xea, 0x89, 0x6b, 0xde, 0x5b, 0x92, 0xf, 0xe2, 0xc9, 0xdb, 0x81, 0xf9, 0x0, + 0x9f, 0xc8, 0xdd, 0x25, 0xf8, 0xd8, 0x72, 0xaa, 0xf, 0x5d, 0x1a, 0xe0, 0x40, 0x75, 0x17, 0xf8, 0x3b, 0xbb, 0x73, 0xfc, 0x74, 0x35, 0xef, 0x10, 0xe7, 0x2a, 0xa2, 0x71, 0xaf, + 0xac, 0x44, 0xb6, 0x37, 0x80, 0x7f, 0x2f, 0x5, 0x68, 0x71, 0x3e, 0xdc, 0x3e, 0xa, 0x78, 0x2d, 0x2e, 0x6f, 0x2f, 0x86, 0xbd, 0x35, 0xe4, 0xe1, 0x5c, 0x83, 0xbc, 0x62, 0x17, + 0x69, 0xb6, 0x34, 0xb4, 0x14, 0x4e, 0xbc, 0xec, 0x62, 0x21, 0xdf, 0xe9, 0x87, 0xab, 0x4e, 0xc5, 0x2d, 0xe4, 0xf, 0x18, 0xfd, 0x14, 0x80, 0x5e, 0xd3, 0xc8, 0x3b, 0x10, 0x4e, + 0xd, 0x2c, 0x17, 0x6f, 0x17, 0xec, 0xb, 0xb3, 0xe5, 0x41, 0xae, 0xba, 0x78, 0xe5, 0xec, 0x82, 0x2d, 0x53, 0x3c, 0x3b, 0x3f, 0x1, 0x39, 0xe2, 0x90, 0x16, 0xab, 0x26, 0xac, + 0xff, 0x2d, 0x5c, 0xbf, 0x8, 0x59, 0x48, 0x82, 0xcf, 0x35, 0x9f, 0xe1, 0xbb, 0x80, 0x86, 0x8e, 0xdb, 0x19, 0xc, 0xd7, 0x6b, 0xdb, 0x80, 0xe5, 0x90, 0x7c, 0xc0, 0x4f, 0xe2, + 0x57, 0xaf, 0x73, 0x71, 0x28, 0xd6, 0x39, 0x54, 0xbf, 0x4b, 0x39, 0xe3, 0x8b, 0xfa, 0x3e, 0xc5, 0x36, 0x22, 0x86, 0xe9, 0xf6, 0xb3, 0x93, 0x2e, 0x25, 0x7f, 0x4b, 0xf6, 0x84, + 0x13, 0xb1, 0x86, 0xcb, 0xe, 0xec, 0xf7, 0x16, 0x2f, 0x8f, 0x40, 0x31, 0x58, 0xbb, 0x7e, 0xb0, 0xfe, 0x4f, 0x61, 0x2f, 0xa0, 0xa6, 0x96, 0x6c, 0x50, 0xfe, 0x84, 0xaf, 0xa1, + 0x21, 0xfe, 0xe, 0x41, 0xca, 0xc7, 0xed, 0x7b, 0x0, 0xf8, 0xe2, 0x2, 0x6e, 0x7a, 0x6b, 0x9f, 0xfe, 0xbd, 0x88, 0xb3, 0x1f, 0x9c, 0xe7, 0x4f, 0xa1, 0xe1, 0x68, 0x83, 0xf7, + 0x84, 0xd3, 0xd0, 0xc7, 0x83, 0x8f, 0xbd, 0x4b, 0x6d, 0x53, 0x3e, 0xc3, 0x78, 0x53, 0xc, 0x2a, 0x56, 0xd, 0xfe, 0x6, 0xe5, 0xdb, 0xa1, 0xd9, 0xb4, 0xba, 0x2d, 0x1b, 0xf8, + 0xb7, 0x47, 0xf6, 0xfa, 0xea, 0xb, 0x69, 0x58, 0xce, 0x9b, 0x68, 0x11, 0x89, 0xfe, 0x49, 0x4c, 0x5, 0xc, 0x62, 0x50, 0x45, 0xc, 0xe6, 0xb, 0xd2, 0xd9, 0xdf, 0x9, 0x70, + 0x8, 0xbf, 0xb8, 0x1a, 0xb4, 0x1c, 0x76, 0x52, 0x6c, 0xf9, 0x50, 0x1c, 0xf8, 0xf1, 0xe2, 0x40, 0x75, 0x42, 0x71, 0xa8, 0x6e, 0x79, 0x6b, 0x7f, 0x6, 0xd5, 0xbb, 0x1a, 0x59, + 0xce, 0xff, 0x20, 0xdd, 0xeb, 0x6b, 0x88, 0x6, 0x6, 0x5f, 0x8e, 0xbd, 0x15, 0x35, 0xcd, 0xc6, 0xed, 0xa9, 0x43, 0xf9, 0x69, 0xe8, 0xe9, 0x36, 0x74, 0x36, 0xc4, 0xad, 0xee, + 0xea, 0x90, 0x2f, 0x81, 0xb5, 0x81, 0x1d, 0xf, 0x36, 0xb6, 0xb5, 0xe0, 0x3a, 0x77, 0x1, 0x96, 0xb3, 0x84, 0xa5, 0xf8, 0x5a, 0x5e, 0x11, 0x3, 0x7a, 0xf5, 0x8b, 0xf1, 0xf5, + 0x85, 0x58, 0xd3, 0x72, 0xf8, 0x2b, 0xee, 0xcc, 0x96, 0x2f, 0x17, 0x1a, 0x4a, 0x2c, 0x5b, 0x2e, 0x5e, 0x67, 0x76, 0x79, 0x8b, 0xea, 0xc2, 0xf2, 0x21, 0x9b, 0x6e, 0xa7, 0xe5, + 0x2f, 0x17, 0xae, 0x73, 0xe4, 0x6, 0x74, 0xee, 0x89, 0x90, 0x1a, 0x2d, 0x8f, 0xaf, 0xff, 0x60, 0x62, 0xf7, 0xf4, 0xfb, 0x7e, 0xc0, 0xef, 0x6d, 0xa9, 0x6, 0x7e, 0x35, 0x49, + 0x75, 0xe2, 0xb3, 0x41, 0x9f, 0x38, 0xf9, 0xc2, 0x9e, 0xc5, 0xd3, 0x71, 0x8b, 0xe7, 0x8b, 0x73, 0x87, 0x57, 0xee, 0x97, 0x2f, 0xff, 0x3, 0x95, 0xc2, 0xd6, 0xa2, 0x9b, 0xfe, + 0x9b, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto gradient_data_size = 0xc10; + +inline uint8_t invisedivine_data[0x9ff] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x9, 0xb9, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4f, 0x68, 0x1d, 0xc7, 0x1d, 0xfe, 0xc6, 0x7a, 0xc8, 0x7a, 0xf6, 0xd3, 0x9f, 0x47, 0xc1, 0x89, 0xdc, 0x92, 0x48, 0xd8, 0x7, 0x29, 0x24, 0xa7, 0xe6, 0x96, 0x43, 0xc0, 0x49, + 0xe9, 0xc1, 0x36, 0xee, 0xa5, 0x18, 0x6c, 0x70, 0xa0, 0x38, 0xe8, 0x96, 0x43, 0xc0, 0x2, 0x23, 0x54, 0x93, 0x2a, 0x22, 0xa0, 0x40, 0xc1, 0xbd, 0x94, 0xe0, 0x12, 0xf7, 0xa2, + 0x40, 0xe8, 0xa5, 0xc5, 0xce, 0x49, 0x25, 0x34, 0x7, 0x1f, 0x75, 0x28, 0x29, 0x8e, 0x29, 0x36, 0x4e, 0x4a, 0xe5, 0x38, 0x81, 0x26, 0x96, 0x2d, 0x55, 0x8d, 0x90, 0x35, 0x3d, + 0x3c, 0xcd, 0x6a, 0xde, 0xbc, 0xd9, 0xdd, 0x99, 0xdd, 0x99, 0xfd, 0xcd, 0x7b, 0x6f, 0x3e, 0x58, 0xf4, 0xde, 0xee, 0xce, 0x7c, 0xdf, 0xfe, 0xfe, 0xcc, 0xcc, 0xce, 0xec, 0x5b, + 0x1, 0x11, 0x11, 0x11, 0x64, 0x60, 0xd4, 0x2, 0x22, 0x82, 0x7, 0x97, 0x3e, 0x9b, 0xc4, 0x8b, 0xed, 0xf9, 0x7d, 0x8d, 0x3, 0x16, 0xe7, 0x72, 0x69, 0xf3, 0x71, 0x7e, 0xa8, + 0xdc, 0x21, 0xf0, 0x93, 0x6a, 0x58, 0x9e, 0x9b, 0x93, 0xeb, 0xcc, 0xe3, 0x94, 0xcf, 0x77, 0x81, 0x9e, 0xb6, 0xbd, 0x4d, 0x2, 0x92, 0x3a, 0x82, 0x38, 0x8, 0xc8, 0xf9, 0xa9, + 0x35, 0x18, 0x70, 0xf7, 0xe4, 0x75, 0xfb, 0xd6, 0x60, 0x95, 0x80, 0x86, 0x42, 0x28, 0x8d, 0xe0, 0x8d, 0x3b, 0x4, 0x7e, 0x4a, 0xd, 0xaf, 0x9f, 0x98, 0xc1, 0xe2, 0x1b, 0xaf, + 0xc9, 0x1c, 0xea, 0x86, 0xc5, 0x37, 0x5e, 0xc3, 0xeb, 0x27, 0x66, 0x9c, 0xf2, 0xa, 0xf4, 0xaa, 0xed, 0xad, 0x13, 0x90, 0xd2, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xad, 0xe1, + 0xe2, 0x85, 0xeb, 0x58, 0x9e, 0x9b, 0xc3, 0xf2, 0xdc, 0x1c, 0xf8, 0xfa, 0x46, 0xb2, 0x89, 0x7d, 0x17, 0x2f, 0x5c, 0x77, 0xce, 0x29, 0xd0, 0xab, 0xb6, 0xaf, 0x15, 0x11, 0x72, + 0xf1, 0xc2, 0x75, 0x4c, 0xfc, 0xe4, 0x3, 0x0, 0xc0, 0xb9, 0xd9, 0xcb, 0xc9, 0xfe, 0x8f, 0x96, 0xde, 0x4b, 0x84, 0xfa, 0x2, 0x25, 0x77, 0x8, 0xfc, 0x54, 0x1a, 0xfe, 0xfa, + 0xe9, 0x7, 0x4e, 0xce, 0x29, 0x83, 0x5e, 0xb4, 0xbd, 0x75, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x43, 0xd1, 0x40, 0x81, 0x10, 0xae, 0xdb, 0x87, 0x6, 0xeb, 0x21, + 0x68, 0x44, 0x84, 0xdc, 0xf2, 0xeb, 0xbe, 0x47, 0x98, 0xa3, 0x54, 0x2, 0x52, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x29, 0x34, 0x9c, 0x7b, 0xf7, 0x5d, 0xcc, 0x5c, 0xbd, 0x8a, + 0x63, 0x53, 0xcf, 0xb5, 0x1f, 0x18, 0x39, 0x8c, 0x99, 0xab, 0x57, 0x31, 0xff, 0xe1, 0xef, 0xbd, 0xf2, 0x27, 0x3a, 0x7a, 0xc8, 0xf6, 0x85, 0x12, 0x90, 0xd2, 0x11, 0xd4, 0x41, + 0x40, 0xcd, 0x4f, 0xad, 0xe1, 0xc8, 0xf0, 0x20, 0xee, 0x3d, 0xf8, 0x8f, 0xf6, 0x58, 0xda, 0x7e, 0x57, 0xe8, 0x45, 0xdb, 0x17, 0xee, 0x1, 0x29, 0x1d, 0x41, 0xc9, 0x1d, 0x2, + 0x3f, 0xa5, 0x86, 0x8d, 0xad, 0x6d, 0xc, 0xf, 0xf, 0x77, 0xec, 0x3f, 0x54, 0x3, 0x8e, 0x1d, 0xfd, 0x91, 0x37, 0x5e, 0x81, 0x5e, 0xb3, 0x7d, 0xe1, 0x4, 0xa4, 0x74, 0x4, + 0x75, 0x10, 0x50, 0xf3, 0x57, 0xa0, 0xa1, 0x63, 0x9d, 0xeb, 0xdc, 0x2f, 0x7f, 0x5, 0xfc, 0xf3, 0xdf, 0xf8, 0xe6, 0xab, 0x87, 0x78, 0xb2, 0xf6, 0x10, 0x0, 0xb0, 0xbd, 0xbe, + 0xdb, 0x3a, 0xf8, 0x78, 0x13, 0xdf, 0x7c, 0xf5, 0x10, 0xf7, 0xfe, 0xf6, 0xf7, 0xd6, 0x79, 0x72, 0x45, 0x9c, 0x37, 0x75, 0xf5, 0x15, 0x45, 0xaf, 0xd9, 0x3e, 0x6f, 0x16, 0x94, + 0x43, 0x79, 0x9e, 0x4f, 0x76, 0x84, 0xc0, 0xf6, 0xfa, 0x2e, 0x6, 0x47, 0xf, 0x24, 0x8e, 0xc0, 0xc3, 0xef, 0x81, 0xad, 0x6d, 0x7c, 0xf4, 0xa7, 0xf, 0xf7, 0x2b, 0xe2, 0xbc, + 0xc9, 0x18, 0xfb, 0x4e, 0xad, 0x2f, 0x50, 0xee, 0x10, 0xf8, 0xc9, 0x34, 0x70, 0xce, 0x87, 0x18, 0x63, 0xed, 0xdc, 0xf5, 0x41, 0x60, 0x6b, 0xbb, 0xed, 0xbc, 0xc1, 0x51, 0xa5, + 0xfd, 0xde, 0xda, 0x6e, 0x9d, 0x27, 0x81, 0x31, 0xf6, 0x1d, 0xe7, 0x7c, 0x94, 0x31, 0xab, 0x4b, 0xef, 0x1b, 0xdb, 0x67, 0xf6, 0x80, 0x9c, 0xf3, 0x21, 0xa8, 0xad, 0x57, 0x49, + 0x47, 0x64, 0xf1, 0x85, 0xc2, 0x1d, 0x2, 0x3f, 0xa5, 0x6, 0xc6, 0xd8, 0xf, 0x9c, 0x73, 0x51, 0x29, 0x3b, 0xbf, 0xb8, 0x8, 0x3c, 0xdb, 0x4, 0x26, 0x9f, 0xc9, 0x2e, 0x38, + 0xf9, 0xc, 0xf0, 0x6c, 0x13, 0xe7, 0x17, 0x17, 0x81, 0xfd, 0x60, 0x63, 0x8c, 0xb1, 0xc7, 0x26, 0xbc, 0x2, 0xfd, 0x64, 0x7b, 0x93, 0xd6, 0x90, 0xed, 0xb5, 0x86, 0xad, 0xaf, + 0xeb, 0x1b, 0x79, 0x45, 0xf6, 0x2b, 0x1f, 0x6d, 0x18, 0x71, 0x84, 0xc8, 0x1d, 0x2, 0x3f, 0xa1, 0x6, 0xc1, 0x27, 0xca, 0xb6, 0xf1, 0xb2, 0xd1, 0x6, 0xf2, 0xbe, 0xcb, 0x65, + 0x95, 0xba, 0xcc, 0x4, 0xf4, 0x89, 0xed, 0xf3, 0xee, 0x1, 0x39, 0x63, 0x6c, 0x37, 0x87, 0x24, 0xf5, 0xbb, 0x5a, 0x17, 0xec, 0xee, 0x5, 0x28, 0xb9, 0x43, 0xe0, 0xa7, 0xd4, + 0xc0, 0xd0, 0x1e, 0x3c, 0x4c, 0xae, 0x9b, 0xaf, 0x6f, 0x80, 0x8d, 0x36, 0x92, 0x2d, 0x23, 0xf9, 0x74, 0x75, 0x99, 0xa0, 0x6f, 0x6c, 0x5f, 0xa8, 0x75, 0xd4, 0x18, 0xbc, 0x75, + 0x20, 0xdb, 0x11, 0x2e, 0x40, 0xc9, 0x1d, 0x2, 0x7f, 0x95, 0x1a, 0x3a, 0xee, 0x81, 0x54, 0x6e, 0x15, 0x1a, 0x4e, 0x5d, 0x1d, 0x85, 0xf5, 0xf4, 0xa2, 0xed, 0x4d, 0x7f, 0x60, + 0x49, 0xe5, 0x8, 0xea, 0x20, 0xa0, 0xe6, 0xa7, 0xd2, 0x20, 0x9f, 0x6f, 0xd3, 0x7b, 0x24, 0x1c, 0x9c, 0xf3, 0x1, 0xc6, 0xd8, 0xd3, 0x2, 0xdc, 0x3a, 0xd, 0xfb, 0xd5, 0xf6, + 0x98, 0xed, 0xf3, 0xc4, 0x51, 0x3a, 0x82, 0x3a, 0x8, 0xa8, 0xf9, 0x43, 0xd0, 0xc0, 0xc7, 0xc6, 0xc6, 0xda, 0x76, 0x3c, 0x7a, 0xf4, 0xa8, 0x75, 0x20, 0xa5, 0x27, 0x28, 0xc0, + 0xa1, 0xe5, 0x45, 0x9f, 0xd8, 0xde, 0x78, 0x49, 0x80, 0xc8, 0x11, 0xd4, 0xdc, 0x21, 0xf0, 0x53, 0x69, 0x48, 0x38, 0x5, 0x97, 0xc, 0x59, 0x4f, 0xb3, 0xd9, 0x4, 0x0, 0xdc, + 0xbf, 0x7f, 0xdf, 0x25, 0x7f, 0x9b, 0x6, 0x81, 0x5e, 0xb3, 0xbd, 0xd1, 0x10, 0x94, 0xd0, 0x11, 0xd4, 0x41, 0x40, 0xcd, 0x4f, 0xa9, 0x21, 0x69, 0xf5, 0xd5, 0x0, 0x54, 0x21, + 0x78, 0x5, 0x5c, 0xf1, 0xf7, 0x83, 0xed, 0xad, 0x5e, 0xb2, 0x43, 0xe0, 0x8, 0xf2, 0x20, 0x20, 0xe6, 0xa7, 0xd2, 0xc0, 0x4d, 0xf8, 0x74, 0x9c, 0x2, 0x7f, 0x6c, 0x34, 0xf0, + 0xea, 0xe7, 0x9f, 0xdb, 0xf2, 0x76, 0x68, 0x30, 0xd1, 0xd1, 0xcd, 0xb6, 0xcf, 0x5d, 0x86, 0x10, 0xe4, 0xb6, 0x2, 0x0, 0x60, 0x72, 0x72, 0x12, 0x9f, 0xbd, 0xf4, 0x52, 0xe, + 0x45, 0x90, 0xdc, 0x21, 0xf0, 0x93, 0x6a, 0x78, 0x6b, 0x62, 0xa2, 0x50, 0x39, 0x47, 0xe8, 0x1b, 0xdb, 0xe7, 0x3e, 0xb, 0x4a, 0xe9, 0x8, 0xe2, 0x20, 0x20, 0xe7, 0xf, 0x45, + 0x43, 0x1a, 0xd2, 0x7a, 0x3f, 0x17, 0x8, 0xe1, 0xba, 0xab, 0xd0, 0xe0, 0xe4, 0x7, 0xb9, 0x3e, 0x1d, 0x11, 0x32, 0x77, 0x8, 0xfc, 0xbe, 0x35, 0xe8, 0xee, 0x7d, 0xf2, 0xa0, + 0xc, 0xbf, 0xbc, 0xa1, 0x17, 0x6c, 0x6f, 0x9c, 0x80, 0x94, 0x8e, 0xa0, 0xe, 0x2, 0x6a, 0xfe, 0x50, 0x34, 0x50, 0x20, 0x84, 0xeb, 0xf6, 0xa9, 0x21, 0xbe, 0x92, 0x22, 0x22, + 0x82, 0x10, 0x31, 0x1, 0x23, 0x22, 0x8, 0x11, 0x13, 0x30, 0x22, 0x17, 0x45, 0x86, 0x60, 0x11, 0x66, 0xb0, 0x4a, 0x40, 0x4a, 0x47, 0x50, 0x7, 0x1, 0x35, 0x7f, 0x28, 0x1a, + 0x28, 0x10, 0xc2, 0x75, 0xfb, 0xd2, 0x10, 0x7b, 0xc0, 0x88, 0x8, 0x42, 0xc4, 0x4, 0x8c, 0x88, 0x20, 0x44, 0x4c, 0xc0, 0x8, 0x13, 0x30, 0xd3, 0x21, 0x58, 0x2f, 0x2c, 0x7d, + 0x54, 0x9, 0xdb, 0x4, 0xa4, 0x74, 0x4, 0x75, 0x10, 0x50, 0xf3, 0x87, 0xa2, 0x1, 0x40, 0xe5, 0x8b, 0xe0, 0x21, 0x5c, 0xb7, 0x17, 0xd, 0xa5, 0x7b, 0xc0, 0xf8, 0x14, 0xc, + 0x2d, 0x42, 0xd0, 0x40, 0x81, 0x10, 0xae, 0xdb, 0x85, 0x86, 0x38, 0x4, 0x8d, 0x88, 0x20, 0x44, 0x4c, 0xc0, 0x88, 0x8, 0x42, 0xc4, 0x4, 0x8c, 0x88, 0x20, 0x44, 0xa1, 0x7f, + 0xd0, 0x19, 0xd1, 0xfb, 0xf8, 0xdd, 0x97, 0x5f, 0x96, 0x2a, 0xbf, 0xf7, 0x63, 0xdc, 0x88, 0x1c, 0x98, 0xbc, 0x94, 0x49, 0x3d, 0x9f, 0xeb, 0x7e, 0x8a, 0xaf, 0x42, 0x33, 0x13, + 0x54, 0xe4, 0xa5, 0x48, 0x54, 0xdc, 0x21, 0xf0, 0x3, 0x0, 0x7f, 0x6b, 0x62, 0x42, 0x4e, 0x86, 0xaa, 0x34, 0xf0, 0xb5, 0xd5, 0x15, 0x0, 0xc0, 0x8f, 0x7f, 0xfa, 0x33, 0x2d, + 0x6f, 0xde, 0x8c, 0xe0, 0xda, 0xea, 0x8a, 0x5c, 0xd6, 0x16, 0x41, 0xd8, 0x3e, 0x0, 0xd, 0xe0, 0x6b, 0xab, 0x2b, 0x7c, 0x6d, 0x75, 0x45, 0x7e, 0xb1, 0x28, 0xb7, 0xd9, 0x94, + 0xb2, 0xa5, 0xb9, 0xc7, 0xc6, 0xc6, 0x92, 0xcd, 0x23, 0x77, 0x8, 0xfc, 0x94, 0x1a, 0xf8, 0xda, 0xea, 0xa, 0xbf, 0xf3, 0xd9, 0x9f, 0x73, 0xfd, 0x5e, 0x3f, 0x3e, 0xcb, 0xf, + 0xbf, 0xb0, 0x90, 0x6c, 0xef, 0xbc, 0x79, 0x9e, 0x3, 0x50, 0xcb, 0x76, 0xcb, 0x75, 0x5b, 0x69, 0x98, 0x9c, 0x9c, 0x2c, 0xad, 0xc1, 0x68, 0x8, 0xfa, 0x64, 0x63, 0x33, 0x11, + 0x5, 0x0, 0x43, 0xe3, 0x67, 0x70, 0xf9, 0x54, 0x3, 0xef, 0xdd, 0xdc, 0x7f, 0x2b, 0xd4, 0x40, 0xf3, 0x65, 0x0, 0xc0, 0xec, 0x2b, 0x77, 0x70, 0xe5, 0xda, 0xb2, 0xae, 0x6c, + 0x21, 0xa8, 0xe5, 0x75, 0x2d, 0xef, 0xe1, 0x17, 0x16, 0x0, 0x0, 0x9b, 0xb7, 0xe7, 0xd1, 0x38, 0x7a, 0x1a, 0x97, 0x4e, 0x8e, 0xe0, 0xca, 0xb5, 0xe5, 0xd2, 0xdc, 0x36, 0xfc, + 0x9b, 0xb7, 0xe7, 0x51, 0x1b, 0x3f, 0x8b, 0x21, 0xf6, 0x5f, 0xa7, 0xfc, 0xa6, 0x1a, 0xea, 0xc7, 0x67, 0x71, 0x60, 0x70, 0x58, 0xb6, 0x3f, 0x3, 0xc0, 0x8b, 0x6a, 0xd8, 0xeb, + 0xbd, 0xda, 0xd0, 0x38, 0x7a, 0x1a, 0x0, 0x70, 0xe9, 0xe4, 0x8, 0xde, 0xff, 0xe4, 0x31, 0x36, 0x1e, 0xdc, 0x48, 0x2d, 0x3f, 0xf5, 0xea, 0x2f, 0xa, 0xf1, 0xca, 0xb0, 0xf1, + 0x3d, 0xd0, 0x8a, 0x3d, 0xa1, 0xab, 0xa, 0xdb, 0x8b, 0xcf, 0x42, 0x43, 0x91, 0xd8, 0xcf, 0x4d, 0x40, 0xd5, 0x11, 0x43, 0xe3, 0x67, 0x3a, 0xce, 0x11, 0xc9, 0x97, 0x54, 0xfa, + 0xdc, 0xc, 0x76, 0xfe, 0xd5, 0xfa, 0x5f, 0xd9, 0x65, 0x1c, 0xa1, 0xb, 0x2, 0xf9, 0x62, 0x7f, 0xfb, 0x69, 0x1d, 0x0, 0xb0, 0x93, 0x52, 0xbe, 0x6c, 0x10, 0xe8, 0xf8, 0x47, + 0x8f, 0x5d, 0x4, 0x0, 0xbc, 0x7d, 0x62, 0xcb, 0x3b, 0x7f, 0x8a, 0x6, 0x6, 0x80, 0xf, 0x1c, 0x69, 0x25, 0xc3, 0xd3, 0x6f, 0xdb, 0x93, 0x60, 0xe9, 0xd6, 0x94, 0xf8, 0xc8, + 0x4b, 0x68, 0x28, 0x3c, 0x64, 0x92, 0xf8, 0x4b, 0xbd, 0x95, 0x2c, 0xab, 0x1, 0x10, 0xf0, 0xdd, 0x0, 0xe8, 0x34, 0xd4, 0xc6, 0xcf, 0x62, 0xfe, 0x54, 0xd, 0xb, 0x37, 0x5b, + 0x5e, 0xdf, 0xf9, 0xfa, 0xe3, 0x8e, 0xe3, 0x62, 0x9f, 0x89, 0x86, 0xbc, 0x59, 0x50, 0xa6, 0x6c, 0xb8, 0x7c, 0xaa, 0xd1, 0xd6, 0xfb, 0xd, 0x34, 0x5f, 0xc6, 0xe6, 0xed, 0xf9, + 0xa4, 0xc0, 0xd2, 0xad, 0x29, 0xcc, 0xff, 0x7c, 0x43, 0x57, 0xde, 0x16, 0x1d, 0xdc, 0xa6, 0x78, 0xff, 0x93, 0xe4, 0x9f, 0xf1, 0x14, 0xe5, 0xe, 0x81, 0xdf, 0x48, 0xc3, 0x3b, + 0x6f, 0x9e, 0x4f, 0x3e, 0xef, 0x6e, 0x3f, 0x1, 0xd0, 0xd6, 0x2b, 0x94, 0xb1, 0x7f, 0x7, 0x2e, 0x9d, 0x1c, 0x49, 0x7a, 0x3f, 0xcf, 0x28, 0x64, 0xfb, 0xa5, 0x5b, 0x53, 0xb8, + 0x74, 0x72, 0x44, 0xad, 0xa3, 0x32, 0xd, 0xb, 0x37, 0x77, 0x30, 0x7f, 0x2a, 0xe9, 0xd3, 0x8c, 0xca, 0x5a, 0xcf, 0x82, 0xca, 0xc3, 0xce, 0x34, 0x48, 0xad, 0xa0, 0x73, 0xcc, + 0xbe, 0x72, 0x7, 0x0, 0xf6, 0x7b, 0x9f, 0x83, 0xcf, 0x7b, 0xe3, 0xd2, 0xe1, 0xed, 0x13, 0x5b, 0x6d, 0xfc, 0x2a, 0xfe, 0xc7, 0xf, 0x55, 0xa2, 0xe3, 0xd7, 0x67, 0x5a, 0x81, + 0x26, 0x5a, 0xe2, 0xad, 0xbb, 0x4b, 0xa8, 0x1f, 0x9f, 0xf5, 0xca, 0x99, 0x96, 0x78, 0xbb, 0xdb, 0x4f, 0x70, 0x60, 0xb0, 0xf3, 0x1f, 0x56, 0x52, 0x40, 0xd8, 0xc3, 0x13, 0xd8, + 0xce, 0xd7, 0x1f, 0xf3, 0x2b, 0xd7, 0x5a, 0xd, 0x9f, 0xca, 0x75, 0xb0, 0xf9, 0x22, 0x16, 0x6e, 0xfe, 0xc3, 0xaa, 0xc2, 0xae, 0x5b, 0x86, 0x48, 0xb, 0x7c, 0xb9, 0x17, 0xae, + 0x92, 0xbf, 0xea, 0x6, 0x40, 0xe0, 0x37, 0x7f, 0x69, 0x25, 0x3, 0x1b, 0x38, 0x94, 0xc, 0x7b, 0x44, 0x12, 0x4a, 0xc9, 0xc0, 0xe1, 0xee, 0x55, 0xf1, 0x5a, 0x64, 0x24, 0xbe, + 0x2b, 0xee, 0xd0, 0xc0, 0x0, 0xf0, 0x2b, 0xd7, 0x96, 0x51, 0x1b, 0x3f, 0x5b, 0xba, 0xb2, 0x6e, 0x5a, 0x88, 0xcf, 0x9d, 0xd1, 0x52, 0xef, 0x11, 0x4c, 0xca, 0xf4, 0xa, 0xd4, + 0x60, 0x90, 0x27, 0x27, 0x5c, 0x40, 0x63, 0x5b, 0xed, 0x3e, 0x1f, 0xdc, 0x1, 0x82, 0x1, 0x9d, 0xf7, 0x7f, 0x45, 0xd0, 0x4d, 0x9, 0x98, 0x4c, 0x80, 0x98, 0x20, 0x2d, 0x38, + 0x22, 0x22, 0x1c, 0xc1, 0x49, 0xef, 0xde, 0x55, 0x9, 0xa8, 0x82, 0x6a, 0xf8, 0x17, 0xd1, 0x8e, 0xad, 0xbb, 0x4b, 0xc9, 0x4, 0x90, 0x82, 0xbe, 0x19, 0x81, 0x14, 0x45, 0x57, + 0x27, 0xa0, 0x40, 0xce, 0xfd, 0x9f, 0xb7, 0x20, 0x10, 0xd, 0x80, 0x58, 0x3, 0xec, 0x37, 0x64, 0x2d, 0x3, 0xf4, 0xc1, 0x30, 0xd4, 0x9, 0xba, 0x3e, 0x1, 0xb3, 0x92, 0xaf, + 0x9f, 0x86, 0xa1, 0x2e, 0xee, 0x47, 0xa, 0xa2, 0x17, 0x27, 0x5a, 0x2a, 0x43, 0xd7, 0x27, 0xe0, 0x1e, 0xaa, 0x8, 0x82, 0xe0, 0x86, 0x53, 0x7c, 0xa7, 0xb5, 0x24, 0x22, 0x92, + 0xcf, 0xd3, 0x32, 0x44, 0x8, 0xd7, 0x1d, 0x82, 0x6, 0x15, 0x4e, 0x34, 0x75, 0x4b, 0x2, 0x76, 0x5c, 0x2c, 0xc5, 0xfd, 0x9f, 0x6e, 0x12, 0xa8, 0xaa, 0xe5, 0xf, 0x9, 0x89, + 0x2d, 0x58, 0xad, 0xde, 0x91, 0x7c, 0x62, 0x9, 0xc2, 0xa5, 0xae, 0x92, 0x23, 0x9, 0x27, 0x81, 0x1a, 0xd8, 0x68, 0x86, 0x3, 0x9d, 0x33, 0xcf, 0x45, 0xd0, 0x2d, 0x9, 0x68, + 0x35, 0x3, 0xaa, 0x41, 0xd9, 0x20, 0xc8, 0x6b, 0x0, 0x58, 0xd5, 0x43, 0xc0, 0xa7, 0xdf, 0xde, 0x48, 0x1e, 0x43, 0x13, 0x6b, 0x7f, 0x9a, 0xe4, 0x2b, 0xfd, 0xf, 0x4a, 0xd3, + 0xe, 0xa8, 0xf7, 0x7f, 0xba, 0x89, 0x18, 0x47, 0xf7, 0x81, 0xa1, 0xf5, 0x7e, 0xce, 0x92, 0xf, 0xe8, 0x8e, 0x4, 0x4c, 0x75, 0x80, 0x49, 0x2b, 0x5f, 0xa0, 0xe5, 0xd4, 0x3d, + 0xd9, 0x5e, 0xb6, 0x1, 0x70, 0x8e, 0xe9, 0x5a, 0xeb, 0x81, 0x0, 0x75, 0xd8, 0xe9, 0x30, 0xf9, 0x0, 0xe4, 0xda, 0x8f, 0x29, 0x7f, 0xcb, 0x42, 0x6b, 0xfb, 0x0, 0x7a, 0xbf, + 0x36, 0x3d, 0x2e, 0x27, 0xdc, 0x4a, 0x25, 0xa0, 0xfa, 0x10, 0xb6, 0x2f, 0xa8, 0xc1, 0xaf, 0xf6, 0x3e, 0xe2, 0x43, 0xd6, 0xac, 0x9c, 0xd, 0xa6, 0x6b, 0xf5, 0x24, 0xc0, 0x75, + 0x90, 0x67, 0x3f, 0x73, 0xe0, 0xbd, 0xf5, 0xf6, 0xd4, 0xf3, 0x65, 0xc2, 0x95, 0x9d, 0x75, 0xc8, 0xb3, 0xbd, 0x85, 0x6, 0xa7, 0xb6, 0x17, 0x9a, 0x5c, 0xcf, 0x76, 0x77, 0xdd, + 0xa3, 0x68, 0x2, 0x9a, 0xe0, 0x67, 0xf0, 0x10, 0xf0, 0x6, 0x3d, 0x9f, 0x36, 0xd8, 0xe5, 0xa7, 0xe2, 0x7d, 0x61, 0xba, 0x56, 0xc7, 0x17, 0x7a, 0x3b, 0x94, 0x85, 0x89, 0x1d, + 0xb5, 0x3c, 0x2e, 0x9f, 0xb, 0x2d, 0xd2, 0xf3, 0x1d, 0x6c, 0xbe, 0x8, 0xa0, 0x9a, 0x59, 0x61, 0x95, 0xe3, 0x87, 0xef, 0xed, 0x9e, 0x3, 0x5, 0xc2, 0x1e, 0x82, 0x6a, 0x7f, + 0xcc, 0x98, 0xd6, 0xfb, 0x55, 0x5, 0x8b, 0xde, 0xaf, 0x32, 0x48, 0xad, 0xb2, 0x33, 0x7b, 0xa4, 0xf5, 0x42, 0x59, 0x3d, 0xcf, 0xd6, 0xdd, 0xa5, 0xb4, 0x43, 0x4e, 0x1b, 0x46, + 0x9f, 0x3d, 0x70, 0x16, 0xa6, 0xf7, 0x26, 0xbd, 0xc4, 0xe6, 0x2, 0x41, 0xf7, 0x80, 0xd3, 0xb5, 0x3a, 0xbe, 0xd8, 0x9b, 0x6a, 0x97, 0x91, 0x15, 0xfc, 0x1b, 0xf, 0x6e, 0xa4, + 0xb5, 0x9c, 0xa5, 0x1f, 0xe, 0xde, 0x39, 0xf8, 0xbc, 0xca, 0xdd, 0xf3, 0x6b, 0x60, 0x29, 0xc1, 0xae, 0xbb, 0xee, 0xb6, 0x11, 0x88, 0xb0, 0x93, 0xe4, 0xc3, 0xd2, 0xf6, 0x57, + 0xb4, 0x78, 0x19, 0xf1, 0x18, 0x42, 0xbe, 0x8e, 0x36, 0xd, 0xb6, 0x89, 0x19, 0x74, 0x2, 0xa, 0xac, 0xdf, 0xfb, 0x83, 0x6e, 0x77, 0x6e, 0x10, 0x8, 0x87, 0x15, 0x9, 0x2, + 0x91, 0xf8, 0x16, 0xdc, 0x55, 0x20, 0xb9, 0x36, 0xb9, 0x61, 0xf2, 0x35, 0xdc, 0x12, 0xbd, 0xe0, 0x1e, 0x97, 0xd1, 0x35, 0xcb, 0xbd, 0xa0, 0x28, 0x9f, 0xd6, 0x90, 0xa6, 0x41, + 0x9c, 0x6b, 0x91, 0xfc, 0x54, 0xe0, 0x29, 0x33, 0xbd, 0xc6, 0x1a, 0x83, 0x4f, 0xc0, 0x22, 0x41, 0x20, 0x3b, 0xae, 0x48, 0x10, 0x48, 0xe7, 0x85, 0xe4, 0x6c, 0x0, 0xc0, 0xc0, + 0x91, 0xd3, 0xc9, 0x2, 0x3c, 0xab, 0xd5, 0xc1, 0x6, 0xe, 0x89, 0x4, 0xf4, 0xad, 0xd5, 0xb8, 0xf1, 0x32, 0x99, 0x44, 0x49, 0x43, 0xa8, 0xb6, 0xb7, 0x69, 0x40, 0x6c, 0x50, + 0xf6, 0x4d, 0x65, 0x3e, 0x38, 0x12, 0x2e, 0xd9, 0x91, 0x16, 0x8e, 0xe1, 0x80, 0x3e, 0x8, 0x6c, 0x92, 0xb8, 0x0, 0xd2, 0x6c, 0xe3, 0x92, 0x2f, 0xcb, 0xfe, 0xce, 0x79, 0x34, + 0xf6, 0xcf, 0xb5, 0xbd, 0x6a, 0x77, 0x25, 0x70, 0x5d, 0xdb, 0x3e, 0x2f, 0x1e, 0xab, 0x68, 0x94, 0x4a, 0x71, 0x5b, 0x27, 0x60, 0x5a, 0x60, 0x67, 0x4, 0x7c, 0x11, 0x1e, 0xa0, + 0x7b, 0x82, 0xc0, 0x84, 0xd7, 0xd9, 0x3a, 0x99, 0x7, 0x3b, 0xa7, 0x72, 0x1, 0xd6, 0x23, 0x10, 0xae, 0x9c, 0xef, 0x43, 0x97, 0x96, 0x4f, 0x45, 0x45, 0x3d, 0x69, 0x69, 0x7f, + 0x38, 0x49, 0x40, 0x41, 0xea, 0xa1, 0xd7, 0xd1, 0xb5, 0x30, 0xb6, 0xef, 0x32, 0x35, 0x2d, 0x57, 0x16, 0x59, 0xce, 0xf0, 0x9a, 0x80, 0x1e, 0x78, 0x12, 0x3e, 0xe5, 0x7b, 0x91, + 0xf7, 0xc8, 0xfa, 0x44, 0xaa, 0x3d, 0x0, 0xef, 0x23, 0x9e, 0x4c, 0x7e, 0x53, 0xee, 0xff, 0x3, 0xd6, 0xd8, 0x86, 0xab, 0xaf, 0xd2, 0x3e, 0x19, 0x0, 0x0, 0x0, 0x0, 0x49, + 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto invisedivine_data_size = 0x9ff; + +inline uint8_t jaan_data[0x837] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xc8, 0x6d, 0xa8, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x7, 0xf1, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, + 0x4b, 0xb2, 0xeb, 0x28, 0xc, 0x95, 0xbb, 0x7b, 0x9a, 0xaa, 0x64, 0x5, 0xc, 0xb2, 0x1, 0xbf, 0xfd, 0x6f, 0x22, 0x1b, 0xc8, 0xc0, 0x2b, 0x48, 0xaa, 0xb2, 0x0, 0x7a, 0xd0, + 0xc6, 0x8d, 0xb1, 0x30, 0x60, 0x24, 0xa4, 0x38, 0x9c, 0xaa, 0xd4, 0x7b, 0x37, 0x37, 0xd7, 0xe7, 0xa0, 0xf, 0x60, 0x90, 0x9, 0x40, 0x47, 0x7, 0x3, 0x8c, 0x31, 0xd6, 0x18, + 0x63, 0xa5, 0x75, 0x68, 0xc7, 0xc0, 0x4d, 0xe0, 0x9c, 0x30, 0x4d, 0x13, 0x3b, 0x97, 0x26, 0x6e, 0xd, 0xfc, 0xad, 0x34, 0xf8, 0x89, 0xe6, 0xf3, 0x8c, 0xe3, 0x68, 0x5f, 0xaf, + 0xd7, 0x4f, 0xfa, 0x3e, 0x57, 0x3, 0xa9, 0x38, 0x49, 0x47, 0x48, 0x7, 0x81, 0x34, 0xbf, 0x94, 0x86, 0x71, 0x1c, 0x57, 0xa3, 0x5c, 0xc8, 0x63, 0x8c, 0xb1, 0xdd, 0xf6, 0x71, + 0xd, 0xff, 0x50, 0x9, 0x8, 0x1d, 0x1, 0x0, 0x8b, 0xe1, 0x1f, 0x8f, 0xc7, 0xc0, 0x39, 0x1d, 0x91, 0xe4, 0xd6, 0xc0, 0xaf, 0x45, 0x3, 0x0, 0xc0, 0xed, 0x76, 0x5b, 0x71, + 0x73, 0x7, 0xbf, 0x86, 0x76, 0xd7, 0x68, 0x20, 0x4b, 0xc0, 0x10, 0xad, 0x1d, 0xa1, 0x85, 0x5b, 0x3, 0x7f, 0x4b, 0xd, 0x8f, 0xc7, 0x63, 0xd5, 0xdb, 0x63, 0xdc, 0x2d, 0xf1, + 0x6d, 0xb6, 0x67, 0x11, 0xe7, 0xf7, 0x8, 0xad, 0xef, 0x1, 0x24, 0xb9, 0x35, 0xf0, 0x37, 0xd0, 0x10, 0xeb, 0xcd, 0x7, 0x9f, 0xbb, 0xdb, 0x3e, 0x4f, 0xc3, 0x5f, 0x15, 0x5c, + 0x36, 0xf2, 0x5a, 0xf5, 0x8a, 0x4c, 0x90, 0xe4, 0xd6, 0xc0, 0xdf, 0x4c, 0x43, 0x30, 0x7d, 0xb2, 0xc6, 0x18, 0x70, 0xaf, 0x71, 0x1c, 0x97, 0x57, 0xc8, 0x7d, 0xbb, 0xdd, 0xc2, + 0xbf, 0xa5, 0xc2, 0xa9, 0x6c, 0x9f, 0xfd, 0xe1, 0xe0, 0x66, 0xda, 0x1a, 0x63, 0x96, 0xdf, 0xcd, 0x43, 0x2e, 0xcc, 0x2, 0x96, 0xeb, 0x52, 0xf5, 0x86, 0x92, 0xdc, 0x1a, 0xf8, + 0xa5, 0x34, 0xe4, 0x72, 0xc6, 0xb8, 0xbb, 0xed, 0xd3, 0x1a, 0xb2, 0x46, 0xc0, 0x12, 0x47, 0x60, 0xbd, 0x61, 0xd, 0x24, 0xb9, 0x35, 0xf0, 0x4b, 0x69, 0x30, 0xc6, 0x58, 0xef, + 0xda, 0xc9, 0xe4, 0xa3, 0xe4, 0xf6, 0x35, 0x9c, 0xdd, 0xf6, 0xc9, 0x4, 0x94, 0x74, 0x84, 0x74, 0x10, 0x48, 0xf3, 0x6b, 0xd1, 0xe0, 0xe3, 0x76, 0xbb, 0xc1, 0xe3, 0xf1, 0x70, + 0xbd, 0xfd, 0x2, 0xec, 0xbd, 0x9a, 0x69, 0xa8, 0x86, 0x76, 0xb7, 0xd0, 0x70, 0x78, 0x15, 0xd4, 0x39, 0xc2, 0x23, 0x85, 0x99, 0x14, 0xfd, 0x2c, 0x10, 0xae, 0x8a, 0x49, 0x72, + 0x6b, 0xe0, 0xe7, 0xd6, 0x10, 0x4, 0x1e, 0xa, 0x6b, 0x2d, 0xfc, 0xf9, 0xf3, 0x67, 0xf3, 0xde, 0x30, 0xfc, 0x4f, 0xc1, 0xb1, 0xd, 0x70, 0x36, 0xdb, 0xef, 0x8e, 0x80, 0xb9, + 0x8e, 0x48, 0xbd, 0x77, 0xa4, 0x37, 0x92, 0xe4, 0xd6, 0xc0, 0xaf, 0x45, 0x43, 0x2d, 0x8e, 0xde, 0x7b, 0x4a, 0xb7, 0xbb, 0x95, 0x86, 0x9a, 0x55, 0xd0, 0x22, 0x48, 0x96, 0x4, + 0x49, 0x72, 0x6b, 0xe0, 0xe7, 0xd0, 0xe0, 0x8f, 0x74, 0x7b, 0xef, 0x49, 0x43, 0xbb, 0xed, 0xab, 0x13, 0x50, 0xd2, 0x11, 0xd2, 0x41, 0x20, 0xcd, 0x2f, 0xa5, 0xc1, 0xdb, 0x7a, + 0xd8, 0x7d, 0x8f, 0x13, 0x67, 0xb1, 0x7d, 0x55, 0x25, 0xc, 0x66, 0x70, 0xf7, 0x1e, 0x36, 0x1f, 0xa6, 0x84, 0x24, 0xb7, 0x6, 0x7e, 0x4e, 0xd, 0x73, 0x8f, 0xed, 0x4f, 0xc1, + 0x86, 0x69, 0x9a, 0x56, 0x8b, 0x10, 0x18, 0xfc, 0x65, 0x78, 0x4e, 0x9c, 0xc9, 0xf6, 0xbb, 0x23, 0xe0, 0x34, 0x4d, 0xc3, 0xeb, 0xf5, 0xf2, 0xdf, 0x1a, 0xa6, 0x69, 0x4a, 0x5e, + 0x94, 0xc2, 0x11, 0x92, 0xdc, 0x1a, 0xf8, 0xb5, 0x68, 0xf0, 0x2a, 0x3b, 0x76, 0xb9, 0x7d, 0xce, 0xda, 0x85, 0x17, 0xd, 0xed, 0x6e, 0xa5, 0x21, 0x7b, 0xa, 0x2a, 0xe1, 0x8, + 0xd, 0xdc, 0x1a, 0xf8, 0x25, 0x34, 0xf8, 0x1, 0xe8, 0x73, 0xbb, 0xed, 0x86, 0xf0, 0xe5, 0x38, 0x91, 0xc2, 0xe4, 0x2a, 0x9c, 0xdd, 0xf6, 0xc5, 0xcb, 0xd2, 0xde, 0xaa, 0x4e, + 0xb2, 0x26, 0x90, 0xaa, 0x12, 0x42, 0x8a, 0x5b, 0x3, 0xbf, 0xb4, 0x86, 0x8, 0x37, 0x8a, 0x33, 0xb5, 0xbb, 0x95, 0x86, 0xac, 0x11, 0x30, 0xd6, 0x1b, 0x46, 0x5e, 0xa4, 0x46, + 0x90, 0xe4, 0xd6, 0xc0, 0x2f, 0xad, 0x1, 0x99, 0x8a, 0xa1, 0x30, 0xc6, 0xac, 0x38, 0xad, 0xb5, 0x7f, 0x53, 0x72, 0xff, 0xa2, 0xed, 0x37, 0x30, 0xc6, 0xd8, 0xd4, 0x14, 0x23, + 0x3c, 0x8a, 0x80, 0xc2, 0x11, 0xd2, 0xdc, 0x1a, 0xf8, 0xb5, 0x68, 0x70, 0x97, 0xf5, 0x78, 0x38, 0xa, 0xae, 0x57, 0xd0, 0xd0, 0x6e, 0xd, 0x1a, 0x30, 0x34, 0x75, 0x84, 0x22, + 0x6e, 0xd, 0xfc, 0x4d, 0x34, 0x5c, 0xaf, 0x57, 0xb4, 0xf2, 0x3f, 0xe0, 0x45, 0x9f, 0xc, 0x60, 0xc4, 0x69, 0x6c, 0x9f, 0xbd, 0xd, 0x71, 0xbd, 0x5e, 0xed, 0xfb, 0xfd, 0x4e, + 0x8a, 0x42, 0xde, 0xab, 0x1e, 0x8a, 0x25, 0xb9, 0x35, 0xf0, 0xb, 0x69, 0xb0, 0x0, 0x0, 0xef, 0xf7, 0x1b, 0xf6, 0xb6, 0x1f, 0x8c, 0x31, 0x9b, 0xba, 0xc8, 0x79, 0x31, 0xc2, + 0x9f, 0xae, 0x1d, 0xc6, 0xd9, 0x6d, 0x9f, 0x23, 0x72, 0xb9, 0x70, 0x6a, 0x1f, 0x28, 0xe2, 0x88, 0x12, 0x2e, 0x4d, 0xdc, 0x1a, 0xf8, 0xa5, 0x34, 0xd8, 0x1c, 0x3e, 0x8c, 0x13, + 0xe1, 0xef, 0xb6, 0xdf, 0xd1, 0x90, 0x12, 0x27, 0xe9, 0x8, 0xe9, 0x20, 0x90, 0xe6, 0x97, 0xd4, 0x90, 0xdc, 0x74, 0x67, 0xe2, 0x5d, 0xf8, 0x1, 0x7e, 0xc3, 0xf6, 0x39, 0x8f, + 0x23, 0x25, 0x5, 0x70, 0x41, 0x92, 0x5b, 0x3, 0xbf, 0x16, 0xd, 0x31, 0xa4, 0x8a, 0x95, 0x6b, 0xa0, 0xa1, 0xdd, 0x2d, 0x34, 0x90, 0x14, 0x63, 0x73, 0x3a, 0x42, 0x33, 0xb7, + 0x6, 0x7e, 0x6e, 0xd, 0x39, 0xd5, 0x1f, 0x21, 0x5a, 0x95, 0x83, 0x9d, 0xc1, 0xf6, 0xd9, 0x9, 0x28, 0xe9, 0x8, 0xe9, 0x20, 0x90, 0xe6, 0xd7, 0xa2, 0x41, 0x2, 0x1a, 0xda, + 0xcd, 0xa9, 0xa1, 0xd9, 0xe3, 0x48, 0x1d, 0x1d, 0x1d, 0x5b, 0xf4, 0x4, 0xec, 0xe8, 0x10, 0x44, 0x4f, 0xc0, 0x8e, 0x24, 0x8e, 0x4c, 0xc1, 0x3a, 0xf2, 0x50, 0x94, 0x80, 0x92, + 0x8e, 0x90, 0xe, 0x2, 0x69, 0xfe, 0xd6, 0x1a, 0xa6, 0x69, 0xaa, 0xe2, 0x93, 0xbe, 0x7, 0xa7, 0x6, 0x97, 0x86, 0x64, 0x25, 0x4c, 0x2d, 0x71, 0xe5, 0x83, 0xa1, 0x62, 0xdc, + 0x1a, 0xf8, 0x5, 0x35, 0x84, 0xfb, 0x56, 0x16, 0xd3, 0x91, 0xd0, 0x56, 0x55, 0x89, 0xf2, 0x2b, 0xb6, 0x3f, 0xb4, 0x39, 0x5e, 0x8, 0xaa, 0x92, 0x20, 0x49, 0x6e, 0xd, 0xfc, + 0x5a, 0x34, 0x48, 0x40, 0x43, 0xbb, 0x59, 0x34, 0x9c, 0xc1, 0x39, 0x1d, 0xf4, 0xa0, 0x2c, 0x70, 0xee, 0x31, 0xb6, 0x83, 0xd2, 0x33, 0x61, 0x6a, 0x1c, 0xd3, 0x62, 0xb4, 0xa5, + 0xe2, 0xd6, 0xc0, 0x2f, 0xaa, 0xc1, 0x55, 0x81, 0xb8, 0x69, 0x18, 0x56, 0x15, 0xb2, 0x73, 0x3c, 0x3d, 0x8c, 0xe3, 0x58, 0x33, 0xd, 0xfc, 0x19, 0xdb, 0xa7, 0x12, 0x70, 0x23, + 0x22, 0x74, 0x44, 0xac, 0x12, 0x80, 0xc2, 0x11, 0xc2, 0x41, 0x20, 0xce, 0xaf, 0x45, 0x3, 0x6, 0xee, 0x2a, 0x14, 0xd, 0xed, 0x6e, 0xa1, 0x21, 0xab, 0x16, 0x34, 0x56, 0x13, + 0x27, 0x5d, 0xa, 0xf4, 0xeb, 0xfc, 0x5a, 0x34, 0x48, 0x40, 0x43, 0xbb, 0x29, 0x34, 0xf4, 0x7d, 0xc0, 0x8e, 0xe, 0x41, 0xf4, 0x4, 0xec, 0xc8, 0x42, 0xc1, 0x91, 0x7c, 0x1d, + 0x5, 0x28, 0x4e, 0x40, 0x49, 0x47, 0x48, 0x7, 0x81, 0x34, 0xbf, 0xa0, 0x86, 0x1, 0x32, 0xcf, 0xc5, 0x4, 0xa6, 0x55, 0xcf, 0xb3, 0xda, 0xbe, 0x74, 0x15, 0x74, 0x98, 0x85, + 0x44, 0x1f, 0xd8, 0xc, 0x1e, 0x40, 0x24, 0x5f, 0x49, 0xca, 0x39, 0xa1, 0x79, 0xfe, 0x2c, 0xf5, 0x59, 0x21, 0xd2, 0xfc, 0x1a, 0x34, 0xc, 0xd3, 0x34, 0xd9, 0x59, 0x43, 0x8c, + 0x93, 0x3, 0xd2, 0xed, 0x66, 0xd3, 0x70, 0xf4, 0x68, 0xfa, 0x61, 0x9a, 0x26, 0xb4, 0x3a, 0xa2, 0x1, 0x52, 0x41, 0x70, 0x76, 0xfe, 0x1c, 0xd, 0x9c, 0x7b, 0x6f, 0x92, 0xfb, + 0x7a, 0x92, 0xed, 0x66, 0xd1, 0x70, 0x74, 0x1f, 0x70, 0x39, 0x7, 0x31, 0xe3, 0xb3, 0x1c, 0x90, 0xde, 0xdc, 0x95, 0xe6, 0x7, 0x60, 0xd6, 0xa0, 0xa1, 0x14, 0x2c, 0x82, 0xd3, + 0xdb, 0xde, 0x7, 0x7a, 0x1c, 0x1d, 0xa4, 0x93, 0x8b, 0xe2, 0x98, 0x3a, 0xec, 0xef, 0x5b, 0x71, 0xa7, 0xf8, 0x4b, 0x35, 0x1c, 0xc5, 0xd1, 0xeb, 0x50, 0xd9, 0x20, 0x76, 0xcd, + 0x1c, 0x4e, 0x2a, 0xae, 0xda, 0xd8, 0x51, 0xad, 0x21, 0xb5, 0x8, 0xb3, 0x39, 0xf9, 0x17, 0x60, 0xd9, 0x90, 0xc4, 0x9c, 0x6c, 0x1, 0xc0, 0x7a, 0xdf, 0x1c, 0xb3, 0xf9, 0xdb, + 0x2, 0xa0, 0xdc, 0xf7, 0xfb, 0xdd, 0xe7, 0xe, 0x61, 0x83, 0x7d, 0xcb, 0xa3, 0xdc, 0x29, 0x7e, 0xa7, 0x1, 0x83, 0x25, 0xe2, 0x8f, 0x6a, 0x80, 0x7d, 0xe7, 0x52, 0xd9, 0x7f, + 0x3, 0xcf, 0xb6, 0x21, 0xaf, 0x75, 0x5f, 0x4f, 0x46, 0xf4, 0x15, 0x65, 0x58, 0xbb, 0x73, 0x12, 0xc2, 0xff, 0x9d, 0x84, 0xed, 0xfd, 0xdf, 0x67, 0xd9, 0xfe, 0xf0, 0x36, 0x84, + 0x73, 0x86, 0x33, 0x38, 0xb1, 0x3, 0x76, 0x11, 0x24, 0x1, 0x65, 0x2f, 0x5f, 0xcb, 0x9f, 0x7d, 0x9a, 0x58, 0x2d, 0x22, 0xc9, 0x60, 0x3d, 0x6d, 0xac, 0xdc, 0x20, 0x60, 0xf7, + 0xa0, 0x73, 0x5d, 0xb5, 0x1b, 0xe6, 0x4e, 0xa0, 0x45, 0xfb, 0x9d, 0x16, 0x4c, 0x43, 0x29, 0x7f, 0xd5, 0xf7, 0x3, 0x4a, 0xc2, 0x35, 0xf4, 0x72, 0xb9, 0x0, 0x40, 0xfb, 0x3d, + 0x28, 0x8c, 0x5f, 0xe2, 0x24, 0x2f, 0x63, 0xc, 0xb8, 0x45, 0x1, 0x4, 0xae, 0x27, 0xae, 0xc5, 0xe6, 0xfa, 0x33, 0x2f, 0x0, 0x40, 0x2c, 0xe8, 0xa9, 0xb8, 0x37, 0xf0, 0x4a, + 0xc4, 0x16, 0x5d, 0xd, 0xbf, 0x1c, 0x74, 0x0, 0xf8, 0xef, 0xf1, 0xac, 0xd0, 0xf6, 0xe3, 0x38, 0xc2, 0xe7, 0xf3, 0x29, 0xba, 0xd8, 0x37, 0x6d, 0xc4, 0x27, 0x7b, 0x5a, 0x24, + 0x1, 0x9a, 0xf5, 0xce, 0x92, 0xc0, 0xca, 0x5, 0xa9, 0x3, 0x12, 0xeb, 0x5c, 0x62, 0x1d, 0x4e, 0xcb, 0x6f, 0xca, 0x6d, 0xfd, 0xcd, 0xbc, 0x33, 0xdc, 0x96, 0x44, 0xb5, 0x86, + 0x6f, 0x4a, 0xc0, 0xa2, 0xe9, 0x85, 0x86, 0x73, 0x25, 0x3b, 0x4e, 0xd, 0x92, 0xd1, 0xfd, 0xab, 0x12, 0x30, 0x84, 0x9b, 0xfe, 0x75, 0xc8, 0xe2, 0xf9, 0x7c, 0xc6, 0xa6, 0x5e, + 0x3f, 0x31, 0x3, 0xa9, 0xc1, 0x57, 0x27, 0xa0, 0x43, 0xe2, 0xfe, 0x8f, 0x2d, 0x8, 0xa4, 0xef, 0xff, 0xa4, 0xb1, 0xb7, 0x57, 0x28, 0x30, 0x2d, 0xfc, 0x4a, 0x7c, 0x7d, 0x2, + 0xee, 0x25, 0xdf, 0x2f, 0x25, 0x85, 0x64, 0x55, 0x8e, 0x14, 0xf1, 0x19, 0x50, 0xbc, 0xa, 0x1a, 0x3a, 0xda, 0xfd, 0x2c, 0x5c, 0x9, 0xcf, 0x55, 0xff, 0xe7, 0x43, 0xed, 0x74, + 0x2a, 0xb1, 0x1a, 0x59, 0xb, 0xd, 0xed, 0xd6, 0xa0, 0x21, 0x4, 0x89, 0xa6, 0xd2, 0x11, 0x30, 0xdc, 0x9c, 0x4c, 0xbd, 0xa8, 0xb0, 0x69, 0xac, 0xc4, 0xfd, 0x1f, 0x16, 0xe0, + 0x2, 0x1d, 0xcf, 0xca, 0x16, 0x61, 0xf2, 0x71, 0x6c, 0xcb, 0x54, 0xce, 0x24, 0x48, 0x2, 0x55, 0xd9, 0x6c, 0xc6, 0x2, 0xd0, 0x68, 0x2a, 0x4d, 0xc0, 0x68, 0xf5, 0x4b, 0xe4, + 0x45, 0x86, 0xca, 0xde, 0x9d, 0xa2, 0x34, 0x6a, 0x85, 0xa0, 0x3, 0xc8, 0x7d, 0x54, 0x87, 0xc, 0xfe, 0xb9, 0x9d, 0xf7, 0xfb, 0x1d, 0x2e, 0x97, 0xb, 0x96, 0x7c, 0xb5, 0x9d, + 0x60, 0xd4, 0x6e, 0x61, 0x7b, 0xb1, 0x85, 0x18, 0xa2, 0xfb, 0x40, 0x6d, 0xa3, 0x1f, 0x59, 0xf2, 0x1, 0x1c, 0x98, 0x82, 0x62, 0x67, 0xc2, 0x3c, 0x1e, 0x8f, 0x8d, 0xb1, 0x9, + 0x7b, 0xe0, 0xa8, 0x3, 0x72, 0x38, 0xfc, 0xd, 0xe3, 0x1a, 0xbe, 0x56, 0x15, 0x16, 0xb9, 0x70, 0xe7, 0x8d, 0x84, 0xba, 0x8, 0x93, 0xf, 0x0, 0x92, 0x81, 0x36, 0x78, 0xff, + 0x52, 0xd5, 0x9b, 0x96, 0x6a, 0x68, 0x81, 0x95, 0x2e, 0x4a, 0x3d, 0x55, 0x8b, 0x30, 0xad, 0xce, 0xe5, 0x8, 0x83, 0x2c, 0x1c, 0x7d, 0xdc, 0x7f, 0xa8, 0x46, 0xa1, 0xd4, 0xc6, + 0x6a, 0xc1, 0x34, 0x8f, 0xbd, 0xf7, 0x66, 0x1a, 0xf9, 0x76, 0xc1, 0x39, 0xda, 0xe7, 0x6e, 0x6a, 0x67, 0x68, 0x20, 0xb5, 0xbd, 0xd3, 0x44, 0xdd, 0x19, 0x7c, 0x6d, 0x29, 0x1a, + 0x12, 0xfc, 0x2c, 0xb, 0x31, 0x19, 0x23, 0x1f, 0x1a, 0xec, 0x7, 0x46, 0xde, 0x62, 0x44, 0x4e, 0xdd, 0x62, 0x29, 0x3d, 0x43, 0x80, 0xf2, 0x7c, 0x3e, 0x1f, 0xb2, 0xfb, 0xf3, + 0x23, 0xc1, 0x7e, 0xb9, 0x5c, 0xe0, 0x7e, 0xbf, 0xc3, 0xf3, 0xf9, 0x24, 0xd1, 0xb0, 0x87, 0xd0, 0xbf, 0xa5, 0x65, 0x68, 0x0, 0xba, 0xb7, 0x21, 0xd0, 0xfb, 0xc8, 0xd8, 0xe8, + 0xd7, 0xa, 0x52, 0xb5, 0xa7, 0x7b, 0x8, 0x9e, 0xbe, 0x20, 0x41, 0x6c, 0x14, 0xda, 0xeb, 0x54, 0x76, 0x82, 0x9e, 0xb4, 0x63, 0x94, 0xda, 0x72, 0x19, 0xc7, 0x71, 0xb9, 0xf7, + 0xa6, 0xd2, 0xa0, 0x7a, 0x4, 0x8c, 0x9d, 0xab, 0xb8, 0x17, 0xfc, 0xae, 0x48, 0x16, 0x41, 0x75, 0x71, 0xf0, 0xe5, 0x72, 0x9, 0xb9, 0x4f, 0xbf, 0x7, 0x56, 0xf0, 0xd4, 0xf7, + 0x6a, 0x6, 0x82, 0x9c, 0x8d, 0x59, 0x6d, 0xff, 0x40, 0x4b, 0x8b, 0xad, 0xa7, 0x18, 0xc2, 0xc7, 0x93, 0x16, 0x94, 0x8e, 0xbc, 0xaa, 0x13, 0xd0, 0x21, 0xd2, 0xa8, 0x64, 0x10, + 0xf8, 0xc5, 0xb2, 0xa5, 0x41, 0xe0, 0x2, 0xa8, 0x80, 0xbb, 0x5, 0x36, 0x1, 0xe, 0xc0, 0x37, 0x22, 0xb8, 0x51, 0x30, 0x38, 0xe7, 0x67, 0x17, 0xbe, 0xbd, 0xfc, 0x47, 0xd5, + 0x4a, 0x66, 0xc, 0xee, 0xb3, 0x82, 0xc7, 0x4e, 0xe4, 0xc2, 0x46, 0x66, 0xa, 0xd9, 0x1a, 0xd5, 0x27, 0xe0, 0x91, 0x20, 0xf0, 0x1d, 0x77, 0x24, 0x8, 0x5a, 0x2d, 0x66, 0x1c, + 0x1, 0x36, 0xba, 0xcf, 0xed, 0xe5, 0xd6, 0x9a, 0xdd, 0x79, 0xd5, 0x6c, 0x3f, 0x68, 0xb5, 0x3d, 0xd7, 0x2d, 0x47, 0x69, 0x23, 0x8f, 0xc, 0xf9, 0x47, 0xd, 0xb9, 0xea, 0x5d, + 0xa, 0x1c, 0x63, 0x1, 0xf0, 0x20, 0x28, 0x49, 0xe2, 0x3, 0x88, 0xd9, 0x86, 0xb5, 0x20, 0x81, 0x93, 0x7, 0xb1, 0x7f, 0xd2, 0xf6, 0x89, 0xed, 0x28, 0x6a, 0xdb, 0xa7, 0xe2, + 0xb1, 0x45, 0xa7, 0x54, 0xc5, 0x5d, 0x9c, 0x80, 0xb1, 0xc0, 0xde, 0x9, 0xf8, 0x23, 0x3c, 0x0, 0xdf, 0x13, 0x4, 0x39, 0xbc, 0x54, 0x9c, 0x51, 0xfb, 0x13, 0xf3, 0x0, 0x4, + 0xf6, 0x2f, 0xb5, 0xbd, 0x94, 0xcd, 0x1d, 0x1a, 0x8d, 0xa4, 0xd5, 0xfe, 0x20, 0x49, 0x40, 0x47, 0xca, 0x30, 0xea, 0x60, 0x3d, 0x4c, 0xd6, 0x8, 0x78, 0xe0, 0xef, 0x6a, 0xb1, + 0xe7, 0xc, 0xd6, 0x4, 0x64, 0xe0, 0x59, 0xf8, 0x82, 0x9f, 0x4b, 0x6d, 0x2f, 0x62, 0x73, 0x7, 0xe6, 0x19, 0xcf, 0x2e, 0x7f, 0x2e, 0xf7, 0xbf, 0xdf, 0x1f, 0x1e, 0xaf, 0x81, + 0x60, 0x53, 0x3d, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto jaan_data_size = 0x837; + +inline uint8_t kolyah35_data[0x76c] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x41, 0x8, 0x3, 0x0, 0x0, 0x0, + 0xff, 0xb3, 0x58, 0x98, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, + 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x63, 0x50, 0x4c, 0x54, 0x45, 0x8a, 0x4c, 0x0, 0x7d, 0xa4, 0xd7, 0x7a, 0x47, 0xf, 0x80, 0x45, 0x2, 0xe5, 0xcd, 0xbb, 0x78, 0x43, + 0x8, 0xff, 0xff, 0xff, 0x10, 0x10, 0x10, 0x50, 0x6e, 0x95, 0x41, 0x41, 0x41, 0x5c, 0x36, 0xb, 0x5b, 0x89, 0xc5, 0x21, 0x21, 0x21, 0x58, 0x84, 0xbd, 0x52, 0x2e, 0x7, 0x0, + 0x0, 0x0, 0x5b, 0x87, 0xc0, 0x4c, 0x6a, 0x91, 0x54, 0x4f, 0x51, 0x72, 0x6a, 0x6f, 0x77, 0x6c, 0x72, 0xd8, 0xc1, 0xb0, 0x9, 0x24, 0x76, 0xb, 0x2a, 0x83, 0x81, 0x65, 0x5b, + 0x8, 0x19, 0x4f, 0xc, 0x1a, 0x4d, 0x4, 0x19, 0x57, 0x4, 0x1e, 0x67, 0xf, 0x23, 0x64, 0x3, 0x16, 0x4d, 0x2, 0x12, 0x44, 0x0, 0x0, 0x0, 0x24, 0xc2, 0x52, 0x69, 0x0, + 0x0, 0x0, 0x21, 0x74, 0x52, 0x4e, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x9f, 0xc1, 0xd0, 0x21, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xe, 0xc1, 0x0, 0x0, + 0xe, 0xc1, 0x1, 0xb8, 0x91, 0x6b, 0xed, 0x0, 0x0, 0x0, 0x18, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x50, 0x61, 0x69, 0x6e, 0x74, + 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x8b, 0xd6, 0xf7, 0x39, 0x0, 0x0, 0x0, 0xb6, 0x65, 0x58, 0x49, 0x66, 0x49, 0x49, 0x2a, 0x0, 0x8, 0x0, 0x0, + 0x0, 0x5, 0x0, 0x1a, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x1b, 0x1, 0x5, 0x0, 0x1, 0x0, 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x28, 0x1, + 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x31, 0x1, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x69, 0x87, 0x4, 0x0, 0x1, 0x0, 0x0, + 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9, 0x76, 0x1, 0x0, 0xe8, 0x3, 0x0, 0x0, 0xd9, 0x76, 0x1, 0x0, 0xe8, 0x3, 0x0, 0x0, 0x50, 0x61, 0x69, 0x6e, + 0x74, 0x2e, 0x4e, 0x45, 0x54, 0x20, 0x35, 0x2e, 0x31, 0x2e, 0x37, 0x0, 0x3, 0x0, 0x0, 0x90, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x32, 0x33, 0x30, 0x1, 0xa0, 0x3, + 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x5, 0xa0, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, + 0x2, 0x0, 0x4, 0x0, 0x0, 0x0, 0x52, 0x39, 0x38, 0x0, 0x2, 0x0, 0x7, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x31, 0x30, 0x30, 0x0, 0x0, 0x0, 0x0, 0x6b, 0xba, 0xd6, + 0x1b, 0x92, 0xfb, 0x18, 0x53, 0x0, 0x0, 0x5, 0x7f, 0x49, 0x44, 0x41, 0x54, 0x68, 0x43, 0xed, 0x57, 0x5d, 0x63, 0xdb, 0x36, 0x10, 0x93, 0x1d, 0x3b, 0x6e, 0xbd, 0xcd, 0x9c, + 0xb7, 0x36, 0xfe, 0x5a, 0x1c, 0xff, 0xff, 0x5f, 0xb9, 0xbb, 0xe3, 0x91, 0x22, 0x29, 0xf2, 0x20, 0x4b, 0x5a, 0x97, 0x87, 0xe0, 0x21, 0x15, 0x9, 0x8, 0x7, 0x88, 0xb2, 0xd3, + 0x74, 0x8f, 0x4f, 0x83, 0x6e, 0xa5, 0x58, 0x34, 0x53, 0x66, 0x6, 0x46, 0xa0, 0x4, 0x30, 0xa1, 0x29, 0x20, 0xb2, 0x13, 0x4c, 0x1d, 0x5f, 0x17, 0x64, 0xd7, 0xf6, 0x8, 0x40, + 0x8f, 0x4a, 0xd8, 0x16, 0xd0, 0xee, 0xba, 0x7b, 0xd9, 0x6c, 0x36, 0x2f, 0x8d, 0xfb, 0x27, 0xda, 0xa7, 0x97, 0xf6, 0x8, 0x94, 0x0, 0x27, 0xb4, 0x4, 0x5d, 0xb7, 0x5d, 0x9, + 0x29, 0xf4, 0x82, 0xf6, 0xc9, 0x95, 0x3d, 0x2, 0x25, 0x18, 0x91, 0xd0, 0x12, 0x6c, 0x39, 0x55, 0x17, 0xd8, 0xe7, 0xc7, 0x37, 0x5, 0xfd, 0x15, 0x18, 0x81, 0x12, 0x20, 0xde, + 0x16, 0xf0, 0x8b, 0xa5, 0xf1, 0x36, 0x1b, 0xbe, 0xd6, 0xfd, 0x88, 0xc9, 0xf6, 0xfd, 0x85, 0x3d, 0x2, 0x25, 0x80, 0x9, 0x6d, 0x41, 0xd7, 0xad, 0xff, 0x23, 0xfb, 0xfe, 0xc2, + 0x1e, 0x81, 0x13, 0xd8, 0x3c, 0x10, 0x74, 0x74, 0x0, 0x2f, 0xaf, 0xbb, 0x6f, 0xc4, 0xbd, 0x7e, 0xff, 0xb6, 0xa4, 0x7d, 0x7f, 0x61, 0x8f, 0x80, 0x9, 0x0, 0x6f, 0xb, 0xd6, + 0xdd, 0x76, 0xbb, 0xda, 0xbf, 0xee, 0x7e, 0x63, 0xf6, 0xf7, 0x3f, 0xf6, 0xb, 0xda, 0x87, 0xb, 0x30, 0x2, 0x25, 0x80, 0x9, 0x6d, 0xc1, 0x96, 0xbe, 0x21, 0x56, 0xab, 0xd7, + 0xdd, 0x8e, 0xd9, 0xdd, 0x8e, 0xae, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0x4, 0x4a, 0x80, 0x78, 0x20, 0xf0, 0x2c, 0x51, 0x1e, 0x83, 0xdb, 0x67, 0xd8, 0xe7, 0x5, 0xc5, + 0x9e, 0x51, 0x5a, 0x8c, 0x4b, 0xa0, 0x6c, 0x85, 0x7, 0x82, 0xed, 0x96, 0xde, 0x30, 0xa5, 0x18, 0xe5, 0x9, 0xcd, 0xb0, 0x8f, 0x5, 0xed, 0x11, 0x30, 0x1, 0xe0, 0x81, 0x80, + 0x59, 0xff, 0x15, 0xef, 0xd1, 0xad, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0xc4, 0x98, 0x4, 0x16, 0xf, 0x4, 0x3, 0xb6, 0x28, 0x30, 0xc3, 0xbe, 0x59, 0x30, 0x1f, 0xf1, + 0x74, 0x82, 0x82, 0x7, 0x2, 0xe2, 0xba, 0x83, 0xec, 0x3b, 0xe7, 0x6, 0xec, 0x2c, 0xfb, 0x70, 0x1, 0x46, 0xc0, 0x4, 0x80, 0x7, 0x2, 0xfa, 0x8, 0x1d, 0xe, 0xbc, 0xed, + 0xe1, 0xba, 0x3f, 0x95, 0x50, 0xcc, 0xb0, 0xf, 0x17, 0x60, 0x4, 0x4e, 0x60, 0xf3, 0x40, 0xb0, 0xee, 0x8e, 0x87, 0x9e, 0x76, 0x87, 0x5, 0xed, 0x43, 0x41, 0x30, 0x2, 0x25, + 0x40, 0x3c, 0x10, 0x6c, 0x8f, 0xc4, 0xd2, 0xb3, 0xf7, 0x38, 0x1c, 0x9e, 0xbb, 0x9b, 0xd0, 0x16, 0xc4, 0x13, 0xb4, 0x47, 0xa0, 0x4, 0x88, 0x7, 0x2, 0x66, 0xff, 0x22, 0x70, + 0x42, 0x77, 0x3c, 0x1e, 0x17, 0xb4, 0x4f, 0xb, 0x1a, 0x23, 0xc6, 0x24, 0xb0, 0x78, 0x24, 0x38, 0x3a, 0x21, 0xf9, 0xa7, 0x23, 0x5a, 0x77, 0x23, 0x66, 0xd8, 0xc7, 0xf, 0x23, + 0x18, 0x1, 0x68, 0xc8, 0x3, 0x1, 0x6d, 0xcb, 0xb3, 0x17, 0x96, 0xa0, 0xdb, 0x11, 0xd3, 0xed, 0x63, 0x41, 0xa2, 0xc4, 0x5a, 0x14, 0x4, 0xdd, 0xe, 0x0, 0x34, 0xe4, 0x81, + 0xc0, 0x13, 0x82, 0xbf, 0x9, 0x43, 0x7e, 0xb2, 0x7d, 0x5f, 0xd0, 0x1e, 0x1, 0x68, 0xc8, 0xdb, 0x82, 0x9e, 0x13, 0x92, 0x79, 0x65, 0x14, 0xd3, 0xed, 0x43, 0x41, 0x30, 0x2, + 0x25, 0x18, 0x91, 0x50, 0xe9, 0xaa, 0xa0, 0x27, 0x17, 0xb7, 0x8f, 0x5, 0x95, 0x26, 0x14, 0xa, 0x1, 0x4c, 0xa0, 0x24, 0xa1, 0xca, 0x3, 0xc1, 0x20, 0xde, 0x72, 0xf6, 0xc3, + 0x82, 0x3f, 0xa, 0x85, 0x60, 0x7c, 0x2, 0xa5, 0xdb, 0x9, 0x94, 0xcf, 0x4, 0xc4, 0xaa, 0x40, 0xb9, 0xe5, 0xec, 0x93, 0x82, 0xd6, 0x8, 0x40, 0x43, 0x1e, 0x8, 0xd0, 0xed, + 0x88, 0x37, 0x4, 0x5f, 0x5, 0x3d, 0x0, 0x3d, 0x27, 0x1, 0x3, 0xdd, 0x8e, 0x78, 0x43, 0xf0, 0x79, 0xa, 0x7a, 0xba, 0xc6, 0xce, 0xb2, 0x4f, 0xb, 0x7a, 0x49, 0xa9, 0x10, + 0x0, 0x1a, 0xf2, 0x40, 0x80, 0x6e, 0x47, 0xbc, 0x21, 0xf8, 0x2a, 0xe8, 0x1, 0xe8, 0x39, 0x9, 0x18, 0xe8, 0x76, 0xc4, 0x1b, 0x82, 0xcf, 0x53, 0x90, 0x7f, 0x28, 0xeb, 0x16, + 0xb4, 0x4f, 0xb, 0x1a, 0x23, 0x0, 0xd, 0x79, 0x20, 0x88, 0xac, 0x90, 0x8b, 0xda, 0xf, 0xa, 0x8a, 0x60, 0x60, 0x1, 0x68, 0xc8, 0x3, 0x1, 0xba, 0x1d, 0xf1, 0x86, 0xe0, + 0xab, 0xa0, 0x7, 0xa0, 0x21, 0xf, 0x4, 0xe8, 0x76, 0xc4, 0x1b, 0x82, 0xaf, 0x82, 0x1e, 0x80, 0x86, 0x3c, 0x10, 0xd0, 0xdf, 0xa7, 0x39, 0x5b, 0xfc, 0x41, 0x3b, 0xc3, 0x3e, + 0x16, 0xb4, 0x47, 0x0, 0x1a, 0xf2, 0x40, 0xe0, 0x36, 0x1b, 0xcf, 0xf2, 0x3e, 0x83, 0x96, 0x29, 0x78, 0x6b, 0xa2, 0x7d, 0x2c, 0x28, 0x23, 0x12, 0xe4, 0x23, 0x60, 0x2, 0xc0, + 0x3, 0x81, 0xdb, 0xfc, 0xc, 0xd3, 0xdf, 0x4e, 0xa7, 0xd3, 0xd9, 0xd1, 0x32, 0xc5, 0x78, 0x7b, 0xe9, 0x96, 0xa, 0xfa, 0x82, 0x3f, 0x69, 0xfb, 0x72, 0xbe, 0x5c, 0x2e, 0x3c, + 0xc0, 0x15, 0x23, 0x92, 0x4, 0xa7, 0x93, 0xbb, 0x56, 0x12, 0xf4, 0xbc, 0xbb, 0xd, 0xf9, 0x54, 0xf0, 0x46, 0xfe, 0x8f, 0x5c, 0xc0, 0xdb, 0xf, 0x77, 0xbd, 0x9e, 0xaf, 0x5a, + 0xb0, 0x38, 0xa1, 0x6c, 0xfc, 0x89, 0x54, 0x86, 0x7d, 0x11, 0x3f, 0x7d, 0x45, 0xdd, 0x85, 0xb, 0xb2, 0xc3, 0x3f, 0xbc, 0x52, 0x46, 0x20, 0x6b, 0xbe, 0xf7, 0xfd, 0xdd, 0x17, + 0x2c, 0x13, 0x8, 0xff, 0xfe, 0xce, 0xbc, 0x14, 0x2c, 0x78, 0x2f, 0x78, 0xb8, 0xfb, 0x5d, 0xce, 0x88, 0x57, 0x85, 0x80, 0xc8, 0x58, 0xf0, 0x54, 0x72, 0x22, 0x27, 0xfe, 0x7a, + 0xd5, 0x82, 0x55, 0x7b, 0x77, 0x3b, 0xdf, 0x6e, 0x1c, 0xf2, 0x26, 0x4b, 0x8f, 0x50, 0x90, 0xe1, 0xce, 0xdc, 0x4f, 0x2c, 0x6, 0xd3, 0x19, 0x7d, 0xc1, 0x6b, 0x9d, 0x8f, 0x5, + 0xeb, 0x3c, 0x29, 0xee, 0xf7, 0xb3, 0x7b, 0xe3, 0x86, 0xba, 0x91, 0x82, 0xc6, 0xd3, 0x8d, 0xd5, 0x82, 0x82, 0x58, 0xb0, 0x11, 0x2f, 0x16, 0xbc, 0xa5, 0x7c, 0x56, 0x90, 0xde, + 0x4f, 0x5f, 0xb0, 0x31, 0xe1, 0x2c, 0xfd, 0xda, 0x5, 0x99, 0xe7, 0x82, 0x34, 0x46, 0xb7, 0xa, 0x90, 0x82, 0x9e, 0x6e, 0xab, 0xa0, 0x14, 0xe0, 0xfa, 0xa8, 0x60, 0xd3, 0xde, + 0x91, 0x7d, 0xc1, 0x3f, 0x55, 0x90, 0xe2, 0xf3, 0x1, 0x1a, 0x27, 0x28, 0xbc, 0x51, 0xf0, 0x7e, 0x27, 0x8e, 0x1a, 0xe, 0x5f, 0x50, 0x4a, 0x27, 0x5, 0xe4, 0x8, 0x2b, 0x34, + 0x9, 0x60, 0x41, 0xf2, 0x98, 0x53, 0xd0, 0x85, 0x2, 0x92, 0x43, 0x37, 0x53, 0x8c, 0x2c, 0x78, 0xab, 0x1f, 0xa1, 0xe4, 0x27, 0xe7, 0xe6, 0x3b, 0x3a, 0xa2, 0x20, 0x7f, 0x16, + 0xb, 0xfe, 0x99, 0x82, 0x9c, 0x5f, 0xb, 0x56, 0x8f, 0xf0, 0x13, 0x14, 0xa4, 0x86, 0x5, 0xff, 0x6c, 0x41, 0xe6, 0x64, 0x90, 0x6e, 0xa6, 0x58, 0xa6, 0xa0, 0x34, 0xac, 0xbd, + 0x21, 0xbf, 0xaa, 0x60, 0xf8, 0xac, 0xe8, 0x6e, 0x2, 0x16, 0xf8, 0x7e, 0xd3, 0xb, 0xd2, 0x3b, 0xd6, 0x3a, 0xc2, 0x5f, 0x54, 0x90, 0x12, 0xf8, 0x24, 0xba, 0x9b, 0x60, 0x64, + 0xc1, 0xc6, 0xd7, 0x68, 0xb0, 0xfd, 0xdf, 0xb, 0xc6, 0x24, 0x25, 0xe4, 0x4b, 0x8, 0x15, 0xfc, 0xe0, 0x7e, 0xb5, 0x82, 0xf1, 0xb9, 0xb5, 0xa, 0xea, 0x9b, 0xc3, 0x64, 0xbb, + 0xe0, 0x9c, 0x2f, 0x99, 0x90, 0xbf, 0x5d, 0xd0, 0x3f, 0x0, 0xa3, 0xa0, 0xa3, 0x13, 0xd4, 0x7e, 0x3, 0x81, 0x77, 0xed, 0xb, 0x36, 0x4, 0x76, 0xc1, 0x59, 0xbf, 0x26, 0x7c, + 0xfe, 0xbe, 0x60, 0x29, 0xe9, 0x1f, 0x80, 0x51, 0x50, 0x3f, 0x62, 0x95, 0xf8, 0xd1, 0xb5, 0xf1, 0x21, 0xc, 0x2, 0xe6, 0x5a, 0x5, 0xf9, 0xe1, 0x4e, 0x2e, 0xa8, 0xbf, 0x5, + 0x39, 0x81, 0x4c, 0x4a, 0x8f, 0x50, 0x82, 0xf7, 0xf, 0xc0, 0x28, 0xb8, 0x6f, 0x9c, 0x5f, 0x6a, 0x3a, 0x28, 0xe8, 0xed, 0x55, 0xc0, 0x5c, 0xd5, 0x9e, 0x35, 0x3c, 0xb9, 0xe0, + 0xcb, 0x82, 0xe4, 0x5c, 0xd8, 0x2b, 0x62, 0x7e, 0x72, 0xf2, 0xa3, 0x94, 0x20, 0xb8, 0xfd, 0x9e, 0xdc, 0x3d, 0xaf, 0x5, 0x6b, 0x11, 0xa4, 0x20, 0x9b, 0x57, 0x48, 0xf5, 0x64, + 0x66, 0x58, 0x50, 0xec, 0x55, 0xc0, 0x5c, 0xd5, 0x9e, 0xbc, 0x69, 0xf0, 0xdc, 0x82, 0x3e, 0x81, 0x9f, 0xe5, 0xf7, 0x19, 0x9c, 0x80, 0x69, 0x7d, 0x0, 0x32, 0x47, 0xa9, 0xc, + 0x54, 0x90, 0xa3, 0x56, 0xcc, 0xd3, 0x87, 0x36, 0xf8, 0xef, 0x28, 0xdf, 0x25, 0x74, 0x28, 0x58, 0x3d, 0x42, 0x5f, 0x90, 0x5, 0xd9, 0xf4, 0x91, 0x5, 0xe3, 0x1, 0xc9, 0xc2, + 0xcf, 0x12, 0x42, 0x10, 0xa, 0x12, 0x4f, 0xbb, 0xa0, 0x60, 0x23, 0x9c, 0x8f, 0x2f, 0x8b, 0xf2, 0x63, 0xda, 0x17, 0xa4, 0x18, 0x9c, 0xae, 0x51, 0x50, 0x1e, 0xde, 0xd4, 0x82, + 0xd2, 0x40, 0xa7, 0xfa, 0xc7, 0x5d, 0x24, 0xf0, 0x34, 0xef, 0x4d, 0x2b, 0x28, 0xd0, 0x15, 0xff, 0x67, 0x9c, 0x76, 0xfc, 0xca, 0xdb, 0x6b, 0x3d, 0xfe, 0x93, 0xcd, 0x28, 0xc8, + 0xff, 0x30, 0x9b, 0xd0, 0xe3, 0xb, 0xa6, 0x9, 0x78, 0x58, 0x96, 0xc0, 0xb3, 0x7e, 0xa3, 0x59, 0x50, 0x45, 0x15, 0x8a, 0xc2, 0x49, 0x3a, 0xf, 0xd6, 0xa4, 0x1b, 0xa9, 0x3d, + 0x2a, 0xc8, 0x7c, 0xc6, 0x8e, 0x2e, 0x68, 0x26, 0xc8, 0x42, 0xb7, 0xb, 0xde, 0x3f, 0x3e, 0xee, 0x75, 0x86, 0xdd, 0x12, 0x3b, 0x5a, 0x36, 0xec, 0x8d, 0x82, 0x22, 0xb3, 0xb, + 0xa6, 0xd0, 0x3d, 0x85, 0x9d, 0x20, 0x47, 0xed, 0x7e, 0x81, 0x27, 0xea, 0x4c, 0x56, 0x48, 0xcc, 0xab, 0xc2, 0x98, 0x51, 0x97, 0x3, 0xc, 0xe8, 0xac, 0x20, 0x1b, 0xef, 0xf5, + 0x67, 0x6e, 0x31, 0x3e, 0x41, 0x64, 0x75, 0x95, 0xa0, 0xea, 0xec, 0xc1, 0xfe, 0xa9, 0xbd, 0x6d, 0xde, 0x30, 0x61, 0xc, 0x66, 0xc, 0xb, 0x86, 0x86, 0xba, 0xa9, 0xc8, 0x9e, + 0x8b, 0x2c, 0x5a, 0x23, 0xc2, 0xc, 0x5d, 0x25, 0x8, 0xfe, 0xba, 0xcc, 0x90, 0x1a, 0x62, 0xf3, 0x86, 0x9, 0xa1, 0x98, 0xf1, 0x78, 0xfc, 0xb, 0xb7, 0xf7, 0x2e, 0x64, 0x30, + 0x7b, 0xee, 0x74, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82}; + +constexpr auto kolyah35_data_size = 0x76c; + +inline uint8_t fullharmony_data[0x582] = {0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0xe0,0x0,0x0,0x0,0x41,0x8,0x3,0x0,0x0,0x0,0xff,0xb3,0x58,0x98,0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,0x63,0x50,0x4c,0x54,0x45,0x8a,0x4c,0x0,0x7d,0xa4,0xd7,0x7a,0x47,0xf,0x80,0x45,0x2,0xe5,0xcd,0xbb,0x78,0x43,0x8,0xff,0xff,0xff,0x10,0x10,0x10,0x50,0x6e,0x95,0x41,0x41,0x41,0x5c,0x36,0xb,0x5b,0x89,0xc5,0x21,0x21,0x21,0x58,0x84,0xbd,0x52,0x2e,0x7,0x0,0x0,0x0,0x5b,0x87,0xc0,0x4c,0x6a,0x91,0x54,0x4f,0x51,0x72,0x6a,0x6f,0x77,0x6c,0x72,0xd8,0xc1,0xb0,0x9,0x24,0x76,0xb,0x2a,0x83,0x81,0x65,0x5b,0x8,0x19,0x4f,0xc,0x1a,0x4d,0x4,0x19,0x57,0x4,0x1e,0x67,0xf,0x23,0x64,0x3,0x16,0x4d,0x2,0x12,0x44,0x0,0x0,0x0,0x24,0xc2,0x52,0x69,0x0,0x0,0x0,0x21,0x74,0x52,0x4e,0x53,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x9f,0xc1,0xd0,0x21,0x0,0x0,0x4,0xa0,0x49,0x44,0x41,0x54,0x68,0x81,0xed,0x9a,0x5b,0x6f,0xa3,0x30,0x10,0x85,0x51,0x1f,0x16,0x9,0x21,0xcd,0x5b,0x20,0xb0,0xa4,0xfc,0xff,0x5f,0xb9,0x8c,0x8d,0xc1,0x97,0xb9,0x18,0x3,0x4d,0xb5,0x8a,0xa5,0x46,0x55,0xcf,0xe4,0xcc,0xf9,0xb0,0xcd,0x4d,0xad,0xe6,0xff,0x7c,0x54,0xef,0xe,0xb0,0xf,0xd8,0xc7,0x85,0xae,0xd5,0x81,0x16,0x5a,0x2,0x35,0xa1,0x58,0x0,0x50,0xbb,0x51,0xd6,0x9e,0x2e,0xa8,0xf2,0x5b,0x68,0x9,0x32,0x12,0xa,0x5,0xbb,0x66,0xf4,0xcb,0xec,0x3d,0x40,0xa5,0x85,0x96,0x40,0x4f,0x28,0x15,0x84,0xe2,0x85,0xf6,0x15,0x53,0x90,0x58,0x68,0x9,0xe,0x26,0x24,0x0,0xf7,0x19,0x20,0x16,0x61,0xb1,0x7d,0x0,0x28,0xb5,0xc8,0x48,0x20,0xea,0x4a,0x1,0xd4,0x46,0xb7,0x83,0x5e,0xc1,0x65,0xf6,0x3e,0xa0,0xd8,0x42,0x4f,0x20,0xeb,0x4a,0xc1,0xf2,0x97,0xb6,0x75,0xf9,0xda,0xb,0xed,0x3,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x8c,0xba,0x8d,0xb,0xed,0x23,0x40,0xbe,0x45,0x56,0x2,0x41,0x57,0xa,0x50,0xc5,0x63,0xdf,0xb6,0xf4,0x85,0xa0,0xd8,0x3e,0x4,0x14,0x5a,0xe4,0x24,0x90,0x74,0xa5,0x0,0x57,0x15,0x54,0x5f,0xa8,0x2e,0x9f,0x17,0xda,0x7,0x80,0x52,0x8b,0x8c,0x4,0xa2,0xae,0x14,0x98,0x7c,0x5f,0xd,0x46,0x33,0x9f,0x97,0xd9,0x7,0x80,0x52,0x8b,0x8c,0x4,0xa2,0xae,0x14,0x64,0x2d,0x90,0x12,0xfb,0x8,0xf0,0x9d,0x4b,0x54,0xdd,0xe2,0xe7,0x97,0xe8,0x9b,0x4f,0x32,0xb7,0xd8,0x7f,0x0,0x7f,0xc,0xb0,0xdd,0x65,0xa0,0xee,0x4,0x2f,0x0,0x14,0x5b,0xe8,0x9,0x64,0x5d,0x29,0x58,0xd4,0xd6,0xdd,0x87,0x0,0x79,0xfc,0xa,0xed,0x3,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x0,0x65,0x13,0x11,0x6f,0x48,0x8e,0x7e,0x5b,0x28,0xf0,0x0,0xe5,0x16,0x6a,0x2,0x45,0xcf,0xf0,0xb7,0x77,0xcb,0x40,0xcd,0x4f,0xb9,0x7d,0x15,0x94,0x28,0x2d,0x24,0x59,0xd5,0x75,0x7f,0x58,0x55,0xea,0x2a,0x50,0x6c,0x5f,0x5,0x25,0x4a,0xb,0x51,0x56,0x75,0xa9,0xc0,0xa,0xf5,0x1f,0xfc,0x31,0xe7,0x8,0x6a,0x89,0x14,0xd9,0x57,0x9e,0x2c,0xb5,0xd0,0x12,0xa8,0x9,0xc5,0x2,0xf7,0x24,0xb7,0xa8,0xed,0x1f,0x7b,0x9a,0x38,0x68,0x5f,0x6f,0x6,0x51,0x41,0xb5,0x39,0x88,0x2d,0xb4,0x4,0x19,0x9,0xa5,0x2,0xa8,0x4f,0xda,0xd7,0xac,0xc1,0x6,0x28,0xb7,0x50,0x13,0x28,0xba,0x52,0xb0,0xab,0x6d,0x99,0xfd,0x11,0x40,0xb2,0x45,0x7e,0x2,0x5a,0x57,0xa,0xf0,0xfc,0xe0,0xab,0x70,0xd4,0xbe,0x66,0xb,0x3c,0x40,0xa9,0x45,0x46,0x2,0x51,0x57,0xa,0x7c,0xb5,0x2d,0xb1,0x8f,0x1,0x41,0x4,0x24,0x5a,0x1c,0x49,0x40,0xe9,0x4a,0x81,0x53,0xeb,0x52,0x7b,0x1f,0xb0,0x15,0x1,0x99,0x16,0xb9,0x9,0x38,0x5d,0x29,0x38,0x6d,0x5f,0x6f,0xe3,0xf7,0x2,0xc2,0xfd,0x80,0x42,0x8b,0x9c,0x4,0x92,0xae,0x14,0x9c,0xb6,0xff,0x0,0x7e,0x0,0xef,0x7,0xb4,0x17,0x3b,0x2b,0xde,0x4,0x28,0xb4,0xc8,0x49,0x20,0xe9,0x4a,0xc1,0xa6,0xb6,0x85,0xf6,0x28,0xd1,0x5,0x9,0x20,0xdd,0x22,0x3b,0x1,0xa3,0x2b,0x5,0xa7,0xed,0x37,0xc0,0xa4,0xe0,0x3,0xf8,0x1,0xfc,0x0,0xe6,0x0,0xe2,0x3,0xaa,0xaf,0xc6,0x8f,0xdb,0x17,0x0,0xca,0x2d,0xd4,0x4,0x8a,0xae,0x14,0xe0,0xb,0x77,0xa3,0xee,0xaf,0xc5,0x8e,0xd9,0x27,0x80,0xe9,0x13,0xbd,0x69,0xe1,0x8d,0x68,0x6,0xb5,0x4,0x8a,0xae,0x14,0x78,0xdd,0x1f,0x5d,0xd7,0xf5,0x87,0xed,0x17,0xb0,0x15,0x30,0x2e,0xf0,0x1,0x1,0x9e,0xfd,0xf3,0xf9,0xc4,0x6,0x34,0xa0,0x19,0x5d,0x7,0x3,0x93,0xc0,0xea,0x30,0xa6,0x7a,0x88,0xd0,0x2f,0xbf,0x12,0x4b,0x74,0x18,0xfa,0x61,0x5,0x8c,0x17,0x88,0xdf,0xbe,0x5b,0xaa,0x68,0xc0,0xb5,0xa0,0x27,0x1,0x71,0x3c,0x11,0x10,0x1d,0xfe,0xd2,0x4b,0x74,0x51,0xa6,0xc9,0x2,0x92,0x4b,0x74,0x9a,0x50,0x37,0x80,0xe4,0x12,0x9d,0xe1,0xf5,0x32,0x73,0x4,0xb1,0xbf,0x29,0xd9,0x0,0xbb,0x58,0x73,0x7,0x60,0x18,0x56,0x40,0x7a,0x89,0x8e,0xfd,0x38,0x62,0xc8,0x91,0x58,0xa2,0xc6,0xa6,0x47,0x3e,0x63,0x91,0x74,0x37,0xfa,0x6,0x38,0xd0,0xfa,0x6,0x48,0xeb,0x6,0xb0,0x87,0xc7,0x23,0x25,0x58,0xdb,0xf,0xc,0xa0,0xd5,0x1d,0x20,0x13,0x6f,0x3,0x1c,0x7d,0x3d,0x0,0x7c,0x3e,0x57,0x40,0xa6,0x43,0x6f,0xf8,0x78,0x40,0xd4,0x11,0x70,0x69,0xc3,0x0,0xf6,0x78,0x74,0x39,0x40,0x3,0x80,0xf8,0x1a,0x20,0x6b,0xf,0x3d,0x2,0x6,0x7a,0xe5,0xeb,0x1a,0xe0,0x34,0x99,0x9,0x14,0x66,0xd0,0xe8,0x2,0xe0,0xeb,0x35,0x1a,0x42,0xf2,0xc5,0xae,0x1,0x30,0x53,0x48,0xbf,0x58,0x56,0x1,0x17,0x8f,0x33,0x80,0xe0,0x0,0x4c,0x8e,0x72,0xc0,0x91,0x9e,0x42,0x93,0x5f,0x5a,0xa3,0x19,0x80,0xb3,0x3d,0xb,0x95,0x2,0x4e,0x3b,0x20,0x39,0x85,0xbf,0x0,0x70,0x3e,0xd,0xd8,0xdd,0xe,0xc8,0xae,0xd1,0x9f,0x2,0x74,0x7b,0x85,0x2e,0xb0,0x7c,0xe5,0x80,0xeb,0xa5,0x9e,0xa,0xf0,0x43,0x80,0x0,0x6b,0x92,0x62,0x40,0xe6,0x34,0xea,0x6c,0xdf,0xe,0x38,0x73,0x80,0x90,0x3,0xf8,0x8d,0x7c,0x14,0x20,0x68,0x80,0x70,0xf7,0x49,0xc6,0xe5,0xe7,0x1,0xd7,0x19,0xe6,0x1,0xc1,0xde,0xc9,0x3c,0xa8,0x3d,0xe6,0xb6,0xa0,0x3,0x64,0xa,0x6e,0xbc,0x4c,0xb8,0x2d,0xb8,0x6d,0x96,0xc4,0xdc,0xe9,0x2,0x20,0x70,0xe7,0x10,0xd8,0x5c,0x99,0x4d,0x8,0x19,0x80,0x78,0x70,0x8b,0x1,0xc1,0x4d,0xd0,0x7e,0xac,0xc3,0xe0,0xfb,0x1,0x10,0x0,0x1b,0x66,0xfe,0x7c,0xd3,0x4,0xd0,0xda,0xf,0xa,0x20,0xd6,0x8c,0x3a,0x60,0xc7,0x2,0xba,0xfc,0x73,0x7a,0x96,0x81,0xa6,0x1,0x37,0x81,0x2b,0x20,0x7d,0xab,0xb3,0x0,0x4a,0xd7,0x0,0xbb,0x2c,0x52,0x40,0x63,0xbf,0x16,0x58,0x40,0xca,0xa1,0xb1,0x9b,0xe3,0x1c,0xa0,0x4d,0x40,0x1,0x4e,0xfb,0x1,0x60,0x37,0x21,0xd8,0xa8,0xd4,0xf2,0xf0,0x3c,0x93,0xdb,0x51,0xfc,0xd6,0x30,0x78,0x80,0xe4,0x14,0x5a,0x40,0x2c,0x18,0xb,0x0,0xb7,0x9,0x9a,0x25,0x40,0x3b,0x39,0xa,0x20,0x13,0x6e,0xdf,0xd7,0xc9,0x36,0xdd,0x1,0x41,0x4,0x6c,0xd6,0xe7,0xc1,0x22,0x40,0x43,0xd0,0xb9,0x4,0xd1,0x59,0x66,0x5,0xec,0xec,0xe4,0x94,0x1,0x7a,0x8f,0x88,0xe6,0x66,0xbc,0xd9,0xfd,0x1d,0xe0,0xfa,0x4c,0x2a,0x0,0xce,0xe6,0x99,0x2e,0x58,0xc1,0xf9,0x80,0x7e,0x2,0x6c,0x16,0x24,0x0,0x4f,0x66,0x1,0xc1,0xaf,0x8a,0xc3,0x35,0x10,0xd4,0xf9,0x7f,0xf0,0xed,0x35,0xc0,0x78,0xb,0xe6,0x3,0x8a,0x9,0xc2,0x37,0x48,0x2c,0xe0,0xeb,0xfb,0xfb,0x45,0x2b,0xe8,0xe6,0xd9,0x35,0xd,0x67,0x2f,0x0,0xda,0x77,0x6,0x22,0xa0,0x3f,0x8e,0x24,0x48,0x3b,0xf1,0xff,0x29,0xc4,0x28,0xe1,0x8c,0x99,0x6e,0xcc,0x2a,0x67,0x4d,0xe8,0x1e,0x55,0x44,0xb1,0x38,0xdb,0x4f,0x88,0xbe,0x97,0x9b,0x60,0x53,0x19,0x81,0x54,0xec,0xee,0xf4,0xea,0x64,0x73,0xc6,0x84,0xec,0x51,0x11,0x5f,0xa6,0xa6,0x27,0x38,0x2e,0xca,0x41,0xe4,0xa6,0xd7,0xf9,0x93,0x5f,0x8a,0xec,0x65,0x73,0x76,0xf5,0xa4,0x3d,0xfe,0x1,0x1a,0xe7,0x3b,0x40,0x89,0x1,0x1e,0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82}; + +constexpr auto fullharmony_data_size = 0x582; + +inline uint8_t level_data[0x1a2c] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x1, 0x40, 0x8, 0x6, 0x0, 0x0, 0x0, + 0xcd, 0x90, 0xa5, 0xaa, 0x0, 0x0, 0x0, 0x1, 0x73, 0x52, 0x47, 0x42, 0x0, 0xae, 0xce, 0x1c, 0xe9, 0x0, 0x0, 0x19, 0xe6, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0xdd, + 0x7d, 0x90, 0x1c, 0x75, 0x9d, 0xc7, 0xf1, 0xcf, 0x84, 0xdd, 0x48, 0x42, 0x1e, 0xd8, 0x54, 0x9e, 0x80, 0x25, 0x24, 0x2c, 0xe4, 0x1, 0x82, 0x87, 0xc9, 0x21, 0xb5, 0x90, 0x32, + 0xd6, 0xe9, 0xe9, 0x71, 0x70, 0x8a, 0x7, 0xc8, 0x83, 0x85, 0x88, 0x45, 0x21, 0x85, 0x8, 0x48, 0x2a, 0xc8, 0x89, 0xca, 0xa1, 0x15, 0xf, 0x2e, 0x95, 0xa8, 0x78, 0xde, 0x9, + 0x7a, 0x97, 0x3, 0xa, 0x30, 0x24, 0x88, 0x27, 0x1, 0x4e, 0x4a, 0x28, 0xf1, 0x84, 0x54, 0xa0, 0x88, 0x41, 0x36, 0x84, 0x24, 0x6c, 0x1e, 0x37, 0x3c, 0x24, 0x21, 0xb0, 0xd9, + 0xcd, 0x6e, 0xc8, 0xcc, 0x4e, 0xdf, 0x1f, 0x33, 0xbf, 0xde, 0x9e, 0x9e, 0xee, 0x99, 0xe9, 0x9e, 0xee, 0xe9, 0x99, 0xdd, 0xf7, 0xab, 0x5c, 0x99, 0xe9, 0xfe, 0x75, 0xff, 0x7a, + 0x93, 0xdd, 0x4f, 0xbe, 0xdd, 0xbf, 0x5f, 0xf7, 0xa4, 0xe6, 0xcd, 0x3b, 0xcb, 0xea, 0xed, 0xed, 0xd1, 0xe1, 0xc3, 0xfd, 0x6a, 0x6b, 0x6b, 0x53, 0x77, 0x77, 0x8f, 0x2a, 0x15, + 0x66, 0x3b, 0xf7, 0x36, 0x53, 0xfb, 0xf, 0x56, 0xdc, 0x5f, 0x1c, 0x9e, 0xda, 0xb4, 0x39, 0x95, 0xe8, 0x1, 0x54, 0xa1, 0xad, 0xad, 0xcd, 0xea, 0xec, 0xec, 0x6c, 0xd8, 0xe3, + 0x7, 0x92, 0xd6, 0xd4, 0xdb, 0x5b, 0x18, 0x5c, 0xee, 0xf7, 0x95, 0xa, 0xb3, 0x5d, 0x6f, 0x6f, 0x8f, 0xda, 0x4f, 0x3a, 0x3e, 0x54, 0x7f, 0xa5, 0xac, 0xed, 0x7a, 0x4b, 0xed, + 0xad, 0x95, 0xed, 0xf7, 0xa9, 0x4d, 0x9b, 0x23, 0xef, 0xbf, 0x16, 0xda, 0xda, 0xda, 0xac, 0x51, 0xa3, 0x46, 0x11, 0x82, 0x40, 0x15, 0x9a, 0xe, 0x1f, 0xee, 0xb7, 0xdf, 0x74, + 0x76, 0x76, 0x86, 0xda, 0x49, 0x98, 0xed, 0xcc, 0x36, 0x5d, 0x87, 0xe, 0x85, 0xea, 0xd3, 0xcf, 0x7b, 0x87, 0x6, 0xbf, 0x9f, 0x28, 0xf7, 0xbd, 0x7a, 0xde, 0x3c, 0xcb, 0xbc, + 0xbe, 0x78, 0xfd, 0xfa, 0xa2, 0xc0, 0x59, 0x3d, 0x6f, 0x9e, 0xe5, 0xb5, 0x3c, 0x4e, 0x93, 0x26, 0x4d, 0xd6, 0xae, 0x5d, 0x3b, 0x6b, 0xd9, 0x25, 0x30, 0xa4, 0x34, 0xb5, 0xb5, + 0xb5, 0x15, 0x2c, 0x70, 0x86, 0x99, 0x7b, 0x5d, 0x29, 0x41, 0xb7, 0xb, 0x1b, 0xb6, 0x49, 0x31, 0xe1, 0xb6, 0x7a, 0xde, 0x3c, 0xcb, 0x84, 0x61, 0xad, 0x3, 0xcf, 0x30, 0xd5, + 0x9f, 0x24, 0x51, 0x5, 0x2, 0xe1, 0x35, 0xb9, 0xaf, 0xdd, 0x1d, 0x7d, 0xf4, 0xa8, 0x50, 0xd7, 0x3, 0x83, 0x6e, 0x67, 0xda, 0x37, 0xa2, 0xf9, 0xb, 0x7b, 0xf5, 0xca, 0xf3, + 0x63, 0xa, 0xaa, 0xbe, 0xa4, 0xc2, 0x10, 0x40, 0x78, 0x23, 0x92, 0x3e, 0x80, 0x46, 0x35, 0x7f, 0x61, 0xaf, 0xa4, 0xc2, 0x53, 0x63, 0x27, 0x67, 0xa5, 0x18, 0x87, 0x49, 0x93, + 0x26, 0x17, 0xfc, 0xb7, 0xde, 0xc4, 0xf9, 0xbd, 0x3, 0x51, 0x21, 0x0, 0xab, 0x30, 0x7f, 0x61, 0xaf, 0xe6, 0x2f, 0xec, 0x2d, 0xfa, 0x65, 0x8f, 0xf3, 0x14, 0xd9, 0x79, 0xfa, + 0x6b, 0x98, 0xd3, 0xe0, 0xa8, 0xfb, 0x72, 0xab, 0x24, 0xd4, 0x4c, 0xf0, 0x53, 0x11, 0xa3, 0x11, 0x14, 0x8d, 0x2, 0x3b, 0xd5, 0x62, 0x44, 0xd8, 0x39, 0x68, 0x11, 0xb5, 0xa8, + 0xf6, 0xed, 0x3e, 0xd5, 0x5d, 0xad, 0x79, 0xd6, 0xfc, 0x85, 0xbd, 0x9a, 0x7e, 0xd7, 0x65, 0xda, 0x71, 0xdb, 0xaf, 0x8a, 0xda, 0xf, 0xe5, 0x5f, 0xfe, 0x4a, 0xc2, 0x7d, 0x28, + 0x7f, 0xff, 0x18, 0x5a, 0x52, 0xd3, 0xa6, 0x9d, 0x94, 0xe8, 0xa9, 0xca, 0xdc, 0x63, 0x8e, 0x4e, 0xb2, 0xfb, 0x8a, 0xe7, 0x1, 0x3a, 0x43, 0x70, 0xf5, 0xbc, 0x5c, 0x0, 0x4a, + 0xd2, 0xf4, 0xbb, 0x2e, 0xd3, 0x63, 0xed, 0x6b, 0x6a, 0xf2, 0x4b, 0x6f, 0xaa, 0x3f, 0xaf, 0xd3, 0xde, 0x7d, 0xfb, 0xf6, 0xaa, 0xbf, 0xbf, 0x5f, 0xb5, 0x18, 0xc, 0xf1, 0xb, + 0xc1, 0xa4, 0x7, 0x87, 0x80, 0xa0, 0x8a, 0x46, 0x81, 0xfd, 0x84, 0x1d, 0x1d, 0x2e, 0xb7, 0x7d, 0x7b, 0x53, 0xf9, 0xfc, 0xd, 0x32, 0xaf, 0x2f, 0xa8, 0x4a, 0xe7, 0x1, 0x7a, + 0xfd, 0x52, 0x4f, 0xbf, 0xeb, 0x32, 0x49, 0xb9, 0x53, 0xe1, 0xd5, 0x1a, 0x1e, 0xa7, 0x7d, 0x26, 0xfc, 0x5f, 0x79, 0x7e, 0x4c, 0x45, 0xcb, 0x81, 0x7a, 0x56, 0x34, 0xa, 0xec, + 0x27, 0xec, 0xe8, 0x70, 0xb9, 0xed, 0xbb, 0x8e, 0x2e, 0x9d, 0x19, 0x71, 0xcd, 0xeb, 0xb, 0xcb, 0xfc, 0xa2, 0x9b, 0xf0, 0x1b, 0xae, 0x3e, 0xff, 0x87, 0x26, 0x69, 0x5c, 0xe5, + 0xcb, 0x81, 0x7a, 0xc4, 0x20, 0x48, 0x85, 0xda, 0xda, 0xda, 0x2c, 0x33, 0xd0, 0xe0, 0xe, 0x3f, 0xf3, 0xde, 0xd9, 0x26, 0x8e, 0xfe, 0xfd, 0x4e, 0x7f, 0xa5, 0xdc, 0x68, 0x70, + 0x2d, 0x6, 0x43, 0x2e, 0x5e, 0xbf, 0x3e, 0xd5, 0x7a, 0xe7, 0xb1, 0x6a, 0x1e, 0xf7, 0x52, 0xd1, 0xbf, 0x5c, 0x7e, 0xcb, 0x81, 0x7a, 0xd5, 0x94, 0xf4, 0x1, 0x34, 0x82, 0xb6, + 0xb6, 0x36, 0x6b, 0xe4, 0xc8, 0x51, 0xca, 0x8d, 0xbe, 0xe, 0xf8, 0xb6, 0x1b, 0x3f, 0x7e, 0x82, 0xfa, 0xfb, 0xfb, 0x23, 0x9b, 0x98, 0xec, 0xc, 0x33, 0x77, 0xf8, 0xed, 0xdb, + 0xb7, 0xd7, 0x7e, 0xed, 0x9c, 0x12, 0xb3, 0x6f, 0xdf, 0xde, 0x82, 0xed, 0xe2, 0xb8, 0x26, 0xd8, 0x3c, 0xee, 0xa5, 0xa2, 0x65, 0x17, 0xaf, 0x5f, 0x9f, 0xd2, 0x38, 0x31, 0xf5, + 0x5, 0xd, 0xa5, 0xe4, 0x28, 0xb0, 0x9f, 0xb0, 0xa3, 0xc3, 0x9e, 0xdb, 0x1f, 0x5d, 0xdf, 0xe7, 0x4b, 0x85, 0xe1, 0x57, 0x9e, 0x69, 0x17, 0x36, 0x4, 0xdd, 0xa1, 0x67, 0xb8, + 0xc3, 0xaf, 0xa3, 0xa3, 0xc3, 0xde, 0xf7, 0xdc, 0xb9, 0x73, 0x2d, 0x77, 0x8, 0x7a, 0xed, 0x2f, 0xaa, 0x30, 0xdc, 0xfe, 0xcd, 0x99, 0x9a, 0xf1, 0xa3, 0x2d, 0xee, 0x65, 0xa6, + 0x1f, 0x6b, 0xc6, 0x8f, 0xb6, 0x50, 0x5, 0xa2, 0x21, 0x34, 0x5, 0xbd, 0x1b, 0xa3, 0xda, 0x5b, 0xd8, 0x8a, 0xb7, 0xaf, 0xdf, 0x0, 0xc, 0x1a, 0x7e, 0x46, 0x98, 0x10, 0x34, + 0x41, 0xe5, 0x17, 0x7a, 0x86, 0x3b, 0xfc, 0x24, 0xa9, 0xa3, 0xa3, 0x23, 0xe5, 0xe, 0x41, 0x67, 0x7b, 0x77, 0x1f, 0xd5, 0x4, 0xa1, 0x23, 0xe8, 0x8a, 0xcc, 0xf8, 0xd1, 0x96, + 0x54, 0xa9, 0xf5, 0x7e, 0xee, 0x3b, 0x7b, 0x62, 0xdd, 0x57, 0x8e, 0xd7, 0xae, 0xdb, 0x4f, 0xa8, 0xf, 0x41, 0xf6, 0x28, 0x70, 0xb5, 0xa3, 0xbc, 0x61, 0xf7, 0xf1, 0xde, 0x81, + 0x7d, 0x15, 0xef, 0x3f, 0xce, 0x39, 0x83, 0x5e, 0x3a, 0x3b, 0x3b, 0x53, 0xee, 0x60, 0xfa, 0xa1, 0x8e, 0x92, 0xda, 0xd7, 0xe8, 0xa2, 0xb5, 0x17, 0xd8, 0xed, 0x1e, 0x6b, 0x5f, + 0x93, 0x5b, 0x9e, 0xd7, 0xdf, 0xdf, 0xaf, 0x23, 0x47, 0x2a, 0x9f, 0x92, 0x52, 0xee, 0xfa, 0x5e, 0x35, 0xdc, 0xfb, 0x34, 0xa7, 0xc8, 0x61, 0x43, 0x30, 0x6c, 0xc8, 0xf9, 0x31, + 0xe1, 0x37, 0x37, 0x86, 0xa7, 0x2, 0x45, 0xa5, 0x63, 0xe7, 0x5b, 0xba, 0xef, 0xec, 0x89, 0x16, 0x21, 0x38, 0xf4, 0xd8, 0xa3, 0xc0, 0xd5, 0x8e, 0xf2, 0x86, 0xdd, 0xc7, 0xa8, + 0x23, 0x47, 0x2a, 0x6a, 0xb7, 0xb6, 0xeb, 0xad, 0x50, 0xc7, 0x54, 0x2d, 0x13, 0x82, 0x47, 0x8e, 0xf4, 0xcb, 0x54, 0x83, 0x3f, 0xd4, 0x51, 0xba, 0x28, 0xbf, 0x7e, 0x7e, 0xfb, + 0xd3, 0x52, 0x3e, 0xfc, 0x4c, 0xf0, 0x99, 0xed, 0x82, 0xf6, 0xb1, 0x6b, 0xd7, 0xce, 0xb2, 0x15, 0x60, 0x50, 0xce, 0xa, 0xb0, 0xbf, 0x3f, 0xf8, 0xb1, 0x5, 0x11, 0x36, 0x18, + 0xeb, 0x39, 0xfc, 0xa4, 0xdc, 0xf1, 0x75, 0xec, 0x4c, 0xe6, 0xe7, 0xf, 0xf1, 0x4a, 0x7c, 0x10, 0x24, 0x8e, 0xf9, 0x7d, 0x51, 0x3f, 0xf, 0xd0, 0x19, 0x82, 0x26, 0x8, 0x4f, + 0x3b, 0xf3, 0xd7, 0x5, 0x6d, 0x4c, 0xf0, 0x99, 0xf6, 0xc1, 0x8e, 0x78, 0x70, 0x1b, 0xe7, 0x35, 0x3b, 0xbf, 0x81, 0x8e, 0xb9, 0x73, 0xe7, 0x5a, 0x7e, 0xd7, 0x0, 0xdd, 0xdb, + 0x99, 0xd0, 0xb, 0x7b, 0x5c, 0x95, 0x32, 0xd7, 0xfd, 0xa2, 0xac, 0xe, 0x81, 0xb8, 0x25, 0x1e, 0x80, 0x8d, 0xf2, 0x3c, 0x40, 0x67, 0x40, 0x39, 0xc3, 0xce, 0xab, 0x4d, 0x14, + 0xfd, 0x98, 0xbe, 0xcc, 0xeb, 0x7d, 0xfb, 0xf6, 0x16, 0x85, 0xa0, 0x59, 0xe7, 0xe, 0xbf, 0x38, 0x43, 0xcf, 0x4, 0xdc, 0xf6, 0x6f, 0xce, 0x2c, 0x18, 0xec, 0x20, 0xf8, 0xd0, + 0x88, 0x3c, 0x47, 0x81, 0xab, 0x1d, 0xe5, 0xd, 0xb4, 0x8f, 0x3a, 0x1f, 0x5, 0x76, 0xf3, 0xaa, 0xd4, 0xe2, 0xaa, 0xac, 0xdc, 0x61, 0xe8, 0xe, 0x41, 0xb7, 0xa8, 0x6f, 0x87, + 0xb3, 0x2c, 0xab, 0x20, 0xd4, 0x76, 0xdc, 0x32, 0x4b, 0xd3, 0x97, 0xf, 0x56, 0xcc, 0xd6, 0x72, 0x59, 0xee, 0x65, 0x92, 0xb4, 0x5d, 0xb3, 0xac, 0xe9, 0xcb, 0x37, 0xeb, 0xb1, + 0xf9, 0xf3, 0x75, 0xd1, 0x2b, 0xaf, 0x28, 0x95, 0x4a, 0x71, 0xed, 0xc, 0x75, 0x29, 0xf1, 0x7b, 0x81, 0xcf, 0x6b, 0x9d, 0x12, 0xe9, 0xfe, 0xde, 0x3b, 0xd4, 0xaf, 0xbe, 0x23, + 0x47, 0xd4, 0xde, 0x7a, 0x7c, 0x45, 0x15, 0xe0, 0xbd, 0x2f, 0x6, 0x9f, 0xb8, 0x7b, 0xf5, 0xd5, 0x57, 0x5b, 0x73, 0x4f, 0x3b, 0xcd, 0x7e, 0xdf, 0xf1, 0xfa, 0xeb, 0x5a, 0xb1, + 0x62, 0xc5, 0x90, 0xb9, 0x17, 0xd8, 0x1d, 0x7c, 0xd5, 0x30, 0x1, 0xb9, 0xe5, 0xfe, 0xaf, 0x69, 0xd6, 0x57, 0xee, 0x2b, 0x3a, 0xb6, 0x46, 0x18, 0x1, 0x36, 0x18, 0x4, 0x19, + 0x7a, 0x2a, 0xba, 0x17, 0x38, 0xae, 0xfb, 0x80, 0x25, 0x49, 0x1f, 0xf6, 0x6, 0xde, 0x5f, 0xd2, 0x56, 0xac, 0x58, 0x91, 0xaa, 0x45, 0x5, 0x98, 0x4, 0x67, 0xf8, 0x99, 0xf0, + 0xf2, 0xaa, 0xf2, 0x32, 0x3d, 0x67, 0xab, 0x69, 0xec, 0x3a, 0xb9, 0xdb, 0xba, 0x99, 0x65, 0x33, 0xaf, 0xba, 0x57, 0xd6, 0x55, 0xf7, 0x5a, 0x5e, 0xd5, 0xa0, 0x19, 0x4, 0xe9, + 0xd8, 0xf9, 0x56, 0x5d, 0x85, 0xcc, 0x7d, 0x67, 0x4f, 0xb4, 0x9c, 0xc7, 0x86, 0xa1, 0xa7, 0xa2, 0x7b, 0x81, 0xe3, 0xba, 0xf, 0x38, 0xb7, 0xb2, 0x6e, 0x7e, 0xde, 0xe1, 0x90, + 0x3b, 0x7d, 0xcd, 0x85, 0x97, 0x33, 0xd8, 0x4c, 0xd0, 0x39, 0xc3, 0xcf, 0xd9, 0xc6, 0x2f, 0x8, 0x81, 0x7a, 0x94, 0xf8, 0x20, 0x48, 0x23, 0x3c, 0xf, 0xb0, 0x5e, 0x98, 0xd1, + 0x68, 0xe7, 0xb5, 0x40, 0x29, 0x9e, 0x47, 0x61, 0x5d, 0xf4, 0xca, 0x2b, 0x9e, 0xcb, 0xcb, 0x85, 0x1b, 0xe1, 0x17, 0x4c, 0xd2, 0x97, 0xa0, 0x1a, 0xdd, 0xae, 0x5d, 0x3b, 0xab, + 0xfa, 0x99, 0x4f, 0x3c, 0x0, 0xfb, 0x2a, 0x9c, 0x7, 0x18, 0x54, 0x52, 0xf3, 0x6, 0x87, 0xaa, 0x2d, 0xf7, 0x7f, 0x4d, 0x33, 0xaf, 0xba, 0xd7, 0x73, 0x9d, 0x19, 0xec, 0xf0, + 0x62, 0x2a, 0xc2, 0x52, 0x6d, 0xe0, 0x7d, 0x69, 0xa9, 0xd4, 0xa5, 0xa3, 0x72, 0x97, 0xa5, 0xfc, 0xd6, 0x57, 0x72, 0x39, 0x2b, 0x68, 0x9b, 0xa0, 0xc7, 0x50, 0x4e, 0x98, 0xfe, + 0xc3, 0xa, 0x7c, 0x2f, 0x70, 0xa4, 0xf7, 0x1, 0x4b, 0x15, 0x7d, 0x2e, 0x70, 0x3d, 0x3c, 0xf, 0xb0, 0x5e, 0x38, 0xef, 0x4e, 0x31, 0xa2, 0xac, 0xfe, 0xbe, 0x7e, 0xde, 0x39, + 0x3a, 0x75, 0x9c, 0xf7, 0x43, 0x82, 0x9e, 0x7a, 0x6a, 0x81, 0xf7, 0x46, 0xa7, 0x8c, 0xd2, 0x8f, 0x2f, 0xf5, 0x59, 0xa7, 0x49, 0xd2, 0xa5, 0xb, 0xa4, 0x53, 0x46, 0xe9, 0xeb, + 0xe7, 0x9d, 0x13, 0xc5, 0x21, 0xe, 0x39, 0x7e, 0x97, 0x96, 0x4a, 0x5d, 0x3a, 0x2a, 0x77, 0x59, 0xca, 0x6f, 0x7d, 0x25, 0x97, 0xb3, 0x82, 0xb4, 0x9, 0x7b, 0xfc, 0xa5, 0x4, + 0xed, 0xbf, 0x1a, 0x81, 0xee, 0x5, 0x8e, 0xfe, 0x3e, 0xe0, 0xf2, 0x73, 0xf5, 0xea, 0xed, 0x79, 0x80, 0xf5, 0xc2, 0x9c, 0x6, 0x3b, 0x27, 0x3d, 0xa3, 0x71, 0x95, 0x2b, 0x2c, + 0xaa, 0xf9, 0xe8, 0xa, 0xbf, 0xf5, 0x95, 0x14, 0x33, 0x95, 0x16, 0x3c, 0xd5, 0x1c, 0x7f, 0x1c, 0xdb, 0x55, 0xaa, 0xa9, 0xad, 0xad, 0xad, 0x66, 0x9f, 0x5, 0xec, 0xb9, 0x4d, + 0x3, 0x8e, 0x2, 0xf, 0x55, 0xcb, 0x96, 0x2e, 0xb5, 0x3a, 0x9f, 0xfd, 0x75, 0xf9, 0x86, 0x55, 0xf6, 0xb1, 0x68, 0xf1, 0x62, 0x46, 0xbe, 0x1c, 0xca, 0x15, 0x16, 0xa5, 0xd6, + 0x87, 0xdd, 0xb6, 0x92, 0x62, 0xa6, 0xd2, 0x82, 0xa7, 0x9a, 0xe3, 0x8f, 0x63, 0xbb, 0x20, 0x9a, 0xba, 0xbb, 0x7b, 0x6a, 0xf6, 0x59, 0xc0, 0x92, 0x34, 0x71, 0xe2, 0x64, 0xed, + 0xdf, 0xbf, 0x77, 0x70, 0x1b, 0x46, 0x81, 0x3, 0x73, 0x9e, 0x6, 0x47, 0x75, 0xfa, 0xbb, 0x6c, 0xe9, 0x52, 0x6b, 0xcd, 0x53, 0x4f, 0x6b, 0xce, 0x47, 0xaa, 0x3f, 0xbe, 0x52, + 0xd6, 0x3c, 0xf5, 0x34, 0x21, 0xe8, 0x21, 0x8a, 0xe9, 0x68, 0x41, 0xa, 0x92, 0x6a, 0xdb, 0x56, 0x72, 0xd, 0xb0, 0x9a, 0x3e, 0x83, 0xf6, 0x1f, 0x56, 0xe2, 0x83, 0x20, 0x8, + 0x2f, 0xae, 0xd3, 0xdf, 0xad, 0x7, 0xb3, 0xb1, 0xec, 0x17, 0xde, 0x2a, 0x2d, 0x20, 0xc2, 0x5e, 0xf7, 0xb, 0xb3, 0xaf, 0x72, 0x6d, 0x2b, 0xb9, 0x6, 0x58, 0x4d, 0x9f, 0x41, + 0xfa, 0xaf, 0x6, 0x1, 0xd8, 0xa0, 0x4c, 0x15, 0x18, 0xd5, 0xe0, 0xc7, 0xa2, 0xc5, 0x8b, 0x53, 0xa6, 0xa, 0x8c, 0xd3, 0x5, 0x7f, 0x7f, 0x9e, 0xa8, 0xfe, 0x8a, 0x45, 0x3d, + 0x18, 0x19, 0x64, 0x7f, 0x51, 0xb4, 0xad, 0xd5, 0x60, 0x6a, 0xd4, 0xd7, 0x4, 0x13, 0xf, 0xc0, 0x20, 0x73, 0xf5, 0x86, 0xda, 0xbc, 0xbe, 0x6a, 0x45, 0x7d, 0x7, 0x8a, 0x9, + 0xc1, 0x28, 0xf7, 0xe9, 0xd5, 0x87, 0x7b, 0x59, 0x3d, 0xdf, 0x65, 0x51, 0x8b, 0x63, 0xb, 0x7a, 0x3a, 0x17, 0xe5, 0x35, 0xb7, 0x28, 0xda, 0x46, 0x7d, 0xfc, 0x51, 0x6f, 0x57, + 0xa, 0xff, 0x12, 0x3, 0xc3, 0xd8, 0xed, 0x5f, 0x3e, 0x21, 0xd1, 0x89, 0xd8, 0x4b, 0x1e, 0xd8, 0x13, 0x34, 0x83, 0xfc, 0x8e, 0x37, 0x54, 0x96, 0x25, 0x5e, 0x1, 0x6, 0x71, + 0xe3, 0xc2, 0x39, 0xd6, 0x3d, 0xcf, 0x6f, 0xf2, 0xfd, 0x46, 0xcb, 0xad, 0xa7, 0xff, 0xc6, 0x96, 0xf4, 0xf7, 0x9f, 0x74, 0xff, 0x71, 0x38, 0xeb, 0x8c, 0x13, 0xa, 0xde, 0xbf, + 0xfc, 0xda, 0x9e, 0xa2, 0x65, 0x95, 0xa, 0xb7, 0xed, 0x9e, 0x20, 0x8d, 0xad, 0x3f, 0x5d, 0xde, 0xea, 0xb9, 0x62, 0xc1, 0x23, 0x5d, 0x96, 0x42, 0x84, 0x60, 0x43, 0xfc, 0x65, + 0xdd, 0xb8, 0x70, 0x8e, 0x9d, 0xfa, 0x33, 0xa6, 0x4c, 0xf0, 0x6d, 0xb7, 0xfd, 0xdd, 0x3, 0xf6, 0xeb, 0x28, 0x7f, 0x10, 0x87, 0x7b, 0xff, 0x49, 0x4b, 0xfa, 0xfb, 0x4f, 0xba, + 0xff, 0x38, 0xed, 0x78, 0xe2, 0xfc, 0x82, 0x8a, 0xea, 0x17, 0xab, 0x36, 0xe8, 0xac, 0x33, 0x4e, 0xd0, 0x99, 0xb3, 0x27, 0x5, 0xde, 0xd7, 0x2f, 0x1e, 0x7f, 0x53, 0x67, 0xcd, + 0x19, 0x1f, 0x68, 0xdb, 0xe9, 0xff, 0xf0, 0x64, 0xa5, 0x7f, 0x4e, 0xbe, 0xe1, 0x27, 0x49, 0xeb, 0x7a, 0x8e, 0xd1, 0xa2, 0x35, 0x9b, 0xa5, 0x80, 0x99, 0xd6, 0x10, 0x7f, 0x49, + 0x46, 0xd2, 0xff, 0x2, 0xf, 0xf7, 0xfe, 0x93, 0x96, 0xf4, 0xf7, 0x9f, 0x74, 0xff, 0x71, 0x88, 0x34, 0x0, 0x43, 0x6c, 0x5b, 0x61, 0x0, 0xda, 0xe1, 0x77, 0xee, 0xc3, 0xbb, + 0xf5, 0xc2, 0x15, 0x27, 0x16, 0x35, 0x58, 0xd7, 0x73, 0x8c, 0x24, 0x5, 0xe, 0xc1, 0x46, 0xfa, 0xcb, 0xa, 0x72, 0xad, 0x22, 0x8e, 0xef, 0x6b, 0xb8, 0xf7, 0x9f, 0xb4, 0xa4, + 0xbf, 0xff, 0xa4, 0xfb, 0x8f, 0x45, 0x23, 0x5, 0xa0, 0x5f, 0xf8, 0x49, 0xe1, 0x3, 0xb0, 0xa1, 0xae, 0x1, 0xf6, 0xbc, 0x54, 0x7e, 0xf2, 0xe4, 0xd8, 0x8f, 0xc7, 0x37, 0x7b, + 0xfc, 0x33, 0x77, 0x2f, 0x29, 0xdb, 0xe6, 0x99, 0x6f, 0xdd, 0x1e, 0x5b, 0xff, 0xb7, 0x1c, 0x77, 0x5c, 0xd9, 0x36, 0xcb, 0xdf, 0x7e, 0x3b, 0xb6, 0xfe, 0x93, 0xb6, 0xe9, 0xba, + 0x39, 0x65, 0xdb, 0xcc, 0xf9, 0xf9, 0xa6, 0xf8, 0xe, 0xe0, 0x7f, 0x2a, 0xc8, 0xc0, 0xcf, 0x37, 0x4c, 0xf6, 0x35, 0x1c, 0xbf, 0xf0, 0xab, 0x86, 0xf7, 0x5d, 0xef, 0x2e, 0xd7, + 0x58, 0x97, 0xf0, 0xc8, 0x1e, 0x0, 0x43, 0x4e, 0x45, 0x15, 0xe0, 0x2f, 0x53, 0xab, 0x3c, 0xff, 0x59, 0x1b, 0xfb, 0x13, 0x59, 0x3d, 0x37, 0xe5, 0xca, 0xcd, 0x6b, 0xac, 0x4b, + 0x2c, 0xbf, 0x76, 0x88, 0x8f, 0x65, 0x59, 0xf6, 0xb9, 0x59, 0x94, 0xff, 0x4a, 0x7d, 0xe2, 0xa3, 0xa7, 0x46, 0xb6, 0xbb, 0x3f, 0xfe, 0x65, 0x2b, 0x3f, 0x17, 0x75, 0xea, 0x17, + 0xab, 0x36, 0x14, 0x2d, 0x7b, 0x79, 0x53, 0xb7, 0x5e, 0x7e, 0x2d, 0xd0, 0xe8, 0xec, 0xe0, 0xb6, 0xaf, 0xed, 0x9, 0xbd, 0x6d, 0x12, 0x22, 0x3b, 0x5, 0x1e, 0xe, 0xe1, 0x37, + 0x22, 0x3d, 0x60, 0xbf, 0x7e, 0xfa, 0xf6, 0xef, 0xda, 0xaf, 0xcf, 0x5b, 0xf2, 0x83, 0x9a, 0xf4, 0x3f, 0x60, 0xc2, 0xce, 0x23, 0xf4, 0x2c, 0xe5, 0xc2, 0x30, 0x4a, 0xed, 0x73, + 0x4e, 0x96, 0x24, 0xb5, 0xcc, 0x3c, 0x53, 0xef, 0x6f, 0xd9, 0x60, 0xff, 0x37, 0x88, 0xb5, 0x9b, 0xb6, 0x45, 0x7a, 0x4c, 0x88, 0x96, 0xff, 0xb4, 0x95, 0xf1, 0xf6, 0xab, 0x6a, + 0xa6, 0xc6, 0x94, 0xdf, 0x47, 0xb2, 0x61, 0x19, 0x3a, 0x0, 0xc7, 0xfe, 0x44, 0xd6, 0xa5, 0x37, 0x5e, 0xa2, 0x95, 0x5a, 0x65, 0x57, 0x81, 0x43, 0xdd, 0x88, 0x4c, 0xe1, 0x3d, + 0xb2, 0xe7, 0xdf, 0x79, 0x67, 0x6e, 0x79, 0x8d, 0xfa, 0x4f, 0x67, 0x73, 0xfd, 0x5b, 0x92, 0x3e, 0xd5, 0xda, 0xaa, 0xdf, 0x77, 0x75, 0xd9, 0xa1, 0xc7, 0x35, 0xa, 0x84, 0x51, + 0xc9, 0x80, 0x85, 0xa9, 0xe8, 0xc2, 0xc, 0x8c, 0x44, 0xb9, 0x8f, 0x38, 0xd4, 0xea, 0x77, 0x77, 0x48, 0x38, 0x2a, 0x9d, 0xb5, 0xbf, 0x24, 0xe9, 0xc9, 0x3b, 0xee, 0xd0, 0x93, + 0x77, 0xdc, 0x51, 0xb4, 0x3c, 0x2e, 0x69, 0xcb, 0xca, 0x7d, 0xe5, 0x83, 0x30, 0x9d, 0xcd, 0xe, 0x2e, 0x73, 0x2c, 0x8f, 0x9a, 0xa9, 0xfa, 0x4a, 0x55, 0x7f, 0x2d, 0x33, 0xcf, + 0x8c, 0xa5, 0x6f, 0x20, 0x4e, 0xa1, 0x2a, 0x40, 0x53, 0xfd, 0xfd, 0x56, 0xab, 0x54, 0xcb, 0x2a, 0xf0, 0x83, 0x9e, 0xb1, 0x71, 0x77, 0x51, 0x92, 0xb3, 0x2, 0xbc, 0xf0, 0xb6, + 0xdc, 0x29, 0xf0, 0x6f, 0xee, 0xfa, 0x41, 0x51, 0x65, 0x18, 0x97, 0x4c, 0x36, 0x9b, 0x3b, 0xd5, 0xcd, 0xbf, 0x3f, 0x6f, 0xda, 0x34, 0xfd, 0x76, 0xe7, 0xce, 0x58, 0xab, 0x40, + 0xf7, 0x69, 0xaf, 0xdf, 0x69, 0x70, 0xd8, 0x53, 0xe4, 0x20, 0x6, 0xb2, 0x96, 0xcc, 0x67, 0xca, 0x99, 0x1f, 0xb6, 0x9a, 0x7e, 0xe4, 0xf0, 0xc0, 0x61, 0x49, 0x52, 0xfa, 0xd3, + 0xb, 0x8b, 0x56, 0x35, 0xff, 0xfe, 0xf9, 0xda, 0x1d, 0x7, 0x22, 0x13, 0xcb, 0x34, 0x98, 0xb8, 0x6, 0x44, 0xba, 0xf3, 0x1, 0x78, 0xf9, 0xe2, 0x7b, 0x8a, 0xd6, 0x3d, 0xb2, + 0xf4, 0xc6, 0xa8, 0xbb, 0x2b, 0xe2, 0xac, 0xf0, 0x1e, 0x5b, 0xb6, 0xc4, 0x73, 0x79, 0x9c, 0xd2, 0x8e, 0x6b, 0x7f, 0xf6, 0xb2, 0x6c, 0x56, 0x17, 0xcd, 0x98, 0xa1, 0xd5, 0xdb, + 0xb7, 0xc7, 0x12, 0x80, 0x26, 0xd8, 0x9c, 0xef, 0xcb, 0xb5, 0x8d, 0x2b, 0x4, 0xfb, 0x1d, 0xff, 0xd0, 0xa4, 0x24, 0x29, 0x95, 0x52, 0x2a, 0xff, 0x5d, 0xd7, 0x24, 0x6, 0xb3, + 0x1f, 0x2a, 0xfd, 0x99, 0xcf, 0xa8, 0x79, 0xdc, 0x4b, 0x45, 0xab, 0xd2, 0x7, 0x17, 0xaa, 0xf9, 0x99, 0x67, 0xaa, 0xda, 0xfd, 0xc1, 0x87, 0x6e, 0xb6, 0xc6, 0x7d, 0xe9, 0xc7, + 0x81, 0xbe, 0x95, 0x83, 0xf, 0xdd, 0x6c, 0x49, 0x52, 0xb9, 0xed, 0x2a, 0x6d, 0x57, 0xa7, 0x52, 0xb, 0x1e, 0xe9, 0xf2, 0xbd, 0x13, 0x24, 0xec, 0x1c, 0x40, 0x29, 0x44, 0x0, + 0x3a, 0xab, 0x3f, 0x49, 0x9e, 0x55, 0x60, 0x5c, 0x3, 0x22, 0xdd, 0xbd, 0x63, 0x75, 0xdd, 0x9d, 0x4b, 0xf4, 0xf3, 0x3b, 0x8a, 0xe7, 0xda, 0x5d, 0xbe, 0xf8, 0x1e, 0xcf, 0xe5, + 0x51, 0x72, 0x56, 0x7a, 0x97, 0xdc, 0xf4, 0x4f, 0x83, 0xcb, 0x63, 0xed, 0x75, 0x50, 0x3a, 0x5f, 0x1, 0x4a, 0xd2, 0xca, 0x6d, 0xb9, 0xc1, 0x5, 0x4b, 0xd2, 0x23, 0xf9, 0xa7, + 0x64, 0xc4, 0x75, 0x1d, 0xd0, 0x1d, 0x68, 0xe5, 0x4e, 0x77, 0xe3, 0xa, 0xc1, 0xbe, 0xfc, 0x3f, 0x34, 0x29, 0xa5, 0x94, 0xfb, 0xdf, 0xe0, 0x77, 0x9c, 0xb2, 0xff, 0x2f, 0x3e, + 0x5e, 0xe1, 0x67, 0xf5, 0x48, 0xa9, 0xb1, 0x52, 0x53, 0xea, 0xa5, 0xdc, 0xfa, 0x10, 0xfb, 0x35, 0xe1, 0xf4, 0xea, 0x13, 0xab, 0xec, 0xd7, 0x92, 0x77, 0x58, 0x39, 0xd7, 0x9b, + 0x6d, 0xdc, 0xcb, 0xcd, 0x76, 0xce, 0x65, 0xce, 0x76, 0x81, 0x43, 0xb0, 0x69, 0x4c, 0xa0, 0xe6, 0x31, 0x49, 0x2d, 0x78, 0xa4, 0xcb, 0x5a, 0x76, 0xc1, 0x2c, 0xcf, 0x95, 0x61, + 0xc2, 0x4f, 0x6a, 0xb0, 0x89, 0xd0, 0xd7, 0xdd, 0xb9, 0x44, 0x2f, 0x3e, 0x74, 0xb1, 0xe7, 0xba, 0x17, 0x1f, 0xba, 0x58, 0xe7, 0x7c, 0x69, 0xb5, 0xa4, 0xa7, 0x62, 0xeb, 0xbf, + 0x56, 0x95, 0x9e, 0x1f, 0x53, 0x1, 0x7e, 0xc9, 0xe3, 0x69, 0xba, 0xf, 0xbc, 0xf9, 0x66, 0xcd, 0x8e, 0xa3, 0xdc, 0xb5, 0xc0, 0xb8, 0x2a, 0xc0, 0x5c, 0x0, 0xa6, 0xf4, 0x77, + 0x8f, 0x6c, 0xb5, 0x97, 0x3d, 0x73, 0xc5, 0x29, 0x45, 0xa7, 0xc5, 0x71, 0x32, 0x81, 0x67, 0xfe, 0xeb, 0x7c, 0x9d, 0x3e, 0x18, 0x7c, 0x7f, 0x7, 0x1f, 0xba, 0xd9, 0x32, 0xe1, + 0xd4, 0x7a, 0xdc, 0x31, 0x76, 0x50, 0x99, 0x75, 0xee, 0xf6, 0xce, 0xf5, 0x66, 0x1b, 0xf7, 0x72, 0x67, 0xa0, 0x7a, 0xb5, 0x33, 0x21, 0x78, 0xf0, 0xa1, 0x9b, 0xad, 0x3, 0xda, + 0xaa, 0x6, 0x92, 0x5a, 0xb4, 0x66, 0x73, 0x72, 0x4f, 0x83, 0x71, 0x57, 0x7f, 0x46, 0xad, 0xaf, 0x5, 0x26, 0xc5, 0x59, 0x1, 0x3e, 0x7c, 0xdf, 0x52, 0xfb, 0xf5, 0x15, 0xd7, + 0x2e, 0xae, 0x49, 0xff, 0x57, 0xb4, 0xb5, 0xe9, 0xfe, 0xad, 0x5b, 0xf5, 0xdf, 0x5b, 0x73, 0x3f, 0xb4, 0x5f, 0x39, 0xf5, 0x54, 0x7b, 0xdd, 0x97, 0x4f, 0x39, 0x45, 0xff, 0xb9, + 0x65, 0x4b, 0x4d, 0x8e, 0xc3, 0x4f, 0xdc, 0xd7, 0x0, 0xfb, 0x32, 0x96, 0x52, 0xb2, 0xf4, 0xf8, 0x25, 0x27, 0xeb, 0xb, 0xab, 0xb6, 0xe5, 0x97, 0x65, 0x7, 0xaf, 0x7, 0xc6, + 0xd6, 0xf3, 0x20, 0x67, 0xe0, 0x49, 0x85, 0x81, 0x98, 0x9, 0x51, 0x82, 0xbf, 0xfa, 0xc4, 0x2a, 0x3b, 0x9c, 0x24, 0x15, 0xbc, 0x76, 0x87, 0x9d, 0x7b, 0xbd, 0xdf, 0x72, 0x67, + 0xa0, 0x7a, 0xb5, 0x33, 0x21, 0xf8, 0xea, 0x13, 0xab, 0xf4, 0xbf, 0x23, 0x5d, 0xd, 0x9a, 0xc6, 0x48, 0x99, 0xde, 0xa2, 0x65, 0x9e, 0xf3, 0xfb, 0xbc, 0xda, 0xba, 0xd7, 0x97, + 0xdb, 0x47, 0x70, 0xf6, 0x5f, 0xb3, 0x65, 0x59, 0x56, 0xaa, 0xca, 0x8b, 0xc0, 0xd, 0x55, 0x1, 0x1a, 0xb9, 0x4a, 0xcf, 0x59, 0xf5, 0xc9, 0xb7, 0x32, 0x8c, 0xd2, 0x51, 0xae, + 0xc1, 0x8e, 0x2b, 0xbf, 0xba, 0x28, 0xb7, 0x3c, 0xf6, 0x9e, 0x73, 0x7e, 0xb9, 0x65, 0x8b, 0xae, 0x99, 0x39, 0xb3, 0x68, 0xf9, 0xbd, 0x9b, 0x37, 0x27, 0x3e, 0xd, 0x26, 0xee, + 0xf0, 0x93, 0xa4, 0x7e, 0x47, 0x5, 0xfe, 0xf0, 0x85, 0xd3, 0x75, 0xc5, 0x6f, 0x76, 0xe8, 0xc2, 0x47, 0xb7, 0xe9, 0x91, 0x2f, 0x4c, 0xaf, 0xc9, 0x29, 0xb0, 0xe4, 0x5d, 0x1, + 0x4a, 0xe1, 0x2b, 0x40, 0xbf, 0x40, 0x2b, 0xb7, 0x2e, 0xec, 0x3e, 0xcd, 0x7a, 0x13, 0xbc, 0x67, 0x1d, 0x7f, 0x6c, 0xc1, 0x3a, 0xff, 0xf9, 0x7a, 0xe3, 0x3d, 0x96, 0xe5, 0x96, + 0x57, 0x3e, 0x4f, 0xd0, 0x6b, 0x1f, 0x75, 0x3c, 0xf, 0xb0, 0x5e, 0xef, 0xee, 0x70, 0x86, 0x5d, 0x2d, 0x82, 0xcf, 0x70, 0x4e, 0x84, 0x96, 0xa4, 0x7, 0xff, 0x6b, 0x99, 0x24, + 0xe9, 0xaa, 0x2b, 0x6f, 0xae, 0x49, 0xff, 0x19, 0xcb, 0xd2, 0x7f, 0x6c, 0xde, 0x6c, 0x8f, 0xfa, 0x5e, 0x3f, 0x7b, 0xb6, 0x7e, 0xf6, 0xc6, 0x1b, 0xb2, 0x24, 0xdd, 0x30, 0x7b, + 0xb6, 0x7e, 0xba, 0x29, 0xc6, 0xfb, 0x60, 0xcb, 0x88, 0x3b, 0xfc, 0x24, 0xc7, 0x35, 0xc0, 0x94, 0x74, 0xcd, 0x9a, 0x5d, 0x5, 0xcb, 0x6b, 0x35, 0x1a, 0xec, 0xc, 0xbc, 0x7a, + 0x51, 0x6e, 0x2, 0xbc, 0x55, 0xf4, 0x42, 0x3a, 0x7e, 0xca, 0x68, 0x65, 0xb3, 0x56, 0xd1, 0xbc, 0xbc, 0x30, 0xf3, 0xf5, 0xea, 0x75, 0x8e, 0x5f, 0x25, 0x4a, 0x5e, 0xbf, 0x77, + 0x87, 0x5f, 0xcf, 0x4d, 0x4a, 0xad, 0xbc, 0x67, 0x95, 0x3e, 0xa7, 0x4b, 0xa, 0xda, 0x7d, 0x4e, 0x97, 0x68, 0xe5, 0x3d, 0xab, 0xe4, 0x75, 0xfa, 0x1b, 0xe5, 0x7d, 0xc4, 0x17, + 0x7c, 0xf2, 0x39, 0x49, 0x83, 0x15, 0xa0, 0xfb, 0xbf, 0x66, 0x7d, 0x5c, 0x46, 0x64, 0xb2, 0xf6, 0x97, 0x24, 0x5d, 0x7d, 0xf9, 0x8d, 0xba, 0xfa, 0xf2, 0x1b, 0x8b, 0x96, 0xc7, + 0xe5, 0xba, 0x59, 0xb3, 0x94, 0xce, 0x66, 0x95, 0xc9, 0xcf, 0xfb, 0x93, 0xf2, 0x73, 0x1, 0xf3, 0xf3, 0xff, 0xbe, 0x31, 0xa7, 0xfc, 0xc3, 0x2, 0x1a, 0x59, 0x5f, 0x3a, 0xab, + 0xbe, 0x4c, 0xd6, 0xe, 0x42, 0xa3, 0x3f, 0x63, 0xa9, 0x2f, 0x9d, 0x2d, 0xa8, 0x10, 0x1b, 0x45, 0x36, 0x6b, 0x15, 0x7c, 0xd, 0x38, 0xbf, 0x6, 0x9c, 0x5f, 0x59, 0xfb, 0x2b, + 0xe3, 0xfa, 0x2a, 0x6c, 0x67, 0x29, 0xe3, 0xfa, 0x72, 0xaf, 0x77, 0xb6, 0x69, 0x54, 0x56, 0x44, 0xb7, 0x3d, 0xc5, 0x7e, 0xa, 0x1c, 0x65, 0x5, 0x69, 0xa6, 0xc1, 0x98, 0x53, + 0x5f, 0xe7, 0x7f, 0x9d, 0xeb, 0xe3, 0xe2, 0x1e, 0x4, 0xa9, 0xf5, 0xa0, 0xc8, 0xf2, 0xd7, 0x5f, 0xd7, 0x2d, 0xa7, 0x9d, 0xa6, 0x65, 0x1b, 0x37, 0xda, 0xff, 0x98, 0x9b, 0x20, + 0xfc, 0xd7, 0x8d, 0x1b, 0x75, 0xeb, 0xe9, 0xa7, 0x47, 0xda, 0x5f, 0xb9, 0xdb, 0xd8, 0xda, 0xe7, 0x9c, 0x5c, 0xd3, 0x5b, 0xdd, 0xcc, 0xf5, 0xbe, 0xdb, 0x9e, 0xcb, 0x7d, 0x4e, + 0xc7, 0xdd, 0x9f, 0x3a, 0x41, 0xdf, 0x7a, 0x76, 0x8f, 0xfa, 0xd2, 0x59, 0xdd, 0xfa, 0xec, 0x1e, 0x2d, 0xfd, 0x54, 0x75, 0xb7, 0x6b, 0x95, 0xd3, 0xbc, 0x7a, 0x89, 0xd2, 0x7, + 0x6f, 0xf7, 0x99, 0x6, 0xf3, 0x71, 0x35, 0xaf, 0x5e, 0x22, 0xe9, 0x6f, 0x3, 0xed, 0xb3, 0x38, 0x84, 0xac, 0xa2, 0x97, 0x65, 0x7f, 0xd3, 0xad, 0xf2, 0x6d, 0xac, 0xc2, 0xff, + 0x6b, 0x68, 0x26, 0xfc, 0xaa, 0xbd, 0xfe, 0x27, 0x85, 0x8, 0xc0, 0x9e, 0x9b, 0x94, 0x5a, 0xa9, 0x55, 0xf6, 0x60, 0x48, 0xa9, 0xea, 0x2f, 0x6a, 0xce, 0x80, 0x33, 0xa1, 0xe7, + 0x3c, 0x5, 0x8e, 0x3b, 0x0, 0x9d, 0x15, 0xde, 0xb5, 0x17, 0x5e, 0x5f, 0xf3, 0xdb, 0x68, 0xd2, 0xd9, 0xac, 0xee, 0xee, 0xe8, 0x28, 0x98, 0xc, 0x6d, 0xaa, 0xbf, 0x6f, 0x9f, + 0x71, 0x46, 0xa4, 0x7d, 0x95, 0x7b, 0x80, 0x81, 0xf3, 0x61, 0x9, 0xb5, 0x7a, 0xd8, 0x41, 0x7f, 0x3a, 0xab, 0xef, 0xff, 0xdf, 0x3b, 0xf6, 0x7b, 0x53, 0x9, 0xde, 0xfa, 0x6c, + 0xee, 0x14, 0xac, 0x2f, 0xee, 0x9, 0xe9, 0xd9, 0xf, 0xd5, 0xfc, 0xe8, 0xf7, 0x94, 0x3e, 0xf8, 0xfd, 0xa2, 0x55, 0xcd, 0x8f, 0x7e, 0x4f, 0xd2, 0x87, 0x81, 0x77, 0x39, 0x30, + 0x50, 0x7c, 0xcc, 0x5e, 0xa7, 0xac, 0xbe, 0x6d, 0x3c, 0xdb, 0xf9, 0x4c, 0x8c, 0xb7, 0x4a, 0xbe, 0x6d, 0x28, 0x51, 0x84, 0x9f, 0x14, 0x20, 0x0, 0xeb, 0xe1, 0x7a, 0xe0, 0x7, + 0xbd, 0x63, 0x75, 0xd9, 0xe2, 0x9f, 0x24, 0xd6, 0x7f, 0x3d, 0x4c, 0x83, 0x91, 0xa4, 0xef, 0x9c, 0x71, 0x86, 0x7e, 0xf0, 0x97, 0xbf, 0x48, 0x2a, 0xc, 0xbe, 0x7f, 0xce, 0x2f, + 0x1b, 0xaa, 0x9c, 0xa7, 0xbe, 0x8b, 0xdb, 0xa7, 0x14, 0xfc, 0x8b, 0xfb, 0xad, 0x73, 0xa6, 0xc4, 0x7f, 0x0, 0xd9, 0xdc, 0x9d, 0x20, 0xcd, 0xbf, 0xba, 0xd5, 0x63, 0xe5, 0xe1, + 0x50, 0xbb, 0x1c, 0x18, 0x28, 0x9e, 0xdc, 0x6e, 0x2b, 0x2e, 0x6, 0xbd, 0x1b, 0x44, 0x58, 0x29, 0xe, 0x37, 0x15, 0x7, 0xa0, 0x33, 0xfc, 0x9c, 0x55, 0x60, 0xa9, 0x6b, 0x7f, + 0x51, 0x7, 0x66, 0x77, 0xcf, 0xb8, 0x28, 0x77, 0x17, 0x98, 0xb3, 0x2, 0xfc, 0xd9, 0xef, 0xee, 0xb3, 0x5f, 0x7f, 0xfd, 0xb3, 0xd7, 0xd6, 0xa4, 0xff, 0x8c, 0x63, 0x22, 0xf4, + 0x77, 0x3f, 0xfa, 0x51, 0x7b, 0xf9, 0x77, 0x36, 0xe4, 0x6, 0x20, 0x86, 0xfa, 0xf, 0x77, 0x5f, 0xc6, 0xd2, 0xf5, 0x7f, 0x3d, 0xa9, 0x60, 0xda, 0xcb, 0xd, 0x67, 0x4d, 0xaa, + 0xdd, 0x34, 0x98, 0x6c, 0xf0, 0xa, 0xaf, 0x1c, 0xbf, 0xeb, 0x70, 0x85, 0x67, 0xab, 0x25, 0xe3, 0xaf, 0xe4, 0x5f, 0xfc, 0x6b, 0xf, 0x1c, 0xd2, 0xdc, 0x2f, 0xe7, 0x46, 0x85, + 0x3b, 0x1e, 0x38, 0xa4, 0xb9, 0x57, 0x86, 0x1b, 0x59, 0xae, 0x17, 0x51, 0x5d, 0xfb, 0x33, 0x62, 0xbb, 0x6, 0x18, 0xe7, 0xad, 0x70, 0x49, 0x71, 0x57, 0x80, 0x37, 0xfe, 0xcd, + 0x35, 0xb9, 0xe5, 0x35, 0xea, 0xdf, 0x4c, 0x84, 0xfe, 0xf6, 0x86, 0xd, 0xb2, 0x2c, 0x4b, 0xff, 0xf2, 0xb1, 0x8f, 0xe9, 0xb6, 0x3f, 0xff, 0x39, 0x96, 0xe7, 0x1, 0xd6, 0xa3, + 0xbe, 0xb4, 0x6b, 0xce, 0x5f, 0xd1, 0x7d, 0xc1, 0x31, 0x1f, 0x40, 0x36, 0x5c, 0x95, 0x57, 0xca, 0xc0, 0xc0, 0xe0, 0xdf, 0x5e, 0xc7, 0x83, 0x7d, 0x3a, 0xfd, 0xca, 0xd1, 0x83, + 0x2b, 0x2b, 0x3d, 0x65, 0xf5, 0xa9, 0x14, 0x37, 0x3d, 0xd4, 0x27, 0x29, 0x17, 0x7c, 0x46, 0xc7, 0x83, 0x87, 0x34, 0xfb, 0x8a, 0x51, 0xfe, 0x7, 0x54, 0x1f, 0x77, 0x7d, 0x94, + 0x14, 0xd5, 0xe9, 0xaf, 0x54, 0x45, 0x0, 0x9a, 0x2a, 0xb0, 0x96, 0x13, 0x9f, 0xbb, 0x7b, 0xeb, 0xe7, 0x61, 0x8, 0x92, 0x74, 0xcf, 0x73, 0xbf, 0x94, 0x24, 0xdd, 0xfc, 0x89, + 0xaf, 0xd6, 0xa4, 0xff, 0xb4, 0x65, 0x15, 0x3d, 0xf8, 0x20, 0x1d, 0xf1, 0x33, 0x0, 0xeb, 0x99, 0x3d, 0xca, 0x9b, 0x52, 0x51, 0xd5, 0x97, 0xaa, 0xc5, 0x44, 0xc0, 0x58, 0x2a, + 0xc0, 0xc2, 0x9f, 0xa9, 0x8d, 0xf, 0xf6, 0xd, 0x6, 0x54, 0xa0, 0xc1, 0x8d, 0x82, 0x25, 0x25, 0xd, 0x38, 0xaa, 0xce, 0x82, 0x7, 0xa2, 0xe6, 0xc3, 0xaf, 0xe2, 0x9, 0xcb, + 0x26, 0x2c, 0xa3, 0x9b, 0xe4, 0x5c, 0x52, 0xd4, 0xd5, 0x9f, 0xe4, 0xa, 0xc0, 0x69, 0xd3, 0x4e, 0xa, 0xd6, 0xc1, 0x32, 0xa9, 0x65, 0x5a, 0xf0, 0xc2, 0x63, 0xd7, 0xae, 0x9d, + 0xa1, 0x7e, 0x52, 0x13, 0xaf, 0x0, 0x5d, 0x1, 0xb8, 0xe8, 0x9c, 0xaf, 0xe4, 0x96, 0xd7, 0xa8, 0xff, 0x81, 0x61, 0x14, 0x76, 0x5e, 0xfa, 0xd2, 0x59, 0xcf, 0xf0, 0xcb, 0x3d, + 0x14, 0x41, 0x6a, 0xc4, 0x1a, 0x78, 0x60, 0xc0, 0xd2, 0xd6, 0x95, 0x85, 0x95, 0xe5, 0x1b, 0xf, 0xf7, 0xeb, 0x94, 0x4b, 0x8f, 0xf6, 0xfc, 0x76, 0xde, 0x7c, 0xf4, 0xb0, 0xda, + 0xbe, 0x78, 0xb4, 0x4a, 0x5d, 0x20, 0x2c, 0xf7, 0xa7, 0xb0, 0x75, 0xe5, 0x61, 0xcd, 0xb8, 0xf8, 0x23, 0x92, 0xa4, 0xb3, 0x3e, 0x56, 0x7e, 0xd2, 0x73, 0x65, 0x13, 0x9d, 0xfd, + 0x26, 0x4a, 0x97, 0xdb, 0x3e, 0x58, 0x68, 0x46, 0x59, 0xfd, 0x49, 0x1e, 0x15, 0x60, 0x9b, 0xe3, 0x3e, 0xd3, 0xce, 0xce, 0xce, 0x82, 0xf7, 0x7e, 0xca, 0xb5, 0x73, 0xae, 0xef, + 0xec, 0xc, 0xff, 0xa1, 0x45, 0xdd, 0xbd, 0xc9, 0x5e, 0x3, 0xac, 0x37, 0x8b, 0xd6, 0xaf, 0x4f, 0xfa, 0x10, 0x6a, 0xca, 0x8c, 0xf2, 0xba, 0x1f, 0x85, 0x55, 0xd3, 0x27, 0xc2, + 0x44, 0xcc, 0x1d, 0x7e, 0xc6, 0x9b, 0x8e, 0xe5, 0xd3, 0x2f, 0x1a, 0xa9, 0x1d, 0x8f, 0x1d, 0xb1, 0xdf, 0x3b, 0x47, 0x8e, 0xcd, 0xf2, 0x93, 0xfe, 0xb1, 0xf0, 0x9e, 0xb6, 0x9d, + 0xbf, 0x3e, 0xa2, 0x52, 0xb6, 0xaf, 0xfe, 0x50, 0xd3, 0xbe, 0xd0, 0x5c, 0x93, 0x7, 0xa2, 0x46, 0x31, 0x51, 0x3a, 0x8e, 0xea, 0x4f, 0xf2, 0x39, 0x5, 0xee, 0xee, 0xee, 0x51, + 0x6f, 0x6f, 0x4f, 0xc1, 0x7b, 0x3f, 0xe5, 0xda, 0x39, 0xd7, 0xef, 0xd9, 0xf3, 0x56, 0xa8, 0x83, 0xcc, 0x4b, 0x49, 0xa3, 0x2c, 0xa9, 0xbf, 0x44, 0x93, 0x51, 0xf9, 0x76, 0xb1, + 0x48, 0x2d, 0x5f, 0x7b, 0xbf, 0x75, 0x4b, 0xfb, 0x55, 0x92, 0x6, 0xab, 0x3f, 0xa7, 0xe5, 0x6b, 0xef, 0x8f, 0xb5, 0xff, 0x9d, 0x92, 0x75, 0x52, 0x89, 0x6, 0x3b, 0xf3, 0xed, + 0x62, 0xea, 0x3f, 0x69, 0xa9, 0xe7, 0x76, 0xf4, 0x5a, 0xed, 0x27, 0xe4, 0xae, 0x91, 0xe5, 0xc2, 0xaf, 0x30, 0xf8, 0x5e, 0xe8, 0x3a, 0xe4, 0x7c, 0x1b, 0x79, 0xff, 0xba, 0xe1, + 0x7a, 0x4b, 0xff, 0xf6, 0xef, 0xfe, 0x2d, 0x6e, 0xb8, 0x3e, 0x96, 0xfe, 0x9d, 0xe1, 0xe7, 0xf5, 0x5e, 0x2a, 0x1f, 0x78, 0x5e, 0x76, 0x3d, 0x9e, 0xd6, 0xc9, 0x57, 0x85, 0x3e, + 0xac, 0x9a, 0x8b, 0xba, 0xfa, 0x93, 0x3c, 0x2, 0xd0, 0x5d, 0xa1, 0x55, 0x5a, 0xb1, 0x95, 0x6b, 0x57, 0x4d, 0xe5, 0xe7, 0x50, 0x22, 0x4, 0x63, 0xd, 0x3f, 0xbb, 0x7f, 0x67, + 0x8, 0x3a, 0xc5, 0x1c, 0x7e, 0x76, 0xff, 0xee, 0x10, 0x5c, 0x36, 0x6f, 0x9e, 0x16, 0xad, 0x5f, 0x3f, 0xd4, 0xc3, 0xcf, 0x48, 0xad, 0xdd, 0xd3, 0x67, 0xfd, 0xd5, 0x94, 0x51, + 0x85, 0x55, 0x5f, 0x4a, 0xfa, 0xf3, 0x3b, 0xfd, 0xf6, 0xdb, 0x38, 0xfb, 0xf7, 0xd, 0xc1, 0x98, 0xc2, 0xf, 0xf1, 0x55, 0x7f, 0x52, 0x99, 0x53, 0x60, 0x2f, 0xd5, 0x9e, 0x16, + 0x47, 0x10, 0x84, 0x1e, 0x21, 0x58, 0x93, 0xf0, 0xb3, 0xfb, 0x77, 0x87, 0x60, 0x8d, 0xc2, 0xcf, 0xee, 0xdf, 0x19, 0x82, 0xc3, 0x28, 0xfc, 0x8c, 0xd4, 0xab, 0xef, 0xf6, 0x5b, + 0x33, 0x27, 0x7c, 0xc4, 0xe, 0xbf, 0xcd, 0xef, 0x7d, 0x98, 0x7f, 0x55, 0x9b, 0xfe, 0x8b, 0x42, 0xb0, 0x8a, 0xf0, 0xdb, 0x3f, 0xba, 0x2f, 0x9a, 0xa3, 0x1a, 0xa2, 0xa2, 0xbc, + 0xeb, 0xc3, 0x8b, 0xef, 0x29, 0xb0, 0x97, 0x6a, 0x4f, 0x8b, 0x9d, 0xcb, 0xab, 0xe4, 0x8, 0xc1, 0x9a, 0x86, 0x9f, 0xdd, 0xbf, 0x9, 0xc1, 0x1a, 0x87, 0x9f, 0xdd, 0xbf, 0x9, + 0xc1, 0x61, 0x16, 0x7e, 0x46, 0x6a, 0xcb, 0x81, 0xf, 0xad, 0x13, 0xc7, 0x35, 0x6b, 0xf7, 0xc1, 0xb4, 0x94, 0xc0, 0x9f, 0xbf, 0x1d, 0x82, 0x55, 0x56, 0x7e, 0x4, 0x60, 0x79, + 0x71, 0x85, 0x9f, 0x54, 0xc1, 0x29, 0xb0, 0x97, 0xa8, 0x4e, 0x8b, 0xab, 0x94, 0xf, 0xc1, 0xc4, 0x7e, 0xf9, 0x53, 0xcb, 0xd7, 0xde, 0x9f, 0x68, 0xff, 0x3b, 0x73, 0x17, 0xc1, + 0x12, 0xb, 0xbf, 0x84, 0x3f, 0xf2, 0x32, 0xb5, 0xfb, 0x60, 0x3a, 0xd1, 0x3f, 0x7f, 0xdd, 0x70, 0x7d, 0xa2, 0x7f, 0xfe, 0xa8, 0x5e, 0x35, 0x7f, 0x79, 0x91, 0x3e, 0x99, 0xb5, + 0x81, 0xfa, 0x8e, 0xb4, 0xff, 0x9f, 0x5e, 0x34, 0xd7, 0x3a, 0xd2, 0xdb, 0x2d, 0x49, 0x1a, 0x39, 0x26, 0x37, 0x95, 0xc0, 0xbc, 0x37, 0x46, 0x8e, 0x19, 0x6f, 0x2f, 0x6b, 0x9a, + 0x3c, 0xbd, 0x60, 0x5d, 0x66, 0xef, 0x8e, 0x82, 0x65, 0x99, 0xbd, 0x3b, 0xec, 0xfd, 0x38, 0xb9, 0xf7, 0x69, 0xf6, 0xfb, 0x8d, 0xc7, 0x3a, 0xf8, 0x5, 0xc6, 0xb0, 0x15, 0x76, + 0x22, 0xb4, 0xf5, 0xa7, 0x56, 0xef, 0xf, 0x28, 0x59, 0xd0, 0xd5, 0x15, 0xf7, 0xbf, 0x8a, 0xd6, 0x17, 0xff, 0xe4, 0xdd, 0xf7, 0xa3, 0xb, 0x62, 0xef, 0x5b, 0x92, 0xac, 0x83, + 0xef, 0x78, 0xf, 0xe7, 0x8f, 0x9b, 0xba, 0x2f, 0x70, 0xff, 0x27, 0x9f, 0x3e, 0x5e, 0xce, 0x39, 0x54, 0xdb, 0x36, 0x76, 0x6b, 0xf6, 0xd9, 0xd3, 0x8a, 0xda, 0x4d, 0x3d, 0x76, + 0xa2, 0xcf, 0x1e, 0x6, 0xaf, 0xb3, 0xbe, 0xf8, 0xc2, 0x7e, 0x7d, 0xfa, 0xfc, 0xd9, 0x9e, 0xad, 0x32, 0x99, 0xc2, 0xed, 0xdf, 0xf9, 0x20, 0x9d, 0x7b, 0xf1, 0x58, 0x90, 0xa3, + 0x5, 0x86, 0x96, 0x30, 0x1, 0xe8, 0x1b, 0x7e, 0x92, 0xb4, 0x6c, 0xd6, 0x2c, 0x2d, 0xda, 0xbc, 0x39, 0xae, 0x20, 0xf2, 0xd, 0x3f, 0x49, 0x6a, 0x5f, 0x36, 0x4b, 0x6b, 0x17, + 0xc5, 0xd6, 0xb7, 0x54, 0x22, 0xfc, 0x24, 0x69, 0xcd, 0x8a, 0x9, 0xba, 0xe0, 0xea, 0x3, 0x81, 0xfa, 0x9f, 0x33, 0x73, 0x46, 0xc1, 0xfb, 0x6d, 0x1b, 0x37, 0x68, 0xea, 0xb1, + 0xcd, 0x6a, 0x99, 0xdc, 0xaa, 0x9e, 0x3, 0xef, 0x16, 0xac, 0xcb, 0x64, 0xd2, 0x45, 0xdb, 0xb7, 0x4c, 0xce, 0xfd, 0x79, 0xbc, 0xbf, 0xb7, 0x4b, 0x92, 0xd4, 0xb5, 0xbf, 0x4f, + 0x73, 0x66, 0xce, 0x28, 0xd8, 0x76, 0xec, 0x84, 0xe2, 0x7, 0x5, 0xb4, 0x4c, 0x36, 0xaf, 0x5e, 0xa8, 0xf4, 0x50, 0x81, 0x21, 0x27, 0xe8, 0x13, 0x9d, 0xec, 0xf0, 0x3b, 0x77, + 0xf7, 0x6e, 0xdf, 0x46, 0xcb, 0x66, 0xcd, 0x92, 0xa2, 0x9f, 0x96, 0x6f, 0x87, 0xdf, 0xca, 0x73, 0xfd, 0xfb, 0x6e, 0x5f, 0x16, 0x4b, 0xdf, 0x92, 0x23, 0xfc, 0xc6, 0x4e, 0xd9, + 0xeb, 0xdb, 0x68, 0xcd, 0x8a, 0x9, 0x81, 0xfa, 0xef, 0x39, 0xf0, 0xae, 0xfd, 0xe5, 0x36, 0x76, 0xc2, 0x94, 0x82, 0xaf, 0x96, 0xc9, 0xad, 0x5, 0x5f, 0x52, 0x2e, 0xf8, 0x4c, + 0xf8, 0xb9, 0xb7, 0x35, 0x81, 0xe9, 0xec, 0xc3, 0xb4, 0xf7, 0xda, 0x6, 0x18, 0x6e, 0x42, 0x9d, 0x2, 0x9f, 0xbb, 0x7b, 0xb7, 0x5e, 0x38, 0xf1, 0xc4, 0xa8, 0x8f, 0xa5, 0x22, + 0x2b, 0xcf, 0xdd, 0xad, 0x4b, 0x5f, 0x48, 0xa6, 0x6f, 0x29, 0x17, 0x7e, 0x3d, 0xef, 0x4e, 0x2e, 0xdf, 0xb0, 0xd2, 0xfd, 0x79, 0x54, 0x67, 0x46, 0xa9, 0x90, 0x6a, 0x99, 0xdc, + 0xaa, 0xa6, 0xa6, 0xdc, 0x87, 0x30, 0x7a, 0x55, 0x86, 0x7e, 0xdb, 0x96, 0xda, 0x6, 0x18, 0x6e, 0x42, 0x5, 0x60, 0x52, 0xe1, 0x27, 0x29, 0xd1, 0xf0, 0x93, 0x14, 0x69, 0xf8, + 0x95, 0x63, 0xaa, 0x3c, 0x37, 0x77, 0x5, 0xd7, 0x32, 0xb9, 0xb5, 0xe0, 0xbd, 0x79, 0xed, 0x5e, 0x6e, 0xc2, 0xf, 0x40, 0x4e, 0x43, 0x7e, 0x2a, 0xdc, 0x50, 0xb5, 0x69, 0xcb, + 0xf6, 0x82, 0xf7, 0x7e, 0xa7, 0xc5, 0xce, 0x60, 0xf4, 0x3a, 0x9d, 0x75, 0x5f, 0x17, 0x74, 0x6, 0xdf, 0xd8, 0x9, 0x53, 0xd4, 0x73, 0xe0, 0x5d, 0x35, 0x35, 0x35, 0x7b, 0xee, + 0x1f, 0x18, 0x4e, 0x8, 0xc0, 0x3a, 0xe5, 0x77, 0xa, 0xeb, 0xe, 0x35, 0xaf, 0x53, 0x5a, 0x13, 0x6c, 0x5e, 0x15, 0x1f, 0xa1, 0x7, 0xc, 0x22, 0x0, 0x13, 0xf6, 0xe4, 0xe3, + 0xc5, 0x1f, 0x27, 0xf9, 0xe2, 0xb, 0xfb, 0x3d, 0xe7, 0x2, 0x4a, 0xb9, 0xf9, 0x7c, 0x5e, 0xf3, 0xfc, 0x8c, 0x6d, 0x1b, 0xbb, 0xb5, 0x4d, 0xdd, 0x45, 0x6d, 0xbd, 0xe6, 0x1, + 0x2, 0xc3, 0x1d, 0x1, 0x98, 0xb0, 0x4f, 0x2c, 0x3c, 0xce, 0x67, 0x4d, 0xf1, 0xf2, 0xae, 0xfd, 0x7d, 0x7a, 0x63, 0x5d, 0xb7, 0xce, 0x39, 0xd7, 0x6f, 0x4e, 0xa0, 0xbb, 0xea, + 0x3b, 0xce, 0xe7, 0xb5, 0xc3, 0xef, 0xfc, 0x47, 0xd4, 0x81, 0xa1, 0x8e, 0x0, 0x4c, 0x98, 0xd7, 0x68, 0x6c, 0x53, 0x53, 0xb3, 0x3d, 0x3a, 0xec, 0x3c, 0x65, 0x9d, 0x7a, 0x6c, + 0xb3, 0xb6, 0xe5, 0x2b, 0x3a, 0xe7, 0x75, 0xc0, 0x72, 0x73, 0xfe, 0xca, 0xad, 0x7, 0x86, 0x2b, 0x2, 0x30, 0x61, 0xee, 0x91, 0xde, 0xf7, 0xf7, 0x76, 0x29, 0x93, 0x49, 0x97, + 0x1d, 0xbd, 0x7d, 0x7f, 0x6f, 0x97, 0xbd, 0x6d, 0xb9, 0x50, 0x33, 0x3, 0x1f, 0xd2, 0x60, 0x18, 0x12, 0x84, 0x40, 0xf0, 0x0, 0x4c, 0x2d, 0xe8, 0xea, 0xf2, 0xbd, 0x13, 0x64, + 0xdd, 0x31, 0xb9, 0x4f, 0x9c, 0x5a, 0xb4, 0x79, 0xb3, 0x14, 0xfd, 0xdd, 0x18, 0xa9, 0x47, 0x17, 0x74, 0xf9, 0xde, 0x9, 0xb2, 0x7b, 0x5d, 0xae, 0xef, 0xb5, 0x8b, 0x62, 0xe9, + 0x5b, 0x92, 0x52, 0xe3, 0xa6, 0xee, 0xf3, 0xbd, 0x13, 0xe4, 0x8f, 0x4f, 0xf, 0x48, 0x92, 0x2e, 0xb8, 0xfa, 0x40, 0xa0, 0xfe, 0xdd, 0x83, 0x12, 0xce, 0xea, 0xcf, 0x84, 0xa0, + 0xb3, 0x4a, 0xcc, 0x8e, 0x6e, 0xf1, 0xdd, 0xde, 0x19, 0x74, 0x0, 0xca, 0xb, 0x53, 0x1, 0xa6, 0x16, 0x74, 0x75, 0x59, 0xf9, 0xbb, 0x3d, 0x8a, 0xc4, 0x14, 0x7e, 0x76, 0xdf, + 0x8f, 0x2e, 0xe8, 0xb2, 0xf2, 0x77, 0x7b, 0x14, 0x89, 0x31, 0xfc, 0xec, 0xfe, 0xc7, 0x4d, 0xdd, 0x67, 0xe5, 0xef, 0xf6, 0x28, 0x12, 0x34, 0xfc, 0xa4, 0xd2, 0x95, 0x98, 0xbb, + 0x3a, 0xdc, 0xb4, 0x65, 0xbb, 0x46, 0xf4, 0x75, 0xeb, 0x9d, 0xf, 0xc6, 0x6b, 0xea, 0xb1, 0xcd, 0x5, 0xdb, 0xbb, 0xef, 0x26, 0x29, 0x75, 0xdb, 0x9c, 0x73, 0x7f, 0xc0, 0x70, + 0x16, 0xf6, 0x14, 0x38, 0x95, 0xbf, 0xdf, 0xd7, 0x73, 0x5d, 0xd8, 0x83, 0xa9, 0xb4, 0xef, 0xfc, 0xfd, 0xbe, 0x49, 0xf4, 0x2d, 0x49, 0xa9, 0xfc, 0xfd, 0xbe, 0xb1, 0xf4, 0xef, + 0x57, 0xc1, 0x79, 0x5, 0xa5, 0x7b, 0x4a, 0x8c, 0x3b, 0xf4, 0xdc, 0xcb, 0xdd, 0x93, 0xa7, 0x81, 0xe1, 0xae, 0x9a, 0x6b, 0x80, 0xf6, 0x2f, 0xbb, 0x65, 0x59, 0x56, 0x9c, 0xf, + 0x2d, 0xac, 0xb3, 0xbe, 0x23, 0xed, 0xbf, 0xd2, 0x7b, 0x72, 0xdd, 0xd5, 0x5a, 0x25, 0x77, 0x75, 0xf8, 0x5, 0xa2, 0xd7, 0xfe, 0x80, 0xe1, 0x88, 0x41, 0x90, 0x84, 0xfd, 0xe1, + 0x77, 0x83, 0xf, 0x8d, 0x35, 0xcf, 0xfd, 0x73, 0xcf, 0xf3, 0x33, 0xcb, 0xb2, 0xa3, 0x5b, 0xa4, 0xd1, 0x2d, 0x7a, 0x73, 0xbb, 0xf4, 0xc6, 0xba, 0x37, 0xec, 0x6d, 0xdc, 0x6d, + 0xdd, 0x9c, 0x6d, 0x6, 0xaf, 0x21, 0x8e, 0xd0, 0x88, 0xbe, 0xf7, 0x23, 0xfa, 0x2e, 0x80, 0xc6, 0x44, 0x0, 0x26, 0xec, 0x93, 0x9f, 0x1d, 0x7c, 0x9e, 0xdf, 0x3b, 0x1f, 0xa4, + 0xb5, 0x6d, 0xa3, 0x79, 0x46, 0xe0, 0xa0, 0x39, 0x33, 0xcf, 0xb4, 0x5f, 0xf7, 0x1c, 0x78, 0x37, 0x7f, 0x3a, 0x7c, 0x92, 0xfd, 0xbe, 0xb0, 0xd2, 0xcb, 0xcd, 0x11, 0x74, 0xdf, + 0xfe, 0xf6, 0xe4, 0xe3, 0x1b, 0xf2, 0xfb, 0xcd, 0xaa, 0x75, 0x62, 0xee, 0x93, 0xd5, 0x32, 0x99, 0x89, 0x3c, 0xf, 0x10, 0xc3, 0x5a, 0xd5, 0x1, 0x18, 0xe7, 0x27, 0x36, 0xd5, + 0x73, 0xdf, 0x51, 0xf5, 0x5f, 0x78, 0x2a, 0x9b, 0xb, 0x32, 0xf3, 0x8c, 0x40, 0xe7, 0xd4, 0x15, 0x73, 0xd, 0xd0, 0x7d, 0x2d, 0x70, 0xec, 0x84, 0x29, 0xbe, 0xf7, 0x2, 0x7b, + 0x31, 0xfb, 0xe6, 0x71, 0x58, 0x40, 0x95, 0x1, 0x18, 0xf7, 0x27, 0x36, 0xd5, 0x6b, 0xdf, 0x51, 0xf6, 0x5f, 0x10, 0x68, 0xfb, 0x7, 0xaf, 0xcb, 0xb9, 0x3, 0xca, 0x2b, 0xb0, + 0x4c, 0xd0, 0xb9, 0x1f, 0x9e, 0xea, 0xc, 0x4c, 0x23, 0x77, 0xea, 0x9b, 0xf5, 0xa8, 0x18, 0x81, 0xe1, 0xab, 0xea, 0xa, 0x30, 0xa9, 0x0, 0x4a, 0xba, 0xef, 0xb8, 0xfa, 0xcf, + 0x8e, 0x6e, 0xb1, 0x9f, 0xd6, 0xe2, 0x37, 0x45, 0xa6, 0x92, 0xca, 0xd0, 0x29, 0x37, 0xe0, 0x31, 0xc2, 0x6e, 0x47, 0xf5, 0x7, 0xe4, 0x70, 0xd, 0xb0, 0xe, 0x95, 0x7a, 0xac, + 0x7d, 0xb9, 0xca, 0xd0, 0xeb, 0xce, 0x12, 0x0, 0xde, 0x42, 0x7, 0x20, 0xd7, 0xfe, 0xa2, 0x51, 0xea, 0xd6, 0x34, 0xe7, 0xb2, 0x4a, 0xe6, 0xf0, 0x39, 0x9f, 0xd, 0xe8, 0xae, + 0x20, 0x73, 0x23, 0xbe, 0xfe, 0x4f, 0x91, 0x1, 0x86, 0xa3, 0xaa, 0x2a, 0x40, 0x4e, 0x7f, 0xa3, 0x63, 0xe6, 0xe5, 0x99, 0xa0, 0xda, 0xb4, 0x65, 0xbb, 0x3d, 0x5a, 0xeb, 0xe6, + 0xf5, 0xa0, 0x53, 0xe7, 0xfb, 0x4c, 0x26, 0x6d, 0xdf, 0x4f, 0x6c, 0x7f, 0xfa, 0x9b, 0xa4, 0xd6, 0x89, 0xa3, 0xa9, 0x8, 0x1, 0x87, 0x50, 0x1, 0x48, 0xf5, 0x17, 0x9d, 0xdf, + 0x3f, 0xf9, 0x46, 0xc1, 0xfb, 0x91, 0x63, 0xc6, 0x6b, 0xdb, 0xc6, 0x6e, 0x1d, 0xe9, 0xed, 0xb6, 0x9f, 0xfc, 0x22, 0x95, 0x7f, 0x9e, 0x9f, 0xf3, 0xb3, 0x83, 0x9d, 0xaf, 0x9d, + 0xeb, 0xff, 0xf0, 0xf2, 0x61, 0xfb, 0x7d, 0x66, 0xef, 0x8e, 0x2a, 0x8f, 0x1c, 0x68, 0x7c, 0xa1, 0x2b, 0x40, 0xaa, 0xbf, 0x68, 0x78, 0x7d, 0x6, 0xb0, 0x24, 0x6d, 0xdb, 0xe8, + 0x7e, 0x56, 0xa0, 0xdf, 0x73, 0x3, 0x73, 0xfe, 0xf8, 0xfc, 0xdb, 0xfa, 0xf4, 0xf9, 0xb3, 0x1d, 0x23, 0xbc, 0x83, 0xcf, 0xc, 0x74, 0x56, 0x8a, 0x99, 0x4c, 0xba, 0xf0, 0xf3, + 0x83, 0x79, 0x1e, 0x20, 0x86, 0xb1, 0xc0, 0x1, 0x48, 0xf5, 0x17, 0x2d, 0xe7, 0xe7, 0x2, 0x3b, 0x7, 0x3d, 0xcc, 0x53, 0x9d, 0x9d, 0x4a, 0x3f, 0xc2, 0xea, 0x6d, 0xcf, 0xc1, + 0x13, 0x37, 0x13, 0x86, 0x5d, 0xfb, 0xfb, 0x82, 0x1f, 0x2c, 0x30, 0xc4, 0x84, 0xaa, 0x0, 0xa9, 0xfe, 0xe2, 0xe1, 0x1c, 0xe9, 0x3d, 0xd2, 0xdb, 0xad, 0xae, 0xfd, 0xe3, 0x8b, + 0x3e, 0x38, 0xdd, 0x1d, 0x6e, 0x66, 0x9b, 0xdc, 0x29, 0xef, 0x78, 0xdf, 0x41, 0x15, 0xe7, 0x76, 0xd9, 0xd1, 0x2d, 0x9a, 0x33, 0xf3, 0xa4, 0xfc, 0x3b, 0x3e, 0x18, 0x1d, 0xc3, + 0x57, 0xa0, 0x0, 0xa4, 0xfa, 0x8b, 0x5e, 0x25, 0xf, 0x28, 0xad, 0xf4, 0x4e, 0xf, 0xe7, 0xa0, 0x89, 0x99, 0x23, 0xe8, 0x57, 0xd, 0x7a, 0x4d, 0x96, 0x6, 0x86, 0x9b, 0x8a, + 0x3, 0x90, 0xbb, 0x3e, 0xe2, 0xe9, 0xdf, 0x19, 0x42, 0xce, 0xb0, 0x72, 0x3e, 0xc0, 0xc0, 0x4, 0x9e, 0xb9, 0x8b, 0xc3, 0x6f, 0x24, 0xb7, 0x6b, 0x7f, 0x5f, 0xd1, 0xc8, 0xb1, + 0xdf, 0x5d, 0x1f, 0x5d, 0xfb, 0xfb, 0x34, 0xc7, 0xfb, 0xb1, 0x86, 0xc0, 0xb0, 0x31, 0x22, 0x48, 0x63, 0x4e, 0x7d, 0xe3, 0xe1, 0xac, 0x2, 0x4b, 0xdd, 0xa6, 0xe6, 0xf7, 0xf9, + 0x21, 0xee, 0x41, 0xe, 0xd3, 0xce, 0xdc, 0x51, 0x62, 0xbe, 0x5a, 0x26, 0xb7, 0x16, 0x4c, 0x8b, 0xe1, 0xe9, 0xd1, 0x18, 0xee, 0xb8, 0x13, 0x24, 0x61, 0xa6, 0x9a, 0xf3, 0x9b, + 0xdb, 0xe7, 0xbc, 0x77, 0xd7, 0xeb, 0x19, 0x80, 0x66, 0xdd, 0xc8, 0x31, 0xe3, 0xb, 0xaa, 0x3f, 0xaf, 0xb0, 0x74, 0xcf, 0x35, 0xe4, 0x14, 0x18, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xe6, 0xff, 0x1, 0xed, 0x72, 0x19, 0xe0, 0x6c, 0xc6, 0xfe, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82}; + +constexpr auto level_data_size = 0x1a2c; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..6b67f32 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,31 @@ +#include "Game.hpp" +#include "Multiplayer.hpp" +#include "thread" + +int main(int argc, char** argv) { + auto& mp = Multiplayer::get(); + +#if KOLYAH_MODE + // std::thread(&Multiplayer::connect, &mp, "Kolyah35").detach(); + std::string name = "Kolyah35"; +#else + if (argc != 2) { + printf("specify ur name in args\n"); + return 1; + } + // std::thread(&Multiplayer::connect, &mp, argv[1]).detach(); + std::string name = argv[1]; +#endif + + std::thread(&Multiplayer::connect, &mp, name.c_str()).detach(); + + Game::get().start(name); + + // printf("hi!\n"); + + // char data = Header::DISCONNECT; + + // Multiplayer::get().sendPacket(&data, 1); + + return 0; +} diff --git a/src/saferaylib.h b/src/saferaylib.h new file mode 100644 index 0000000..a3d4871 --- /dev/null +++ b/src/saferaylib.h @@ -0,0 +1,103 @@ +#pragma once + +#if defined(_WIN32) + // To avoid conflicting windows.h symbols with raylib, some flags are defined + // WARNING: Those flags avoid inclusion of some Win32 headers that could be required + // by user at some point and won't be included... + //------------------------------------------------------------------------------------- + + // If defined, the following flags inhibit definition of the indicated items. + #define NOGDICAPMASKS // CC_*, LC_*, PC_*, CP_*, TC_*, RC_ + #define NOVIRTUALKEYCODES // VK_* + #define NOWINMESSAGES // WM_*, EM_*, LB_*, CB_* + #define NOWINSTYLES // WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* + #define NOSYSMETRICS // SM_* + #define NOMENUS // MF_* + #define NOICONS // IDI_* + #define NOKEYSTATES // MK_* + #define NOSYSCOMMANDS // SC_* + #define NORASTEROPS // Binary and Tertiary raster ops + #define NOSHOWWINDOW // SW_* + #define OEMRESOURCE // OEM Resource values + #define NOATOM // Atom Manager routines + #define NOCLIPBOARD // Clipboard routines + #define NOCOLOR // Screen colors + #define NOCTLMGR // Control and Dialog routines + #define NODRAWTEXT // DrawText() and DT_* + #define NOGDI // All GDI defines and routines + #define NOKERNEL // All KERNEL defines and routines + #define NOUSER // All USER defines and routines + // #define NONLS // All NLS defines and routines + #define NOMB // MB_* and MessageBox() + #define NOMEMMGR // GMEM_*, LMEM_*, GHND, LHND, associated routines + #define NOMETAFILE // typedef METAFILEPICT + #define NOMINMAX // Macros min(a,b) and max(a,b) + #define NOMSG // typedef MSG and associated routines + #define NOOPENFILE // OpenFile(), OemToAnsi, AnsiToOem, and OF_* + #define NOSCROLL // SB_* and scrolling routines + #define NOSERVICE // All Service Controller routines, SERVICE_ equates, etc. + #define NOSOUND // Sound driver routines + #define NOTEXTMETRIC // typedef TEXTMETRIC and associated routines + #define NOWH // SetWindowsHook and WH_* + #define NOWINOFFSETS // GWL_*, GCL_*, associated routines + #define NOCOMM // COMM driver routines + #define NOKANJI // Kanji support stuff. + #define NOHELP // Help engine interface. + #define NOPROFILER // Profiler interface. + #define NODEFERWINDOWPOS // DeferWindowPos routines + #define NOMCX // Modem Configuration Extensions + + #define MMNOSOUND + +// Type required before windows.h inclusion +typedef struct tagMSG* LPMSG; + + #include // Now windows.h won't define CloseWindow, DrawText, etc. +// #include + +// Type required by some unused function... +typedef struct tagBITMAPINFOHEADER { + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} BITMAPINFOHEADER, *PBITMAPINFOHEADER; + + #include + #include + #include + + // Some required types defined for MSVC/TinyC compiler + #if defined(_MSC_VER) || defined(__TINYC__) + #include "propidl.h" + #endif +#endif + +// #define WIN32_LEAN_AND_MEAN +// #define NOMINMAX +// #define NOGDI +#if defined(__linux__) +#include // Now windows.h won't define CloseWindow, DrawText, etc. +#endif +// // Explicitly undefine remaining problematic macros +// #ifdef CloseWindow +// #undef CloseWindow +// #endif +// #ifdef DrawText +// #undef DrawText +// #endif + +#include "raylib.h" + + + +////////////////////////////////////////////////////////////////////////////////////////// + +#define KOLYAH_MODE 0 \ No newline at end of file