From a03990b38c8759d7ccfecf90922c1be3288d0476 Mon Sep 17 00:00:00 2001 From: Sergey Yablokov Date: Tue, 3 Dec 2024 00:56:59 +0100 Subject: [PATCH] Parallel pipeline initialization --- Ray.cpp | 8 +- Ray.h | 6 +- RendererBase.h | 4 +- internal/RendererCPU.h | 9 +- internal/RendererDX.cpp | 744 +++++++--------- internal/RendererDX.h | 3 +- internal/RendererGPU.h | 137 +-- internal/RendererGPU_kernels.h | 75 +- internal/RendererVK.cpp | 820 ++++++++---------- internal/RendererVK.h | 3 +- internal/_CustomTypes.natvis | 6 +- ...nvolution_concat_64_3_64_coop.comp.spv.inl | 5 - ...nvolution_concat_64_3_64_fp16.comp.cso.inl | 5 - ...nvolution_concat_64_3_64_fp16.comp.spv.inl | 5 - ...nvolution_concat_64_3_64_fp32.comp.cso.inl | 5 - ...nvolution_concat_64_3_64_fp32.comp.spv.inl | 5 - ...nvolution_concat_64_6_64_coop.comp.spv.inl | 5 - ...nvolution_concat_64_6_64_fp16.comp.cso.inl | 5 - ...nvolution_concat_64_6_64_fp16.comp.spv.inl | 5 - ...nvolution_concat_64_6_64_fp32.comp.cso.inl | 5 - ...nvolution_concat_64_6_64_fp32.comp.spv.inl | 5 - samples/02_multithreading/main.cpp | 5 +- samples/04_denoising/main.cpp | 11 +- scripts/compile_shaders.py | 19 - tests/test_aux_channels.cpp | 6 +- tests/test_materials.cpp | 7 +- tests/test_scene.cpp | 12 +- 27 files changed, 872 insertions(+), 1053 deletions(-) delete mode 100644 internal/shaders/output/convolution_concat_64_3_64_coop.comp.spv.inl delete mode 100644 internal/shaders/output/convolution_concat_64_3_64_fp16.comp.cso.inl delete mode 100644 internal/shaders/output/convolution_concat_64_3_64_fp16.comp.spv.inl delete mode 100644 internal/shaders/output/convolution_concat_64_3_64_fp32.comp.cso.inl delete mode 100644 internal/shaders/output/convolution_concat_64_3_64_fp32.comp.spv.inl delete mode 100644 internal/shaders/output/convolution_concat_64_6_64_coop.comp.spv.inl delete mode 100644 internal/shaders/output/convolution_concat_64_6_64_fp16.comp.cso.inl delete mode 100644 internal/shaders/output/convolution_concat_64_6_64_fp16.comp.spv.inl delete mode 100644 internal/shaders/output/convolution_concat_64_6_64_fp32.comp.cso.inl delete mode 100644 internal/shaders/output/convolution_concat_64_6_64_fp32.comp.spv.inl diff --git a/Ray.cpp b/Ray.cpp index 8d2833595..c7762d466 100644 --- a/Ray.cpp +++ b/Ray.cpp @@ -51,12 +51,14 @@ extern const std::pair KnownGPUVendors[] = { extern const int KnownGPUVendorsCount = 4; } // namespace Ray -Ray::RendererBase *Ray::CreateRenderer(const settings_t &s, ILog *log, const Bitmask enabled_types) { +Ray::RendererBase *Ray::CreateRenderer(const settings_t &s, ILog *log, + const std::function ¶llel_for, + const Bitmask enabled_types) { #if defined(ENABLE_VK_IMPL) if (enabled_types & eRendererType::Vulkan) { log->Info("Ray: Creating Vulkan renderer %ix%i", s.w, s.h); try { - return Vk::CreateRenderer(s, log); + return Vk::CreateRenderer(s, log, parallel_for); } catch (std::exception &e) { log->Info("Ray: Failed to create Vulkan renderer, %s", e.what()); } @@ -66,7 +68,7 @@ Ray::RendererBase *Ray::CreateRenderer(const settings_t &s, ILog *log, const Bit if (enabled_types & eRendererType::DirectX12) { log->Info("Ray: Creating DirectX12 renderer %ix%i", s.w, s.h); try { - return Dx::CreateRenderer(s, log); + return Dx::CreateRenderer(s, log, parallel_for); } catch (std::exception &e) { log->Info("Ray: Failed to create DirectX12 renderer, %s", e.what()); } diff --git a/Ray.h b/Ray.h index aa743ba40..d72c84068 100644 --- a/Ray.h +++ b/Ray.h @@ -22,8 +22,10 @@ const Bitmask DefaultEnabledRenderTypes = /** @brief Creates renderer @return pointer to created renderer */ -RendererBase *CreateRenderer(const settings_t &s, ILog *log = &g_null_log, - Bitmask enabled_types = DefaultEnabledRenderTypes); +RendererBase * +CreateRenderer(const settings_t &s, ILog *log = &g_null_log, + const std::function ¶llel_for = parallel_for_serial, + Bitmask enabled_types = DefaultEnabledRenderTypes); /** @brief Queries available GPU devices @param log output log diff --git a/RendererBase.h b/RendererBase.h index b923b17a9..fcc64c588 100644 --- a/RendererBase.h +++ b/RendererBase.h @@ -247,6 +247,8 @@ class RendererBase { @param alias_memory enable tensom memory aliasing (to lower memory usage) @param out_props output filter properties */ - virtual void InitUNetFilter(bool alias_memory, unet_filter_properties_t &out_props) = 0; + virtual unet_filter_properties_t + InitUNetFilter(bool alias_memory, + const std::function ¶llel_for = parallel_for_serial) = 0; }; } // namespace Ray \ No newline at end of file diff --git a/internal/RendererCPU.h b/internal/RendererCPU.h index 22ae260dc..4716d85a3 100644 --- a/internal/RendererCPU.h +++ b/internal/RendererCPU.h @@ -311,7 +311,9 @@ template class Renderer : public RendererBase, private SIM void GetStats(stats_t &st) override { st = stats_; } void ResetStats() override { stats_ = {0}; } - void InitUNetFilter(bool alias_memory, unet_filter_properties_t &out_props) override; + unet_filter_properties_t + InitUNetFilter(bool alias_memory, + const std::function ¶llel_for) override; }; } // namespace Cpu namespace Ref { @@ -1250,7 +1252,8 @@ void Ray::Cpu::Renderer::UpdateFilterTable(ePixelFilter filter, floa } template -void Ray::Cpu::Renderer::InitUNetFilter(const bool alias_memory, unet_filter_properties_t &out_props) { +Ray::unet_filter_properties_t Ray::Cpu::Renderer::InitUNetFilter( + const bool alias_memory, const std::function ¶llel_for) { const int total_count = SetupUNetWeights(true, 1, nullptr, nullptr); unet_weights_.resize(total_count); SetupUNetWeights(true, 1, &unet_offsets_, unet_weights_.data()); @@ -1258,6 +1261,7 @@ void Ray::Cpu::Renderer::InitUNetFilter(const bool alias_memory, une unet_alias_memory_ = alias_memory; UpdateUNetFilterMemory(); + unet_filter_properties_t out_props; out_props.pass_count = UNetFilterPasses; for (int i = 0; i < UNetFilterPasses; ++i) { std::fill(&out_props.alias_dependencies[i][0], &out_props.alias_dependencies[i][0] + 4, -1); @@ -1265,6 +1269,7 @@ void Ray::Cpu::Renderer::InitUNetFilter(const bool alias_memory, une out_props.alias_dependencies[i][j] = unet_alias_dependencies_[i][j]; } } + return out_props; } template void Ray::Cpu::Renderer::UpdateUNetFilterMemory() { diff --git a/internal/RendererDX.cpp b/internal/RendererDX.cpp index cb987a295..d78b8a6f6 100644 --- a/internal/RendererDX.cpp +++ b/internal/RendererDX.cpp @@ -102,10 +102,6 @@ namespace Dx { #include "shaders/output/convolution_Img_9_32_fp32.comp.cso.inl" #include "shaders/output/convolution_concat_112_48_96_fp16.comp.cso.inl" #include "shaders/output/convolution_concat_112_48_96_fp32.comp.cso.inl" -#include "shaders/output/convolution_concat_64_3_64_fp16.comp.cso.inl" -#include "shaders/output/convolution_concat_64_3_64_fp32.comp.cso.inl" -#include "shaders/output/convolution_concat_64_6_64_fp16.comp.cso.inl" -#include "shaders/output/convolution_concat_64_6_64_fp32.comp.cso.inl" #include "shaders/output/convolution_concat_64_9_64_fp16.comp.cso.inl" #include "shaders/output/convolution_concat_64_9_64_fp32.comp.cso.inl" #include "shaders/output/convolution_concat_96_32_64_fp16.comp.cso.inl" @@ -182,7 +178,8 @@ namespace Dx { #include "RendererGPU_kernels.h" #undef NS -Ray::Dx::Renderer::Renderer(const settings_t &s, ILog *log) { +Ray::Dx::Renderer::Renderer(const settings_t &s, ILog *log, + const std::function ¶llel_for) { ctx_ = std::make_unique(); const bool res = ctx_->Init(log, s.preferred_device, s.validation_level); if (!res) { @@ -206,48 +203,7 @@ Ray::Dx::Renderer::Renderer(const settings_t &s, ILog *log) { log->Info("SpatialCache is %s", use_spatial_cache_ ? "enabled" : "disabled"); log->Info("============================================================================"); - if (!InitShaders(log)) { - throw std::runtime_error("Error initializing directx shaders!"); - } - - if (!pi_prim_rays_gen_simple_.Init(ctx_.get(), &prog_prim_rays_gen_simple_, log) || - !pi_prim_rays_gen_adaptive_.Init(ctx_.get(), &prog_prim_rays_gen_adaptive_, log) || - !pi_intersect_scene_.Init(ctx_.get(), &prog_intersect_scene_, log) || - !pi_intersect_scene_indirect_.Init(ctx_.get(), &prog_intersect_scene_indirect_, log) || - !pi_intersect_area_lights_.Init(ctx_.get(), &prog_intersect_area_lights_, log) || - !pi_shade_primary_.Init(ctx_.get(), &prog_shade_primary_, log) || - !pi_shade_primary_sky_.Init(ctx_.get(), &prog_shade_primary_sky_, log) || - (use_spatial_cache_ && - !pi_shade_primary_cache_update_.Init(ctx_.get(), &prog_shade_primary_cache_update_, log)) || - (use_spatial_cache_ && - !pi_shade_primary_cache_query_.Init(ctx_.get(), &prog_shade_primary_cache_query_, log)) || - (use_spatial_cache_ && - !pi_shade_primary_cache_query_sky_.Init(ctx_.get(), &prog_shade_primary_cache_query_sky_, log)) || - !pi_shade_secondary_.Init(ctx_.get(), &prog_shade_secondary_, log) || - !pi_shade_secondary_sky_.Init(ctx_.get(), &prog_shade_secondary_sky_, log) || - (use_spatial_cache_ && - !pi_shade_secondary_cache_update_.Init(ctx_.get(), &prog_shade_secondary_cache_update_, log)) || - (use_spatial_cache_ && - !pi_shade_secondary_cache_query_.Init(ctx_.get(), &prog_shade_secondary_cache_query_, log)) || - (use_spatial_cache_ && - !pi_shade_secondary_cache_query_sky_.Init(ctx_.get(), &prog_shade_secondary_cache_query_sky_, log)) || - !pi_shade_sky_.Init(ctx_.get(), &prog_shade_sky_, log) || - !pi_intersect_scene_shadow_.Init(ctx_.get(), &prog_intersect_scene_shadow_, log) || - !pi_prepare_indir_args_.Init(ctx_.get(), &prog_prepare_indir_args_, log) || - !pi_mix_incremental_.Init(ctx_.get(), &prog_mix_incremental_, log) || - !pi_postprocess_.Init(ctx_.get(), &prog_postprocess_, log) || - !pi_filter_variance_.Init(ctx_.get(), &prog_filter_variance_, log) || - !pi_nlm_filter_.Init(ctx_.get(), &prog_nlm_filter_, log) || - (use_hwrt_ && !pi_debug_rt_.Init(ctx_.get(), &prog_debug_rt_, log)) || - !pi_sort_hash_rays_.Init(ctx_.get(), &prog_sort_hash_rays_, log) || - (use_subgroup_ && !pi_sort_init_count_table_.Init(ctx_.get(), &prog_sort_init_count_table_, log)) || - (use_subgroup_ && !pi_sort_reduce_.Init(ctx_.get(), &prog_sort_reduce_, log)) || - (use_subgroup_ && !pi_sort_scan_.Init(ctx_.get(), &prog_sort_scan_, log)) || - (use_subgroup_ && !pi_sort_scan_add_.Init(ctx_.get(), &prog_sort_scan_add_, log)) || - (use_subgroup_ && !pi_sort_scatter_.Init(ctx_.get(), &prog_sort_scatter_, log)) || - !pi_sort_reorder_rays_.Init(ctx_.get(), &prog_sort_reorder_rays_, log) || - (use_spatial_cache_ && !pi_spatial_cache_update_.Init(ctx_.get(), &prog_spatial_cache_update_, log)) || - (use_spatial_cache_ && !pi_spatial_cache_resolve_.Init(ctx_.get(), &prog_spatial_cache_resolve_, log))) { + if (!InitPipelines(log, parallel_for)) { throw std::runtime_error("Error initializing directx pipelines!"); } @@ -1616,137 +1572,101 @@ Ray::GpuImage Ray::Dx::Renderer::get_native_raw_pixels() const { raw_filtered_buf_.handle().views_ref.offset, eGPUResState(raw_filtered_buf_.resource_state)}; } -bool Ray::Dx::Renderer::InitUNetFilterPipelines() { +bool Ray::Dx::Renderer::InitUNetFilterPipelines( + const std::function ¶llel_for) { ILog *log = ctx_->log(); - auto select_unpack_shader = [this](Span default_shader, Span fp16_shader) { - return Inflate(use_fp16_ ? fp16_shader : default_shader); + auto select_shader = [this](Span default_shader, Span fp16_shader) { + return use_fp16_ ? fp16_shader : default_shader; }; - sh_convolution_Img_9_32_ = Shader{"Convolution Img 9 32", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_Img_9_32_fp32_comp_cso, - internal_shaders_output_convolution_Img_9_32_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_32_32_Downsample_ = - Shader{"Convolution 32 32 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_32_Downsample_fp32_comp_cso, - internal_shaders_output_convolution_32_32_Downsample_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_32_48_Downsample_ = - Shader{"Convolution 32 48 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_48_Downsample_fp32_comp_cso, - internal_shaders_output_convolution_32_48_Downsample_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_48_64_Downsample_ = - Shader{"Convolution 48 64 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_48_64_Downsample_fp32_comp_cso, - internal_shaders_output_convolution_48_64_Downsample_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_64_80_Downsample_ = - Shader{"Convolution 64 80 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_80_Downsample_fp32_comp_cso, - internal_shaders_output_convolution_64_80_Downsample_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_64_64_ = Shader{"Convolution 64 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_64_fp32_comp_cso, - internal_shaders_output_convolution_64_64_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_64_32_ = Shader{"Convolution 64 32", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_32_fp32_comp_cso, - internal_shaders_output_convolution_64_32_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_80_96_ = Shader{"Convolution 80 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_80_96_fp32_comp_cso, - internal_shaders_output_convolution_80_96_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_96_96_ = Shader{"Convolution 96 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_96_96_fp32_comp_cso, - internal_shaders_output_convolution_96_96_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_112_112_ = Shader{"Convolution 112 112", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_112_112_fp32_comp_cso, - internal_shaders_output_convolution_112_112_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_96_64_112_ = - Shader{"Convolution Concat 96 64 112", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_96_64_112_fp32_comp_cso, - internal_shaders_output_convolution_concat_96_64_112_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_112_48_96_ = - Shader{"Convolution Concat 112 48 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_112_48_96_fp32_comp_cso, - internal_shaders_output_convolution_concat_112_48_96_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_96_32_64_ = - Shader{"Convolution Concat 96 32 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_96_32_64_fp32_comp_cso, - internal_shaders_output_convolution_concat_96_32_64_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_64_3_64_ = - Shader{"Convolution Concat 64 3 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_3_64_fp32_comp_cso, - internal_shaders_output_convolution_concat_64_3_64_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_64_6_64_ = - Shader{"Convolution Concat 64 6 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_6_64_fp32_comp_cso, - internal_shaders_output_convolution_concat_64_6_64_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_concat_64_9_64_ = - Shader{"Convolution Concat 64 9 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_9_64_fp32_comp_cso, - internal_shaders_output_convolution_concat_64_9_64_fp16_comp_cso), - eShaderType::Comp, log}; - sh_convolution_32_3_img_ = Shader{"Convolution 32 3 Img", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_3_img_fp32_comp_cso, - internal_shaders_output_convolution_32_3_img_fp16_comp_cso), - eShaderType::Comp, log}; - - prog_convolution_Img_9_32_ = Program{"Convolution Img 9 32", ctx_.get(), &sh_convolution_Img_9_32_, log}; - prog_convolution_32_32_Downsample_ = - Program{"Convolution 32 32", ctx_.get(), &sh_convolution_32_32_Downsample_, log}; - prog_convolution_32_48_Downsample_ = - Program{"Convolution 32 48", ctx_.get(), &sh_convolution_32_48_Downsample_, log}; - prog_convolution_48_64_Downsample_ = - Program{"Convolution 48 64", ctx_.get(), &sh_convolution_48_64_Downsample_, log}; - prog_convolution_64_80_Downsample_ = - Program{"Convolution 64 80", ctx_.get(), &sh_convolution_64_80_Downsample_, log}; - prog_convolution_64_64_ = Program{"Convolution 64 64", ctx_.get(), &sh_convolution_64_64_, log}; - prog_convolution_64_32_ = Program{"Convolution 64 32", ctx_.get(), &sh_convolution_64_32_, log}; - prog_convolution_80_96_ = Program{"Convolution 80 96", ctx_.get(), &sh_convolution_80_96_, log}; - prog_convolution_96_96_ = Program{"Convolution 96 96", ctx_.get(), &sh_convolution_96_96_, log}; - prog_convolution_112_112_ = Program{"Convolution 112 112", ctx_.get(), &sh_convolution_112_112_, log}; - prog_convolution_concat_96_64_112_ = - Program{"Convolution Concat 96 64 112", ctx_.get(), &sh_convolution_concat_96_64_112_, log}; - prog_convolution_concat_112_48_96_ = - Program{"Convolution Concat 112 48 96", ctx_.get(), &sh_convolution_concat_112_48_96_, log}; - prog_convolution_concat_96_32_64_ = - Program{"Convolution Concat 96 32 64", ctx_.get(), &sh_convolution_concat_96_32_64_, log}; - prog_convolution_concat_64_3_64_ = - Program{"Convolution Concat 64 3 64", ctx_.get(), &sh_convolution_concat_64_3_64_, log}; - prog_convolution_concat_64_6_64_ = - Program{"Convolution Concat 64 6 64", ctx_.get(), &sh_convolution_concat_64_6_64_, log}; - prog_convolution_concat_64_9_64_ = - Program{"Convolution Concat 64 9 64", ctx_.get(), &sh_convolution_concat_64_9_64_, log}; - prog_convolution_32_3_img_ = Program{"Convolution 32 3 Img", ctx_.get(), &sh_convolution_32_3_img_, log}; - - return pi_convolution_Img_9_32_.Init(ctx_.get(), &prog_convolution_Img_9_32_, log) && - pi_convolution_32_32_Downsample_.Init(ctx_.get(), &prog_convolution_32_32_Downsample_, log) && - pi_convolution_32_48_Downsample_.Init(ctx_.get(), &prog_convolution_32_48_Downsample_, log) && - pi_convolution_48_64_Downsample_.Init(ctx_.get(), &prog_convolution_48_64_Downsample_, log) && - pi_convolution_64_80_Downsample_.Init(ctx_.get(), &prog_convolution_64_80_Downsample_, log) && - pi_convolution_64_64_.Init(ctx_.get(), &prog_convolution_64_64_, log) && - pi_convolution_64_32_.Init(ctx_.get(), &prog_convolution_64_32_, log) && - pi_convolution_80_96_.Init(ctx_.get(), &prog_convolution_80_96_, log) && - pi_convolution_96_96_.Init(ctx_.get(), &prog_convolution_96_96_, log) && - pi_convolution_112_112_.Init(ctx_.get(), &prog_convolution_112_112_, log) && - pi_convolution_concat_96_64_112_.Init(ctx_.get(), &prog_convolution_concat_96_64_112_, log) && - pi_convolution_concat_112_48_96_.Init(ctx_.get(), &prog_convolution_concat_112_48_96_, log) && - pi_convolution_concat_96_32_64_.Init(ctx_.get(), &prog_convolution_concat_96_32_64_, log) && - pi_convolution_concat_64_3_64_.Init(ctx_.get(), &prog_convolution_concat_64_3_64_, log) && - pi_convolution_concat_64_6_64_.Init(ctx_.get(), &prog_convolution_concat_64_6_64_, log) && - pi_convolution_concat_64_9_64_.Init(ctx_.get(), &prog_convolution_concat_64_9_64_, log) && - pi_convolution_32_3_img_.Init(ctx_.get(), &prog_convolution_32_3_img_, log); + SmallVector, eShaderType, bool>, 32> + shaders_to_init = { + {sh_.convolution_Img_9_32, prog_.convolution_Img_9_32, pi_.convolution_Img_9_32, "Convolution Img 9 32", + select_shader(internal_shaders_output_convolution_Img_9_32_fp32_comp_cso, + internal_shaders_output_convolution_Img_9_32_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_32_32_Downsample, prog_.convolution_32_32_Downsample, pi_.convolution_32_32_Downsample, + "Convolution 32 32 Downsample", + select_shader(internal_shaders_output_convolution_32_32_Downsample_fp32_comp_cso, + internal_shaders_output_convolution_32_32_Downsample_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_32_48_Downsample, prog_.convolution_32_48_Downsample, pi_.convolution_32_48_Downsample, + "Convolution 32 48 Downsample", + select_shader(internal_shaders_output_convolution_32_48_Downsample_fp32_comp_cso, + internal_shaders_output_convolution_32_48_Downsample_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_48_64_Downsample, prog_.convolution_48_64_Downsample, pi_.convolution_48_64_Downsample, + "Convolution 48 64 Downsample", + select_shader(internal_shaders_output_convolution_48_64_Downsample_fp32_comp_cso, + internal_shaders_output_convolution_48_64_Downsample_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_64_80_Downsample, prog_.convolution_64_80_Downsample, pi_.convolution_64_80_Downsample, + "Convolution 64 80 Downsample", + select_shader(internal_shaders_output_convolution_64_80_Downsample_fp32_comp_cso, + internal_shaders_output_convolution_64_80_Downsample_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_64_64, prog_.convolution_64_64, pi_.convolution_64_64, "Convolution 64 64", + select_shader(internal_shaders_output_convolution_64_64_fp32_comp_cso, + internal_shaders_output_convolution_64_64_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_64_32, prog_.convolution_64_32, pi_.convolution_64_32, "Convolution 64 32", + select_shader(internal_shaders_output_convolution_64_32_fp32_comp_cso, + internal_shaders_output_convolution_64_32_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_80_96, prog_.convolution_80_96, pi_.convolution_80_96, "Convolution 80 96", + select_shader(internal_shaders_output_convolution_80_96_fp32_comp_cso, + internal_shaders_output_convolution_80_96_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_96_96, prog_.convolution_96_96, pi_.convolution_96_96, "Convolution 96 96", + select_shader(internal_shaders_output_convolution_96_96_fp32_comp_cso, + internal_shaders_output_convolution_96_96_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_112_112, prog_.convolution_112_112, pi_.convolution_112_112, + "Convolution Concat 96 64 112", + select_shader(internal_shaders_output_convolution_112_112_fp32_comp_cso, + internal_shaders_output_convolution_112_112_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_concat_96_64_112, prog_.convolution_concat_96_64_112, pi_.convolution_concat_96_64_112, + "Convolution 112 112", + select_shader(internal_shaders_output_convolution_concat_96_64_112_fp32_comp_cso, + internal_shaders_output_convolution_concat_96_64_112_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_concat_112_48_96, prog_.convolution_concat_112_48_96, pi_.convolution_concat_112_48_96, + "Convolution Concat 112 48 96", + select_shader(internal_shaders_output_convolution_concat_112_48_96_fp32_comp_cso, + internal_shaders_output_convolution_concat_112_48_96_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_concat_96_32_64, prog_.convolution_concat_96_32_64, pi_.convolution_concat_96_32_64, + "Convolution Concat 96 32 64", + select_shader(internal_shaders_output_convolution_concat_96_32_64_fp32_comp_cso, + internal_shaders_output_convolution_concat_96_32_64_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_concat_64_9_64, prog_.convolution_concat_64_9_64, pi_.convolution_concat_64_9_64, + "Convolution Concat 64 9 64", + select_shader(internal_shaders_output_convolution_concat_64_9_64_fp32_comp_cso, + internal_shaders_output_convolution_concat_64_9_64_fp16_comp_cso), + eShaderType::Comp, log}, + {sh_.convolution_32_3_img, prog_.convolution_32_3_img, pi_.convolution_32_3_img, "Convolution 32 3 Img", + select_shader(internal_shaders_output_convolution_32_3_img_fp32_comp_cso, + internal_shaders_output_convolution_32_3_img_fp16_comp_cso), + eShaderType::Comp, log}}; + parallel_for(0, int(shaders_to_init.size()), [&](const int i) { + std::get<6>(shaders_to_init[i]) = + std::get<0>(shaders_to_init[i]) + .Init(std::get<3>(shaders_to_init[i]), ctx_.get(), Inflate(std::get<4>(shaders_to_init[i])), + std::get<5>(shaders_to_init[i]), log); + std::get<1>(shaders_to_init[i]) = + Program{std::get<3>(shaders_to_init[i]), ctx_.get(), &std::get<0>(shaders_to_init[i]), log}; + std::get<2>(shaders_to_init[i]).Init(ctx_.get(), &std::get<1>(shaders_to_init[i]), log); + }); + + bool result = true; + for (const auto &sh : shaders_to_init) { + result &= std::get<6>(sh); + } + + return result; } void Ray::Dx::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const pass_settings_t &ps, @@ -1810,7 +1730,7 @@ void Ray::Dx::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const pass_ uint32_t((rect.w + IntersectScene::LOCAL_GROUP_SIZE_X - 1) / IntersectScene::LOCAL_GROUP_SIZE_X), uint32_t((rect.h + IntersectScene::LOCAL_GROUP_SIZE_Y - 1) / IntersectScene::LOCAL_GROUP_SIZE_Y), 1u}; - DispatchCompute(cmd_buf, pi_intersect_scene_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.intersect_scene, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -1871,7 +1791,7 @@ void Ray::Dx::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const Buffe memcpy(&uniform_params.cam_fwd[0], &cam_fwd[0], 3 * sizeof(float)); } - DispatchComputeIndirect(cmd_buf, pi_intersect_scene_indirect_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.intersect_scene_indirect, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -1965,17 +1885,17 @@ void Ray::Dx::Renderer::kernel_ShadePrimaryHits( memcpy(&uniform_params.cam_pos_and_exposure[0], sc_data.spatial_cache_grid.cam_pos_curr, 3 * sizeof(float)); uniform_params.cam_pos_and_exposure[3] = sc_data.spatial_cache_grid.exposure; - Pipeline *pi = &pi_shade_primary_; + Pipeline *pi = &pi_.shade_primary; if (cache_usage == eSpatialCacheMode::Update) { - pi = &pi_shade_primary_cache_update_; + pi = &pi_.shade_primary_cache_update; } else if (cache_usage == eSpatialCacheMode::Query) { if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_primary_cache_query_sky_; + pi = &pi_.shade_primary_cache_query_sky; } else { - pi = &pi_shade_primary_cache_query_; + pi = &pi_.shade_primary_cache_query; } } else if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_primary_sky_; + pi = &pi_.shade_primary_sky; } if (use_bindless_) { @@ -2066,17 +1986,17 @@ void Ray::Dx::Renderer::kernel_ShadeSecondaryHits( memcpy(&uniform_params.cam_pos_and_exposure[0], sc_data.spatial_cache_grid.cam_pos_curr, 3 * sizeof(float)); uniform_params.cam_pos_and_exposure[3] = sc_data.spatial_cache_grid.exposure; - Pipeline *pi = &pi_shade_secondary_; + Pipeline *pi = &pi_.shade_secondary; if (cache_usage == eSpatialCacheMode::Update) { - pi = &pi_shade_secondary_cache_update_; + pi = &pi_.shade_secondary_cache_update; } else if (cache_usage == eSpatialCacheMode::Query) { if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_secondary_cache_query_sky_; + pi = &pi_.shade_secondary_cache_query_sky; } else { - pi = &pi_shade_secondary_cache_query_; + pi = &pi_.shade_secondary_cache_query; } } else if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_secondary_sky_; + pi = &pi_.shade_secondary_sky; } if (use_bindless_) { @@ -2145,245 +2065,249 @@ void Ray::Dx::Renderer::kernel_IntersectSceneShadow( uniform_params.rand_seed = rand_seed; uniform_params.iteration = iteration; - DispatchComputeIndirect(cmd_buf, pi_intersect_scene_shadow_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.intersect_scene_shadow, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } -bool Ray::Dx::Renderer::InitShaders(ILog *log) { - auto select_unpack_shader = [this](Span bindless_shader, - Span bindless_subgroup_shader, Span atlas_shader, - Span atlas_subgroup_shader) { - return Inflate(use_bindless_ ? (use_subgroup_ ? bindless_subgroup_shader : bindless_shader) - : (use_subgroup_ ? atlas_subgroup_shader : atlas_shader)); +bool Ray::Dx::Renderer::InitPipelines(ILog *log, + const std::function ¶llel_for) { + auto select_shader = [this](Span bindless_shader, Span bindless_subgroup_shader, + Span atlas_shader, Span atlas_subgroup_shader) { + return use_bindless_ ? (use_subgroup_ ? bindless_subgroup_shader : bindless_shader) + : (use_subgroup_ ? atlas_subgroup_shader : atlas_shader); }; - bool result = true; - result &= sh_prim_rays_gen_simple_.Init("Primary Raygen Simple", ctx_.get(), - Inflate(internal_shaders_output_primary_ray_gen_simple_comp_cso), - eShaderType::Comp, log); - result &= sh_prim_rays_gen_adaptive_.Init("Primary Raygen Adaptive", ctx_.get(), - Inflate(internal_shaders_output_primary_ray_gen_adaptive_comp_cso), - eShaderType::Comp, log); + SmallVector, eShaderType, bool>, 32> shaders_to_init = { + {sh_.prim_rays_gen_simple, "Primary Raygen Simple", internal_shaders_output_primary_ray_gen_simple_comp_cso, + eShaderType::Comp, false}, + {sh_.prim_rays_gen_adaptive, "Primary Raygen Adaptive", + internal_shaders_output_primary_ray_gen_adaptive_comp_cso, eShaderType::Comp, false}, + {sh_.intersect_area_lights, "Intersect Area Lights", internal_shaders_output_intersect_area_lights_comp_cso, + eShaderType::Comp, false}, + {sh_.shade_primary, "Shade (Primary)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_comp_cso} + : Span{internal_shaders_output_shade_primary_atlas_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_primary_sky, "Shade (Primary) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_sky_comp_cso} + : Span{internal_shaders_output_shade_primary_atlas_sky_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_update, "Shade (Primary) (Cache Update)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_update_comp_cso} + : Span{internal_shaders_output_shade_primary_atlas_cache_update_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_query, "Shade (Primary) (Cache Query)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_comp_cso} + : Span{internal_shaders_output_shade_primary_atlas_cache_query_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_query_sky, "Shade (Primary) (Cache Query) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_sky_comp_cso} + : Span{internal_shaders_output_shade_primary_atlas_cache_query_sky_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_secondary, "Shade (Secondary)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_comp_cso} + : Span{internal_shaders_output_shade_secondary_atlas_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_secondary_sky, "Shade (Secondary) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_sky_comp_cso} + : Span{internal_shaders_output_shade_secondary_atlas_sky_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_update, "Shade (Secondary) (Cache Update)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_update_comp_cso} + : Span{internal_shaders_output_shade_secondary_atlas_cache_update_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_query, "Shade (Secondary) (Cache Query)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_comp_cso} + : Span{internal_shaders_output_shade_secondary_atlas_cache_query_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_query_sky, "Shade (Secondary) (Cache Query) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_sky_comp_cso} + : Span{internal_shaders_output_shade_secondary_atlas_cache_query_sky_comp_cso}, + eShaderType::Comp, false}, + {sh_.shade_sky, "Shade Sky", internal_shaders_output_shade_sky_comp_cso, eShaderType::Comp, false}, + {sh_.prepare_indir_args, "Prepare Indir Args", internal_shaders_output_prepare_indir_args_comp_cso, + eShaderType::Comp, false}, + {sh_.mix_incremental, "Mix Incremental", internal_shaders_output_mix_incremental_comp_cso, eShaderType::Comp, + false}, + {sh_.postprocess, "Postprocess", internal_shaders_output_postprocess_comp_cso, eShaderType::Comp, false}, + {sh_.filter_variance, "Filter Variance", internal_shaders_output_filter_variance_comp_cso, eShaderType::Comp, + false}, + {sh_.nlm_filter, "NLM Filter", internal_shaders_output_nlm_filter_comp_cso, eShaderType::Comp, false}, + {sh_.sort_hash_rays, "Sort Hash Rays", internal_shaders_output_sort_hash_rays_comp_cso, eShaderType::Comp, + false}, + {sh_.sort_init_count_table, "Sort Init Count Table", internal_shaders_output_sort_init_count_table_comp_cso, + eShaderType::Comp, false}, + {sh_.sort_reduce, "Sort Reduce", internal_shaders_output_sort_reduce_comp_cso, eShaderType::Comp, false}, + {sh_.sort_scan, "Sort Scan", internal_shaders_output_sort_scan_comp_cso, eShaderType::Comp, false}, + {sh_.sort_scan_add, "Sort Scan Add", internal_shaders_output_sort_scan_add_comp_cso, eShaderType::Comp, false}, + {sh_.sort_scatter, "Sort Scatter", internal_shaders_output_sort_scatter_comp_cso, eShaderType::Comp, false}, + {sh_.sort_reorder_rays, "Sort Reorder Rays", internal_shaders_output_sort_reorder_rays_comp_cso, + eShaderType::Comp, false}, + {sh_.spatial_cache_resolve, "Spatial Cache Resolve", internal_shaders_output_spatial_cache_resolve_comp_cso, + eShaderType::Comp, false}}; if (use_hwrt_) { - result &= sh_intersect_scene_.Init( - "Intersect Scene (Primary) (HWRT)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_intersect_scene_hwrt_bindless_comp_cso} - : Span{internal_shaders_output_intersect_scene_hwrt_atlas_comp_cso}), - eShaderType::Comp, log); + shaders_to_init.emplace_back( + sh_.intersect_scene, "Intersect Scene (Primary) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_hwrt_bindless_comp_cso} + : Span{internal_shaders_output_intersect_scene_hwrt_atlas_comp_cso}, + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_indirect, "Intersect Scene (Secondary) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_indirect_hwrt_bindless_comp_cso} + : Span{internal_shaders_output_intersect_scene_indirect_hwrt_atlas_comp_cso}, + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_shadow, "Intersect Scene (Shadow) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_shadow_hwrt_bindless_comp_cso} + : Span{internal_shaders_output_intersect_scene_shadow_hwrt_atlas_comp_cso}, + eShaderType::Comp, false); + shaders_to_init.emplace_back(sh_.debug_rt, "Debug RT", internal_shaders_output_debug_rt_comp_cso, + eShaderType::Comp, false); } else { - result &= sh_intersect_scene_.Init( - "Intersect Scene (Primary) (SWRT)", ctx_.get(), - Inflate(select_unpack_shader(internal_shaders_output_intersect_scene_swrt_bindless_comp_cso, - internal_shaders_output_intersect_scene_swrt_bindless_subgroup_comp_cso, - internal_shaders_output_intersect_scene_swrt_atlas_comp_cso, - internal_shaders_output_intersect_scene_swrt_atlas_subgroup_comp_cso)), - eShaderType::Comp, log); + shaders_to_init.emplace_back( + sh_.intersect_scene, "Intersect Scene (Primary) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_swrt_bindless_comp_cso, + internal_shaders_output_intersect_scene_swrt_bindless_subgroup_comp_cso, + internal_shaders_output_intersect_scene_swrt_atlas_comp_cso, + internal_shaders_output_intersect_scene_swrt_atlas_subgroup_comp_cso), + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_indirect, "Intersect Scene (Secondary) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_indirect_swrt_bindless_comp_cso, + internal_shaders_output_intersect_scene_indirect_swrt_bindless_subgroup_comp_cso, + internal_shaders_output_intersect_scene_indirect_swrt_atlas_comp_cso, + internal_shaders_output_intersect_scene_indirect_swrt_atlas_subgroup_comp_cso), + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_shadow, "Intersect Scene (Shadow) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_shadow_swrt_bindless_comp_cso, + internal_shaders_output_intersect_scene_shadow_swrt_bindless_subgroup_comp_cso, + internal_shaders_output_intersect_scene_shadow_swrt_atlas_comp_cso, + internal_shaders_output_intersect_scene_shadow_swrt_atlas_subgroup_comp_cso), + eShaderType::Comp, false); } - - if (use_hwrt_) { - result &= sh_intersect_scene_indirect_.Init( - "Intersect Scene (Secondary) (HWRT)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_intersect_scene_indirect_hwrt_bindless_comp_cso} - : Span{internal_shaders_output_intersect_scene_indirect_hwrt_atlas_comp_cso}), - eShaderType::Comp, log); + if (ctx_->int64_atomics_supported()) { + shaders_to_init.emplace_back(sh_.spatial_cache_update, "Spatial Cache Update", + internal_shaders_output_spatial_cache_update_comp_cso, eShaderType::Comp, false); } else { - result &= sh_intersect_scene_indirect_.Init( - "Intersect Scene (Secondary) (SWRT)", ctx_.get(), - Inflate( - select_unpack_shader(internal_shaders_output_intersect_scene_indirect_swrt_bindless_comp_cso, - internal_shaders_output_intersect_scene_indirect_swrt_bindless_subgroup_comp_cso, - internal_shaders_output_intersect_scene_indirect_swrt_atlas_comp_cso, - internal_shaders_output_intersect_scene_indirect_swrt_atlas_subgroup_comp_cso)), - eShaderType::Comp, log); - } - - result &= sh_intersect_area_lights_.Init("Intersect Area Lights", ctx_.get(), - Inflate(internal_shaders_output_intersect_area_lights_comp_cso), - eShaderType::Comp, log); - result &= sh_shade_primary_.Init( - "Shade (Primary)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_comp_cso} - : Span{internal_shaders_output_shade_primary_atlas_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_primary_sky_.Init( - "Shade (Primary) (Sky)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_sky_comp_cso} - : Span{internal_shaders_output_shade_primary_atlas_sky_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_update_.Init( - "Shade (Primary) (Cache Update)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_primary_bindless_cache_update_comp_cso} - : Span{internal_shaders_output_shade_primary_atlas_cache_update_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_query_.Init( - "Shade (Primary) (Cache Query)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_comp_cso} - : Span{internal_shaders_output_shade_primary_atlas_cache_query_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_query_sky_.Init( - "Shade (Primary) (Cache Query) (Sky)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_primary_bindless_cache_query_sky_comp_cso} - : Span{internal_shaders_output_shade_primary_atlas_cache_query_sky_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_secondary_.Init( - "Shade (Secondary)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_comp_cso} - : Span{internal_shaders_output_shade_secondary_atlas_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_secondary_sky_.Init( - "Shade (Secondary) (Sky)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_sky_comp_cso} - : Span{internal_shaders_output_shade_secondary_atlas_sky_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_update_.Init( - "Shade (Secondary) (Cache Update)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_update_comp_cso} - : Span{internal_shaders_output_shade_secondary_atlas_cache_update_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_query_.Init( - "Shade (Secondary) (Cache Query)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_comp_cso} - : Span{internal_shaders_output_shade_secondary_atlas_cache_query_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_query_sky_.Init( - "Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_sky_comp_cso} - : Span{internal_shaders_output_shade_secondary_atlas_cache_query_sky_comp_cso}), - eShaderType::Comp, log); - result &= sh_shade_sky_.Init("Shade Sky", ctx_.get(), - Inflate(Span{internal_shaders_output_shade_sky_comp_cso}), - eShaderType::Comp, log); + shaders_to_init.emplace_back(sh_.spatial_cache_update, "Spatial Cache Update", + internal_shaders_output_spatial_cache_update_compat_comp_cso, eShaderType::Comp, + false); + } + + parallel_for(0, int(shaders_to_init.size()), [&](const int i) { + std::get<4>(shaders_to_init[i]) = + std::get<0>(shaders_to_init[i]) + .Init(std::get<1>(shaders_to_init[i]), ctx_.get(), Inflate(std::get<2>(shaders_to_init[i])), + std::get<3>(shaders_to_init[i]), log); + }); + bool result = true; + for (const auto &sh : shaders_to_init) { + result &= std::get<4>(sh); + } + + prog_.prim_rays_gen_simple = Program{"Primary Raygen Simple", ctx_.get(), &sh_.prim_rays_gen_simple, log}; + prog_.prim_rays_gen_adaptive = Program{"Primary Raygen Adaptive", ctx_.get(), &sh_.prim_rays_gen_adaptive, log}; + prog_.intersect_scene = Program{"Intersect Scene (Primary)", ctx_.get(), &sh_.intersect_scene, log}; + prog_.intersect_scene_indirect = + Program{"Intersect Scene (Secondary)", ctx_.get(), &sh_.intersect_scene_indirect, log}; + prog_.intersect_area_lights = Program{"Intersect Area Lights", ctx_.get(), &sh_.intersect_area_lights, log}; + prog_.shade_primary = Program{"Shade (Primary)", ctx_.get(), &sh_.shade_primary, log}; + prog_.shade_primary_sky = Program{"Shade (Primary) (Sky)", ctx_.get(), &sh_.shade_primary_sky, log}; + prog_.shade_primary_cache_update = + Program{"Shade (Primary) (Cache Update)", ctx_.get(), &sh_.shade_primary_cache_update, log}; + prog_.shade_primary_cache_query = + Program{"Shade (Primary) (Cache Query)", ctx_.get(), &sh_.shade_primary_cache_query, log}; + prog_.shade_primary_cache_query_sky = + Program{"Shade (Primary) (Cache Query) (Sky)", ctx_.get(), &sh_.shade_primary_cache_query_sky, log}; + prog_.shade_secondary = Program{"Shade (Secondary)", ctx_.get(), &sh_.shade_secondary, log}; + prog_.shade_secondary_sky = Program{"Shade (Secondary) (Sky)", ctx_.get(), &sh_.shade_secondary_sky, log}; + prog_.shade_secondary_cache_update = + Program{"Shade (Secondary) (Cache Update)", ctx_.get(), &sh_.shade_secondary_cache_update, log}; + prog_.shade_secondary_cache_query = + Program{"Shade (Secondary) (Cache Query)", ctx_.get(), &sh_.shade_secondary_cache_query, log}; + prog_.shade_secondary_cache_query_sky = + Program{"Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), &sh_.shade_secondary_cache_query_sky, log}; + prog_.shade_sky = Program{"Shade Sky", ctx_.get(), &sh_.shade_sky, log}; + prog_.intersect_scene_shadow = Program{"Intersect Scene (Shadow)", ctx_.get(), &sh_.intersect_scene_shadow, log}; + prog_.prepare_indir_args = Program{"Prepare Indir Args", ctx_.get(), &sh_.prepare_indir_args, log}; + prog_.mix_incremental = Program{"Mix Incremental", ctx_.get(), &sh_.mix_incremental, log}; + prog_.postprocess = Program{"Postprocess", ctx_.get(), &sh_.postprocess, log}; + prog_.filter_variance = Program{"Filter Variance", ctx_.get(), &sh_.filter_variance, log}; + prog_.nlm_filter = Program{"NLM Filter", ctx_.get(), &sh_.nlm_filter, log}; if (use_hwrt_) { - result &= sh_intersect_scene_shadow_.Init( - "Intersect Scene (Shadow) (HWRT)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_intersect_scene_shadow_hwrt_bindless_comp_cso} - : Span{internal_shaders_output_intersect_scene_shadow_hwrt_atlas_comp_cso}), - eShaderType::Comp, log); - } else { - result &= sh_intersect_scene_shadow_.Init( - "Intersect Scene (Shadow) (SWRT)", ctx_.get(), - Inflate(select_unpack_shader(internal_shaders_output_intersect_scene_shadow_swrt_bindless_comp_cso, - internal_shaders_output_intersect_scene_shadow_swrt_bindless_subgroup_comp_cso, - internal_shaders_output_intersect_scene_shadow_swrt_atlas_comp_cso, - internal_shaders_output_intersect_scene_shadow_swrt_atlas_subgroup_comp_cso)), - eShaderType::Comp, log); - } - result &= sh_prepare_indir_args_.Init("Prepare Indir Args", ctx_.get(), - Inflate(internal_shaders_output_prepare_indir_args_comp_cso), - eShaderType::Comp, log); - result &= - sh_mix_incremental_.Init("Mix Incremental", ctx_.get(), - Inflate(internal_shaders_output_mix_incremental_comp_cso), eShaderType::Comp, log); - result &= sh_postprocess_.Init("Postprocess", ctx_.get(), Inflate(internal_shaders_output_postprocess_comp_cso), - eShaderType::Comp, log); - result &= - sh_filter_variance_.Init("Filter Variance", ctx_.get(), - Inflate(internal_shaders_output_filter_variance_comp_cso), eShaderType::Comp, log); - result &= sh_nlm_filter_.Init("NLM Filter", ctx_.get(), Inflate(internal_shaders_output_nlm_filter_comp_cso), - eShaderType::Comp, log); + prog_.debug_rt = Program{"Debug RT", ctx_.get(), &sh_.debug_rt, log}; + } + prog_.sort_hash_rays = Program{"Hash Rays", ctx_.get(), &sh_.sort_hash_rays, log}; + prog_.sort_init_count_table = Program{"Init Count Table", ctx_.get(), &sh_.sort_init_count_table, log}; + prog_.sort_reduce = Program{"Sort Reduce", ctx_.get(), &sh_.sort_reduce, log}; + prog_.sort_scan = Program{"Sort Scan", ctx_.get(), &sh_.sort_scan, log}; + prog_.sort_scan_add = Program{"Sort Scan Add", ctx_.get(), &sh_.sort_scan_add, log}; + prog_.sort_scatter = Program{"Sort Scatter", ctx_.get(), &sh_.sort_scatter, log}; + prog_.sort_reorder_rays = Program{"Reorder Rays", ctx_.get(), &sh_.sort_reorder_rays, log}; + prog_.spatial_cache_update = Program{"Spatial Cache Update", ctx_.get(), &sh_.spatial_cache_update, log}; + prog_.spatial_cache_resolve = Program{"Spatial Cache Resolve", ctx_.get(), &sh_.spatial_cache_resolve, log}; + + SmallVector, 32> pipelines_to_init = { + {pi_.prim_rays_gen_simple, prog_.prim_rays_gen_simple, false}, + {pi_.prim_rays_gen_adaptive, prog_.prim_rays_gen_adaptive, false}, + {pi_.intersect_scene, prog_.intersect_scene, false}, + {pi_.intersect_scene_indirect, prog_.intersect_scene_indirect, false}, + {pi_.intersect_area_lights, prog_.intersect_area_lights, false}, + {pi_.shade_primary, prog_.shade_primary, false}, + {pi_.shade_primary_sky, prog_.shade_primary_sky, false}, + {pi_.shade_secondary, prog_.shade_secondary, false}, + {pi_.shade_secondary_sky, prog_.shade_secondary_sky, false}, + {pi_.shade_sky, prog_.shade_sky, false}, + {pi_.intersect_scene_shadow, prog_.intersect_scene_shadow, false}, + {pi_.prepare_indir_args, prog_.prepare_indir_args, false}, + {pi_.mix_incremental, prog_.mix_incremental, false}, + {pi_.postprocess, prog_.postprocess, false}, + {pi_.filter_variance, prog_.filter_variance, false}, + {pi_.nlm_filter, prog_.nlm_filter, false}, + {pi_.sort_hash_rays, prog_.sort_hash_rays, false}, + {pi_.sort_reorder_rays, prog_.sort_reorder_rays, false}}; if (use_hwrt_) { - result &= sh_debug_rt_.Init("Debug RT", ctx_.get(), Inflate(internal_shaders_output_debug_rt_comp_cso), - eShaderType::Comp, log); - } - - result &= sh_sort_hash_rays_.Init("Sort Hash Rays", ctx_.get(), - Inflate(internal_shaders_output_sort_hash_rays_comp_cso), eShaderType::Comp, log); - result &= sh_sort_init_count_table_.Init("Sort Init Count Table", ctx_.get(), - Inflate(internal_shaders_output_sort_init_count_table_comp_cso), - eShaderType::Comp, log); - result &= sh_sort_reduce_.Init("Sort Reduce", ctx_.get(), Inflate(internal_shaders_output_sort_reduce_comp_cso), - eShaderType::Comp, log); - result &= sh_sort_scan_.Init("Sort Scan", ctx_.get(), Inflate(internal_shaders_output_sort_scan_comp_cso), - eShaderType::Comp, log); - result &= sh_sort_scan_add_.Init("Sort Scan Add", ctx_.get(), - Inflate(internal_shaders_output_sort_scan_add_comp_cso), eShaderType::Comp, log); - result &= sh_sort_scatter_.Init("Sort Scatter", ctx_.get(), Inflate(internal_shaders_output_sort_scatter_comp_cso), - eShaderType::Comp, log); - result &= - sh_sort_reorder_rays_.Init("Sort Reorder Rays", ctx_.get(), - Inflate(internal_shaders_output_sort_reorder_rays_comp_cso), eShaderType::Comp, log); + pipelines_to_init.emplace_back(pi_.debug_rt, prog_.debug_rt, false); + } + if (use_subgroup_) { + pipelines_to_init.emplace_back(pi_.sort_init_count_table, prog_.sort_init_count_table, false); + pipelines_to_init.emplace_back(pi_.sort_reduce, prog_.sort_reduce, false); + pipelines_to_init.emplace_back(pi_.sort_scan, prog_.sort_scan, false); + pipelines_to_init.emplace_back(pi_.sort_scan_add, prog_.sort_scan_add, false); + pipelines_to_init.emplace_back(pi_.sort_scatter, prog_.sort_scatter, false); + } + if (use_spatial_cache_) { + pipelines_to_init.emplace_back(pi_.shade_primary_cache_update, prog_.shade_primary_cache_update, false); + pipelines_to_init.emplace_back(pi_.shade_primary_cache_query, prog_.shade_primary_cache_query, false); + pipelines_to_init.emplace_back(pi_.shade_primary_cache_query_sky, prog_.shade_primary_cache_query_sky, false); - if (ctx_->int64_atomics_supported()) { - result &= sh_spatial_cache_update_.Init("Spatial Cache Update", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_update_comp_cso), - eShaderType::Comp, log); - } else { - result &= sh_spatial_cache_update_.Init("Spatial Cache Update", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_update_compat_comp_cso), - eShaderType::Comp, log); - } - result &= sh_spatial_cache_resolve_.Init("Spatial Cache Resolve", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_resolve_comp_cso), - eShaderType::Comp, log); - - prog_prim_rays_gen_simple_ = Program{"Primary Raygen Simple", ctx_.get(), &sh_prim_rays_gen_simple_, log}; - prog_prim_rays_gen_adaptive_ = Program{"Primary Raygen Adaptive", ctx_.get(), &sh_prim_rays_gen_adaptive_, log}; - prog_intersect_scene_ = Program{"Intersect Scene (Primary)", ctx_.get(), &sh_intersect_scene_, log}; - prog_intersect_scene_indirect_ = - Program{"Intersect Scene (Secondary)", ctx_.get(), &sh_intersect_scene_indirect_, log}; - prog_intersect_area_lights_ = Program{"Intersect Area Lights", ctx_.get(), &sh_intersect_area_lights_, log}; - prog_shade_primary_ = Program{"Shade (Primary)", ctx_.get(), &sh_shade_primary_, log}; - prog_shade_primary_sky_ = Program{"Shade (Primary) (Sky)", ctx_.get(), &sh_shade_primary_sky_, log}; - prog_shade_primary_cache_update_ = - Program{"Shade (Primary) (Cache Update)", ctx_.get(), &sh_shade_primary_cache_update_, log}; - prog_shade_primary_cache_query_ = - Program{"Shade (Primary) (Cache Query)", ctx_.get(), &sh_shade_primary_cache_query_, log}; - prog_shade_primary_cache_query_sky_ = - Program{"Shade (Primary) (Cache Query) (Sky)", ctx_.get(), &sh_shade_primary_cache_query_sky_, log}; - prog_shade_secondary_ = Program{"Shade (Secondary)", ctx_.get(), &sh_shade_secondary_, log}; - prog_shade_secondary_sky_ = Program{"Shade (Secondary) (Sky)", ctx_.get(), &sh_shade_secondary_sky_, log}; - prog_shade_secondary_cache_update_ = - Program{"Shade (Secondary) (Cache Update)", ctx_.get(), &sh_shade_secondary_cache_update_, log}; - prog_shade_secondary_cache_query_ = - Program{"Shade (Secondary) (Cache Query)", ctx_.get(), &sh_shade_secondary_cache_query_, log}; - prog_shade_secondary_cache_query_sky_ = - Program{"Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), &sh_shade_secondary_cache_query_sky_, log}; - prog_shade_sky_ = Program{"Shade Sky", ctx_.get(), &sh_shade_sky_, log}; - prog_intersect_scene_shadow_ = Program{"Intersect Scene (Shadow)", ctx_.get(), &sh_intersect_scene_shadow_, log}; - prog_prepare_indir_args_ = Program{"Prepare Indir Args", ctx_.get(), &sh_prepare_indir_args_, log}; - prog_mix_incremental_ = Program{"Mix Incremental", ctx_.get(), &sh_mix_incremental_, log}; - prog_postprocess_ = Program{"Postprocess", ctx_.get(), &sh_postprocess_, log}; - prog_filter_variance_ = Program{"Filter Variance", ctx_.get(), &sh_filter_variance_, log}; - prog_nlm_filter_ = Program{"NLM Filter", ctx_.get(), &sh_nlm_filter_, log}; - if (use_hwrt_) { - prog_debug_rt_ = Program{"Debug RT", ctx_.get(), &sh_debug_rt_, log}; - } - prog_sort_hash_rays_ = Program{"Hash Rays", ctx_.get(), &sh_sort_hash_rays_, log}; - prog_sort_init_count_table_ = Program{"Init Count Table", ctx_.get(), &sh_sort_init_count_table_, log}; - prog_sort_reduce_ = Program{"Sort Reduce", ctx_.get(), &sh_sort_reduce_, log}; - prog_sort_scan_ = Program{"Sort Scan", ctx_.get(), &sh_sort_scan_, log}; - prog_sort_scan_add_ = Program{"Sort Scan Add", ctx_.get(), &sh_sort_scan_add_, log}; - prog_sort_scatter_ = Program{"Sort Scatter", ctx_.get(), &sh_sort_scatter_, log}; - prog_sort_reorder_rays_ = Program{"Reorder Rays", ctx_.get(), &sh_sort_reorder_rays_, log}; - // prog_intersect_scene_rtpipe_ = Program{"Intersect Scene", - // ctx_.get(), - // &sh_intersect_scene_rgen_, - // &sh_intersect_scene_rchit_, - // nullptr, - // &sh_intersect_scene_rmiss_, - // nullptr, - // log}; - // prog_intersect_scene_indirect_rtpipe_ = Program{"Intersect Scene Indirect", - // ctx_.get(), - // &sh_intersect_scene_indirect_rgen_, - // &sh_intersect_scene_rchit_, - // nullptr, - // &sh_intersect_scene_rmiss_, - // nullptr, - // log}; - prog_spatial_cache_update_ = Program{"Spatial Cache Update", ctx_.get(), &sh_spatial_cache_update_, log}; - prog_spatial_cache_resolve_ = Program{"Spatial Cache Resolve", ctx_.get(), &sh_spatial_cache_resolve_, log}; + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_update, prog_.shade_secondary_cache_update, false); + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_query, prog_.shade_secondary_cache_query, false); + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_query_sky, prog_.shade_secondary_cache_query_sky, + false); + + pipelines_to_init.emplace_back(pi_.spatial_cache_update, prog_.spatial_cache_update, false); + pipelines_to_init.emplace_back(pi_.spatial_cache_resolve, prog_.spatial_cache_resolve, false); + } + parallel_for(0, int(pipelines_to_init.size()), [&](const int i) { + std::get<2>(pipelines_to_init[i]) = + std::get<0>(pipelines_to_init[i]).Init(ctx_.get(), &std::get<1>(pipelines_to_init[i]), log); + }); + + // Release shader modules + sh_ = {}; + + for (const auto &pi : pipelines_to_init) { + result &= std::get<2>(pi); + } return result; } -Ray::RendererBase *Ray::Dx::CreateRenderer(const settings_t &s, ILog *log) { return new Dx::Renderer(s, log); } +Ray::RendererBase *Ray::Dx::CreateRenderer(const settings_t &s, ILog *log, + const std::function ¶llel_for) { + return new Dx::Renderer(s, log, parallel_for); +} diff --git a/internal/RendererDX.h b/internal/RendererDX.h index bbb74a046..3b88f8279 100644 --- a/internal/RendererDX.h +++ b/internal/RendererDX.h @@ -5,6 +5,7 @@ namespace Ray { namespace Dx { -RendererBase *CreateRenderer(const settings_t &s, ILog *log); +RendererBase *CreateRenderer(const settings_t &s, ILog *log, + const std::function ¶llel_for); } // namespace Dx } // namespace Ray diff --git a/internal/RendererGPU.h b/internal/RendererGPU.h index b87d7c969..04d376503 100644 --- a/internal/RendererGPU.h +++ b/internal/RendererGPU.h @@ -47,65 +47,63 @@ class Renderer : public RendererBase { std::unique_ptr ctx_; GpuCommandBuffer external_cmd_buf_; - Shader sh_prim_rays_gen_simple_, sh_prim_rays_gen_adaptive_; - Shader sh_intersect_scene_, sh_intersect_scene_indirect_, sh_intersect_area_lights_; - Shader sh_shade_primary_, sh_shade_primary_sky_, sh_shade_primary_cache_update_, sh_shade_primary_cache_query_, - sh_shade_primary_cache_query_sky_, sh_shade_secondary_, sh_shade_secondary_sky_, - sh_shade_secondary_cache_update_, sh_shade_secondary_cache_query_, sh_shade_secondary_cache_query_sky_; - Shader sh_shade_sky_; - Shader sh_intersect_scene_shadow_, sh_prepare_indir_args_, sh_mix_incremental_, sh_postprocess_, - sh_filter_variance_, sh_nlm_filter_, sh_debug_rt_; - Shader sh_sort_hash_rays_, sh_sort_init_count_table_, sh_sort_reduce_, sh_sort_scan_, sh_sort_scan_add_, - sh_sort_scatter_, sh_sort_reorder_rays_; - Shader sh_intersect_scene_rgen_, sh_intersect_scene_rchit_, sh_intersect_scene_rmiss_, - sh_intersect_scene_indirect_rgen_; - Shader sh_convolution_Img_9_32_, sh_convolution_32_32_Downsample_, sh_convolution_32_48_Downsample_, - sh_convolution_48_64_Downsample_, sh_convolution_64_80_Downsample_, sh_convolution_64_64_, - sh_convolution_64_32_, sh_convolution_80_96_, sh_convolution_96_96_, sh_convolution_112_112_, - sh_convolution_concat_96_64_112_, sh_convolution_concat_112_48_96_, sh_convolution_concat_96_32_64_, - sh_convolution_concat_64_3_64_, sh_convolution_concat_64_6_64_, sh_convolution_concat_64_9_64_, - sh_convolution_32_3_img_; - Shader sh_spatial_cache_update_, sh_spatial_cache_resolve_; - - Program prog_prim_rays_gen_simple_, prog_prim_rays_gen_adaptive_; - Program prog_intersect_scene_, prog_intersect_scene_indirect_, prog_intersect_area_lights_; - Program prog_shade_primary_, prog_shade_primary_sky_, prog_shade_primary_cache_update_, - prog_shade_primary_cache_query_, prog_shade_primary_cache_query_sky_, prog_shade_secondary_, - prog_shade_secondary_sky_, prog_shade_secondary_cache_update_, prog_shade_secondary_cache_query_, - prog_shade_secondary_cache_query_sky_; - Program prog_shade_sky_; - Program prog_intersect_scene_shadow_, prog_prepare_indir_args_, prog_mix_incremental_, prog_postprocess_, - prog_filter_variance_, prog_nlm_filter_, prog_debug_rt_; - Program prog_sort_hash_rays_, prog_sort_init_count_table_, prog_sort_reduce_, prog_sort_scan_, prog_sort_scan_add_, - prog_sort_scatter_, prog_sort_reorder_rays_; - Program prog_intersect_scene_rtpipe_, prog_intersect_scene_indirect_rtpipe_; - Program prog_convolution_Img_9_32_, prog_convolution_32_32_Downsample_, prog_convolution_32_48_Downsample_, - prog_convolution_48_64_Downsample_, prog_convolution_64_80_Downsample_, prog_convolution_64_64_, - prog_convolution_64_32_, prog_convolution_80_96_, prog_convolution_96_96_, prog_convolution_112_112_, - prog_convolution_concat_96_64_112_, prog_convolution_concat_112_48_96_, prog_convolution_concat_96_32_64_, - prog_convolution_concat_64_3_64_, prog_convolution_concat_64_6_64_, prog_convolution_concat_64_9_64_, - prog_convolution_32_3_img_; - Program prog_spatial_cache_update_, prog_spatial_cache_resolve_; - - Pipeline pi_prim_rays_gen_simple_, pi_prim_rays_gen_adaptive_; - Pipeline pi_intersect_scene_, pi_intersect_scene_indirect_, pi_intersect_area_lights_; - Pipeline pi_shade_primary_, pi_shade_primary_sky_, pi_shade_primary_cache_update_, pi_shade_primary_cache_query_, - pi_shade_primary_cache_query_sky_, pi_shade_secondary_, pi_shade_secondary_sky_, - pi_shade_secondary_cache_update_, pi_shade_secondary_cache_query_, pi_shade_secondary_cache_query_sky_; - Pipeline pi_shade_sky_; - Pipeline pi_intersect_scene_shadow_, pi_prepare_indir_args_, pi_mix_incremental_, pi_postprocess_, - pi_filter_variance_, pi_nlm_filter_, pi_debug_rt_; - Pipeline pi_sort_hash_rays_, pi_sort_init_count_table_, pi_sort_reduce_, pi_sort_scan_, pi_sort_scan_add_, - pi_sort_scatter_, pi_sort_reorder_rays_, pi_intersect_scene_rtpipe_, pi_intersect_scene_indirect_rtpipe_; - Pipeline pi_convolution_Img_9_32_, pi_convolution_32_32_Downsample_, pi_convolution_32_48_Downsample_, - pi_convolution_48_64_Downsample_, pi_convolution_64_80_Downsample_, pi_convolution_64_64_, - pi_convolution_64_32_, pi_convolution_80_96_, pi_convolution_96_96_, pi_convolution_112_112_, - pi_convolution_concat_96_64_112_, pi_convolution_concat_112_48_96_, pi_convolution_concat_96_32_64_, - pi_convolution_concat_64_3_64_, pi_convolution_concat_64_6_64_, pi_convolution_concat_64_9_64_, - pi_convolution_32_3_img_; - Pipeline pi_spatial_cache_update_, pi_spatial_cache_resolve_; - - bool InitShaders(ILog *log); + struct { + Shader prim_rays_gen_simple, prim_rays_gen_adaptive; + Shader intersect_scene, intersect_scene_indirect, intersect_area_lights; + Shader shade_primary, shade_primary_sky, shade_primary_cache_update, shade_primary_cache_query, + shade_primary_cache_query_sky, shade_secondary, shade_secondary_sky, shade_secondary_cache_update, + shade_secondary_cache_query, shade_secondary_cache_query_sky; + Shader shade_sky; + Shader intersect_scene_shadow, prepare_indir_args, mix_incremental, postprocess, filter_variance, nlm_filter, + debug_rt; + Shader sort_hash_rays, sort_init_count_table, sort_reduce, sort_scan, sort_scan_add, sort_scatter, + sort_reorder_rays; + Shader intersect_scene_rgen, intersect_scene_rchit, intersect_scene_rmiss, intersect_scene_indirect_rgen; + Shader convolution_Img_9_32, convolution_32_32_Downsample, convolution_32_48_Downsample, + convolution_48_64_Downsample, convolution_64_80_Downsample, convolution_64_64, convolution_64_32, + convolution_80_96, convolution_96_96, convolution_112_112, convolution_concat_96_64_112, + convolution_concat_112_48_96, convolution_concat_96_32_64, convolution_concat_64_9_64, convolution_32_3_img; + Shader spatial_cache_update, spatial_cache_resolve; + } sh_; + + struct { + Program prim_rays_gen_simple, prim_rays_gen_adaptive; + Program intersect_scene, intersect_scene_indirect, intersect_area_lights; + Program shade_primary, shade_primary_sky, shade_primary_cache_update, shade_primary_cache_query, + shade_primary_cache_query_sky, shade_secondary, shade_secondary_sky, shade_secondary_cache_update, + shade_secondary_cache_query, shade_secondary_cache_query_sky; + Program shade_sky; + Program intersect_scene_shadow, prepare_indir_args, mix_incremental, postprocess, filter_variance, nlm_filter, + debug_rt; + Program sort_hash_rays, sort_init_count_table, sort_reduce, sort_scan, sort_scan_add, sort_scatter, + sort_reorder_rays; + Program intersect_scene_rtpipe, intersect_scene_indirect_rtpipe; + Program convolution_Img_9_32, convolution_32_32_Downsample, convolution_32_48_Downsample, + convolution_48_64_Downsample, convolution_64_80_Downsample, convolution_64_64, convolution_64_32, + convolution_80_96, convolution_96_96, convolution_112_112, convolution_concat_96_64_112, + convolution_concat_112_48_96, convolution_concat_96_32_64, convolution_concat_64_9_64, convolution_32_3_img; + Program spatial_cache_update, spatial_cache_resolve; + } prog_; + + struct { + Pipeline prim_rays_gen_simple, prim_rays_gen_adaptive; + Pipeline intersect_scene, intersect_scene_indirect, intersect_area_lights; + Pipeline shade_primary, shade_primary_sky, shade_primary_cache_update, shade_primary_cache_query, + shade_primary_cache_query_sky, shade_secondary, shade_secondary_sky, shade_secondary_cache_update, + shade_secondary_cache_query, shade_secondary_cache_query_sky; + Pipeline shade_sky; + Pipeline intersect_scene_shadow, prepare_indir_args, mix_incremental, postprocess, filter_variance, nlm_filter, + debug_rt; + Pipeline sort_hash_rays, sort_init_count_table, sort_reduce, sort_scan, sort_scan_add, sort_scatter, + sort_reorder_rays, intersect_scene_rtpipe, intersect_scene_indirect_rtpipe; + Pipeline convolution_Img_9_32, convolution_32_32_Downsample, convolution_32_48_Downsample, + convolution_48_64_Downsample, convolution_64_80_Downsample, convolution_64_64, convolution_64_32, + convolution_80_96, convolution_96_96, convolution_112_112, convolution_concat_96_64_112, + convolution_concat_112_48_96, convolution_concat_96_32_64, convolution_concat_64_9_64, convolution_32_3_img; + Pipeline spatial_cache_update, spatial_cache_resolve; + } pi_; + + bool InitPipelines(ILog *log, const std::function ¶llel_for); int w_ = 0, h_ = 0; bool use_hwrt_ = false, use_bindless_ = false, use_tex_compression_ = false, use_fp16_ = false, @@ -146,7 +144,7 @@ class Renderer : public RendererBase { Buffer unet_tensors_heap_; unet_filter_tensors_t unet_tensors_ = {}; SmallVector unet_alias_dependencies_[UNetFilterPasses]; - bool InitUNetFilterPipelines(); + bool InitUNetFilterPipelines(const std::function ¶llel_for); void UpdateUNetFilterMemory(CommandBuffer cmd_buf); struct { @@ -314,7 +312,7 @@ class Renderer : public RendererBase { color_data_rgba_t get_pixels_ref(bool tonemap) const; public: - Renderer(const settings_t &s, ILog *log); + Renderer(const settings_t &s, ILog *log, const std::function ¶llel_for); ~Renderer() override; eRendererType type() const override; @@ -363,7 +361,9 @@ class Renderer : public RendererBase { void GetStats(stats_t &st) override { st = stats_; } void ResetStats() override { stats_ = {0}; } - void InitUNetFilter(bool alias_memory, unet_filter_properties_t &out_props) override; + unet_filter_properties_t + InitUNetFilter(bool alias_memory, + const std::function ¶llel_for) override; }; } // namespace NS } // namespace Ray @@ -526,7 +526,9 @@ inline void Ray::NS::Renderer::UpdateFilterTable(CommandBuffer cmd_buf, const eP CopyBufferToBuffer(stage_buf, 0, filter_table_, 0, FILTER_TABLE_SIZE * sizeof(float), cmd_buf); } -inline void Ray::NS::Renderer::InitUNetFilter(const bool alias_memory, unet_filter_properties_t &out_props) { +inline Ray::unet_filter_properties_t +Ray::NS::Renderer::InitUNetFilter(const bool alias_memory, + const std::function ¶llel_for) { CommandBuffer cmd_buf = BegSingleTimeCommands(ctx_->api(), ctx_->device(), ctx_->temp_command_pool()); Buffer temp_upload_buf; @@ -604,6 +606,7 @@ inline void Ray::NS::Renderer::InitUNetFilter(const bool alias_memory, unet_filt unet_offsets_.dec_conv0_weight *= el_sz; unet_offsets_.dec_conv0_bias *= el_sz; + unet_filter_properties_t out_props; out_props.pass_count = UNetFilterPasses; for (int i = 0; i < UNetFilterPasses; ++i) { std::fill(&out_props.alias_dependencies[i][0], &out_props.alias_dependencies[i][0] + 4, -1); @@ -612,11 +615,15 @@ inline void Ray::NS::Renderer::InitUNetFilter(const bool alias_memory, unet_filt } } - if (!pi_convolution_Img_9_32_) { - if (!InitUNetFilterPipelines()) { + if (!pi_.convolution_Img_9_32) { + if (!InitUNetFilterPipelines(parallel_for)) { throw std::runtime_error("Error initializing pipeline!"); } + // Release shader modules + sh_ = {}; } + + return out_props; } inline void Ray::NS::Renderer::UpdateUNetFilterMemory(CommandBuffer cmd_buf) { diff --git a/internal/RendererGPU_kernels.h b/internal/RendererGPU_kernels.h index 05b68ecfa..102de77d3 100644 --- a/internal/RendererGPU_kernels.h +++ b/internal/RendererGPU_kernels.h @@ -74,7 +74,7 @@ void Ray::NS::Renderer::kernel_GeneratePrimaryRays(CommandBuffer cmd_buf, const const bool adaptive = _adaptive && (iteration > cam.pass_settings.min_samples) && cam.pass_settings.min_samples != -1; - DispatchCompute(cmd_buf, adaptive ? pi_prim_rays_gen_adaptive_ : pi_prim_rays_gen_simple_, grp_count, bindings, + DispatchCompute(cmd_buf, adaptive ? pi_.prim_rays_gen_adaptive : pi_.prim_rays_gen_simple, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -98,7 +98,7 @@ void Ray::NS::Renderer::kernel_IntersectAreaLights(CommandBuffer cmd_buf, const uniform_params.img_size[1] = h_; uniform_params.node_index = 0; // tree root - DispatchComputeIndirect(cmd_buf, pi_intersect_area_lights_, indir_args, 0, bindings, &uniform_params, + DispatchComputeIndirect(cmd_buf, pi_.intersect_area_lights, indir_args, 0, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -146,7 +146,7 @@ void Ray::NS::Renderer::kernel_MixIncremental(CommandBuffer cmd_buf, const float uniform_params.accumulate_half_img = is_class_a ? 1.0f : 0.0f; uniform_params.exposure = exposure; - DispatchCompute(cmd_buf, pi_mix_incremental_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.mix_incremental, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -181,7 +181,7 @@ void Ray::NS::Renderer::kernel_Postprocess(CommandBuffer cmd_buf, const Texture2 uniform_params.variance_threshold = variance_threshold; uniform_params.iteration = iteration; - DispatchCompute(cmd_buf, pi_postprocess_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.postprocess, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -211,7 +211,7 @@ void Ray::NS::Renderer::kernel_FilterVariance(CommandBuffer cmd_buf, const Textu uniform_params.variance_threshold = variance_threshold; uniform_params.iteration = iteration; - DispatchCompute(cmd_buf, pi_filter_variance_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.filter_variance, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -257,7 +257,7 @@ void Ray::NS::Renderer::kernel_NLMFilter(CommandBuffer cmd_buf, const Texture2D uniform_params.base_color_weight = base_color_weight; uniform_params.depth_normal_weight = depth_normals_weight; - DispatchCompute(cmd_buf, pi_nlm_filter_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.nlm_filter, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -316,7 +316,7 @@ void Ray::NS::Renderer::kernel_Convolution(CommandBuffer cmd_buf, int in_channel Pipeline *pi = nullptr; if (in_channels == 9 && out_channels == 32) { assert(img_buf2.ready() && img_buf3.ready()); - pi = &pi_convolution_Img_9_32_; + pi = &pi_.convolution_Img_9_32; } DispatchCompute(cmd_buf, *pi, grp_count, bindings, &uniform_params, sizeof(uniform_params), @@ -371,23 +371,23 @@ void Ray::NS::Renderer::kernel_Convolution(CommandBuffer cmd_buf, int in_channel Pipeline *pi = nullptr; if (in_channels == 32 && out_channels == 32 && downsample) { - pi = &pi_convolution_32_32_Downsample_; + pi = &pi_.convolution_32_32_Downsample; } else if (in_channels == 32 && out_channels == 48 && downsample) { - pi = &pi_convolution_32_48_Downsample_; + pi = &pi_.convolution_32_48_Downsample; } else if (in_channels == 48 && out_channels == 64 && downsample) { - pi = &pi_convolution_48_64_Downsample_; + pi = &pi_.convolution_48_64_Downsample; } else if (in_channels == 64 && out_channels == 80 && downsample) { - pi = &pi_convolution_64_80_Downsample_; + pi = &pi_.convolution_64_80_Downsample; } else if (in_channels == 64 && out_channels == 64) { - pi = &pi_convolution_64_64_; + pi = &pi_.convolution_64_64; } else if (in_channels == 64 && out_channels == 32) { - pi = &pi_convolution_64_32_; + pi = &pi_.convolution_64_32; } else if (in_channels == 80 && out_channels == 96) { - pi = &pi_convolution_80_96_; + pi = &pi_.convolution_80_96; } else if (in_channels == 96 && out_channels == 96) { - pi = &pi_convolution_96_96_; + pi = &pi_.convolution_96_96; } else if (in_channels == 112 && out_channels == 112) { - pi = &pi_convolution_112_112_; + pi = &pi_.convolution_112_112; } DispatchCompute(cmd_buf, *pi, grp_count, bindings, &uniform_params, sizeof(uniform_params), @@ -435,7 +435,7 @@ void Ray::NS::Renderer::kernel_Convolution(CommandBuffer cmd_buf, int in_channel Pipeline *pi = nullptr; if (in_channels == 32 && out_channels == 3) { - pi = &pi_convolution_32_3_img_; + pi = &pi_.convolution_32_3_img; } DispatchCompute(cmd_buf, *pi, grp_count, bindings, &uniform_params, sizeof(uniform_params), @@ -488,11 +488,11 @@ void Ray::NS::Renderer::kernel_ConvolutionConcat(CommandBuffer cmd_buf, int in_c Pipeline *pi = nullptr; if (in_channels1 == 96 && in_channels2 == 64 && out_channels == 112 && upscale1) { - pi = &pi_convolution_concat_96_64_112_; + pi = &pi_.convolution_concat_96_64_112; } else if (in_channels1 == 112 && in_channels2 == 48 && out_channels == 96 && upscale1) { - pi = &pi_convolution_concat_112_48_96_; + pi = &pi_.convolution_concat_112_48_96; } else if (in_channels1 == 96 && in_channels2 == 32 && out_channels == 64 && upscale1) { - pi = &pi_convolution_concat_96_32_64_; + pi = &pi_.convolution_concat_96_32_64; } DispatchCompute(cmd_buf, *pi, grp_count, bindings, &uniform_params, sizeof(uniform_params), @@ -555,14 +555,11 @@ void Ray::NS::Renderer::kernel_ConvolutionConcat(CommandBuffer cmd_buf, int in_c uniform_params.out_dims[1] = h; Pipeline *pi = nullptr; - if (in_channels1 == 64 && in_channels2 == 3 && out_channels == 64 && upscale1) { - pi = &pi_convolution_concat_64_3_64_; - } else if (in_channels1 == 64 && in_channels2 == 6 && out_channels == 64 && upscale1) { - assert(img_buf2.ready()); - pi = &pi_convolution_concat_64_6_64_; - } else if (in_channels1 == 64 && in_channels2 == 9 && out_channels == 64 && upscale1) { + if (in_channels1 == 64 && in_channels2 == 9 && out_channels == 64 && upscale1) { assert(img_buf2.ready() && img_buf3.ready()); - pi = &pi_convolution_concat_64_9_64_; + pi = &pi_.convolution_concat_64_9_64; + } else { + assert(false); } DispatchCompute(cmd_buf, *pi, grp_count, bindings, &uniform_params, sizeof(uniform_params), @@ -579,7 +576,7 @@ void Ray::NS::Renderer::kernel_PrepareIndirArgs(CommandBuffer cmd_buf, const Buf {eBindTarget::SBufRW, PrepareIndirArgs::OUT_INDIR_ARGS_SLOT, out_indir_args}}; const uint32_t grp_count[3] = {1u, 1u, 1u}; - DispatchCompute(cmd_buf, pi_prepare_indir_args_, grp_count, bindings, nullptr, 0, ctx_->default_descr_alloc(), + DispatchCompute(cmd_buf, pi_.prepare_indir_args, grp_count, bindings, nullptr, 0, ctx_->default_descr_alloc(), ctx_->log()); } @@ -600,7 +597,7 @@ void Ray::NS::Renderer::kernel_SortHashRays(CommandBuffer cmd_buf, const Buffer memcpy(&uniform_params.root_min[0], root_min, 3 * sizeof(float)); memcpy(&uniform_params.cell_size[0], cell_size, 3 * sizeof(float)); - DispatchComputeIndirect(cmd_buf, pi_sort_hash_rays_, indir_args, 0, bindings, &uniform_params, + DispatchComputeIndirect(cmd_buf, pi_.sort_hash_rays, indir_args, 0, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -623,7 +620,7 @@ void Ray::NS::Renderer::kernel_SortReorderRays(CommandBuffer cmd_buf, const Buff SortReorderRays::Params uniform_params = {}; uniform_params.counter = counter_index; - DispatchComputeIndirect(cmd_buf, pi_sort_reorder_rays_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.sort_reorder_rays, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -646,7 +643,7 @@ void Ray::NS::Renderer::kernel_SortInitCountTable(CommandBuffer cmd_buf, const i uniform_params.counter = counter_index; uniform_params.shift = shift; - DispatchComputeIndirect(cmd_buf, pi_sort_init_count_table_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.sort_init_count_table, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -667,7 +664,7 @@ void Ray::NS::Renderer::kernel_SortReduce(CommandBuffer cmd_buf, const Buffer &i SortReduce::Params uniform_params = {}; uniform_params.counter = counter_index; - DispatchComputeIndirect(cmd_buf, pi_sort_reduce_, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), + DispatchComputeIndirect(cmd_buf, pi_.sort_reduce, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -689,7 +686,7 @@ void Ray::NS::Renderer::kernel_SortScan(CommandBuffer cmd_buf, const Buffer &inp uniform_params.counter = counter_index; const uint32_t grp_count[3] = {1, 1, 1}; - DispatchCompute(cmd_buf, pi_sort_scan_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.sort_scan, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -711,7 +708,7 @@ void Ray::NS::Renderer::kernel_SortScanAdd(CommandBuffer cmd_buf, const Buffer & SortScan::Params uniform_params = {}; uniform_params.counter = counter_index; - DispatchComputeIndirect(cmd_buf, pi_sort_scan_add_, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), + DispatchComputeIndirect(cmd_buf, pi_.sort_scan_add, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -735,7 +732,7 @@ void Ray::NS::Renderer::kernel_SortScatter(CommandBuffer cmd_buf, int shift, con uniform_params.counter = counter_index; uniform_params.shift = shift; - DispatchComputeIndirect(cmd_buf, pi_sort_scatter_, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), + DispatchComputeIndirect(cmd_buf, pi_.sort_scatter, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -780,7 +777,7 @@ void Ray::NS::Renderer::kernel_SpatialCacheUpdate(CommandBuffer cmd_buf, const c uniform_params.entries_count = inout_entries.size() / sizeof(uint64_t); uniform_params.exposure = params.exposure; - DispatchComputeIndirect(cmd_buf, pi_spatial_cache_update_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.spatial_cache_update, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -809,7 +806,7 @@ void Ray::NS::Renderer::kernel_SpatialCacheResolve(CommandBuffer cmd_buf, const assert((uniform_params.entries_count % CacheResolve::LOCAL_GROUP_SIZE_X) == 0); const uint32_t grp_count[3] = {uniform_params.entries_count / CacheResolve::LOCAL_GROUP_SIZE_X, 1, 1}; - DispatchCompute(cmd_buf, pi_spatial_cache_resolve_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.spatial_cache_resolve, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -872,7 +869,7 @@ inline void Ray::NS::Renderer::kernel_ShadeSky(CommandBuffer cmd_buf, const pass uniform_params.light_col_point[2] *= (PI * radius * radius); } - DispatchComputeIndirect(cmd_buf, pi_shade_sky_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.shade_sky, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -887,7 +884,7 @@ inline void Ray::NS::Renderer::kernel_ShadeSky(CommandBuffer cmd_buf, const pass memcpy(uniform_params.light_col_point, value_ptr(light_col), 3 * sizeof(float)); uniform_params.light_col[3] = 0.0f; - DispatchComputeIndirect(cmd_buf, pi_shade_sky_, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), + DispatchComputeIndirect(cmd_buf, pi_.shade_sky, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } diff --git a/internal/RendererVK.cpp b/internal/RendererVK.cpp index eb2c6fd22..c93df902d 100644 --- a/internal/RendererVK.cpp +++ b/internal/RendererVK.cpp @@ -103,12 +103,6 @@ namespace Vk { #include "shaders/output/convolution_concat_112_48_96_coop.comp.spv.inl" #include "shaders/output/convolution_concat_112_48_96_fp16.comp.spv.inl" #include "shaders/output/convolution_concat_112_48_96_fp32.comp.spv.inl" -#include "shaders/output/convolution_concat_64_3_64_coop.comp.spv.inl" -#include "shaders/output/convolution_concat_64_3_64_fp16.comp.spv.inl" -#include "shaders/output/convolution_concat_64_3_64_fp32.comp.spv.inl" -#include "shaders/output/convolution_concat_64_6_64_coop.comp.spv.inl" -#include "shaders/output/convolution_concat_64_6_64_fp16.comp.spv.inl" -#include "shaders/output/convolution_concat_64_6_64_fp32.comp.spv.inl" #include "shaders/output/convolution_concat_64_9_64_coop.comp.spv.inl" #include "shaders/output/convolution_concat_64_9_64_fp16.comp.spv.inl" #include "shaders/output/convolution_concat_64_9_64_fp32.comp.spv.inl" @@ -227,7 +221,8 @@ std::vector deflate_data(const uint8_t *data, const int len) { #include "RendererGPU_kernels.h" #undef NS -Ray::Vk::Renderer::Renderer(const settings_t &s, ILog *log) { +Ray::Vk::Renderer::Renderer(const settings_t &s, ILog *log, + const std::function ¶llel_for) { ctx_ = std::make_unique(); const bool res = ctx_->Init(log, s.vk_device, s.vk_functions, s.preferred_device, s.validation_level); if (!res) { @@ -253,46 +248,7 @@ Ray::Vk::Renderer::Renderer(const settings_t &s, ILog *log) { log->Info("SpatialCache is %s", use_spatial_cache_ ? "enabled" : "disabled"); log->Info("============================================================================"); - if (!InitShaders(log)) { - throw std::runtime_error("Error initializing vulkan shaders!"); - } - - if (!pi_prim_rays_gen_simple_.Init(ctx_.get(), &prog_prim_rays_gen_simple_, log) || - !pi_prim_rays_gen_adaptive_.Init(ctx_.get(), &prog_prim_rays_gen_adaptive_, log) || - !pi_intersect_scene_.Init(ctx_.get(), &prog_intersect_scene_, log) || - !pi_intersect_scene_indirect_.Init(ctx_.get(), &prog_intersect_scene_indirect_, log) || - !pi_intersect_area_lights_.Init(ctx_.get(), &prog_intersect_area_lights_, log) || - !pi_shade_primary_.Init(ctx_.get(), &prog_shade_primary_, log) || - !pi_shade_primary_sky_.Init(ctx_.get(), &prog_shade_primary_sky_, log) || - !pi_shade_primary_cache_update_.Init(ctx_.get(), &prog_shade_primary_cache_update_, log) || - !pi_shade_primary_cache_query_.Init(ctx_.get(), &prog_shade_primary_cache_query_, log) || - !pi_shade_primary_cache_query_sky_.Init(ctx_.get(), &prog_shade_primary_cache_query_sky_, log) || - !pi_shade_secondary_.Init(ctx_.get(), &prog_shade_secondary_, log) || - !pi_shade_secondary_sky_.Init(ctx_.get(), &prog_shade_secondary_sky_, log) || - !pi_shade_secondary_cache_update_.Init(ctx_.get(), &prog_shade_secondary_cache_update_, log) || - !pi_shade_secondary_cache_query_.Init(ctx_.get(), &prog_shade_secondary_cache_query_, log) || - !pi_shade_secondary_cache_query_sky_.Init(ctx_.get(), &prog_shade_secondary_cache_query_sky_, log) || - !pi_shade_sky_.Init(ctx_.get(), &prog_shade_sky_, log) || - !pi_intersect_scene_shadow_.Init(ctx_.get(), &prog_intersect_scene_shadow_, log) || - !pi_prepare_indir_args_.Init(ctx_.get(), &prog_prepare_indir_args_, log) || - !pi_mix_incremental_.Init(ctx_.get(), &prog_mix_incremental_, log) || - !pi_postprocess_.Init(ctx_.get(), &prog_postprocess_, log) || - !pi_filter_variance_.Init(ctx_.get(), &prog_filter_variance_, log) || - !pi_nlm_filter_.Init(ctx_.get(), &prog_nlm_filter_, log) || - (use_hwrt_ && !pi_debug_rt_.Init(ctx_.get(), &prog_debug_rt_, log)) || - !pi_sort_hash_rays_.Init(ctx_.get(), &prog_sort_hash_rays_, log) || - (use_subgroup_ && !pi_sort_init_count_table_.Init(ctx_.get(), &prog_sort_init_count_table_, log)) || - (use_subgroup_ && !pi_sort_reduce_.Init(ctx_.get(), &prog_sort_reduce_, log)) || - (use_subgroup_ && !pi_sort_scan_.Init(ctx_.get(), &prog_sort_scan_, log)) || - (use_subgroup_ && !pi_sort_scan_add_.Init(ctx_.get(), &prog_sort_scan_add_, log)) || - (use_subgroup_ && !pi_sort_scatter_.Init(ctx_.get(), &prog_sort_scatter_, log)) || - !pi_sort_reorder_rays_.Init(ctx_.get(), &prog_sort_reorder_rays_, log) || - (ENABLE_RT_PIPELINE && use_hwrt_ && - !pi_intersect_scene_rtpipe_.Init(ctx_.get(), &prog_intersect_scene_rtpipe_, log)) || - (ENABLE_RT_PIPELINE && use_hwrt_ && - !pi_intersect_scene_indirect_rtpipe_.Init(ctx_.get(), &prog_intersect_scene_indirect_rtpipe_, log)) || - (use_spatial_cache_ && !pi_spatial_cache_update_.Init(ctx_.get(), &prog_spatial_cache_update_, log)) || - (use_spatial_cache_ && !pi_spatial_cache_resolve_.Init(ctx_.get(), &prog_spatial_cache_resolve_, log))) { + if (!InitPipelines(log, parallel_for)) { throw std::runtime_error("Error initializing vulkan pipelines!"); } @@ -1841,156 +1797,117 @@ Ray::GpuImage Ray::Vk::Renderer::get_native_raw_pixels() const { eGPUResState(raw_filtered_buf_.resource_state)}; } -bool Ray::Vk::Renderer::InitUNetFilterPipelines() { +bool Ray::Vk::Renderer::InitUNetFilterPipelines( + const std::function ¶llel_for) { ILog *log = ctx_->log(); - auto select_unpack_shader = [this](Span default_shader, Span fp16_shader, - Span coop_shader) { - return Inflate(use_fp16_ ? (use_coop_matrix_ ? coop_shader : fp16_shader) : default_shader); + auto select_shader = [this](Span default_shader, Span fp16_shader, + Span coop_shader) { + return use_fp16_ ? (use_coop_matrix_ ? coop_shader : fp16_shader) : default_shader; }; AGAIN: - sh_convolution_Img_9_32_ = Shader{"Convolution Img 9 32", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_Img_9_32_fp32_comp_spv, - internal_shaders_output_convolution_Img_9_32_fp16_comp_spv, - internal_shaders_output_convolution_Img_9_32_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_32_32_Downsample_ = - Shader{"Convolution 32 32 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_32_Downsample_fp32_comp_spv, - internal_shaders_output_convolution_32_32_Downsample_fp16_comp_spv, - internal_shaders_output_convolution_32_32_Downsample_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_32_48_Downsample_ = - Shader{"Convolution 32 48 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_48_Downsample_fp32_comp_spv, - internal_shaders_output_convolution_32_48_Downsample_fp16_comp_spv, - internal_shaders_output_convolution_32_48_Downsample_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_48_64_Downsample_ = - Shader{"Convolution 48 64 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_48_64_Downsample_fp32_comp_spv, - internal_shaders_output_convolution_48_64_Downsample_fp16_comp_spv, - internal_shaders_output_convolution_48_64_Downsample_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_64_80_Downsample_ = - Shader{"Convolution 64 80 Downsample", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_80_Downsample_fp32_comp_spv, - internal_shaders_output_convolution_64_80_Downsample_fp16_comp_spv, - internal_shaders_output_convolution_64_80_Downsample_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_64_64_ = Shader{"Convolution 64 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_64_fp32_comp_spv, - internal_shaders_output_convolution_64_64_fp16_comp_spv, - internal_shaders_output_convolution_64_64_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_64_32_ = Shader{"Convolution 64 32", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_64_32_fp32_comp_spv, - internal_shaders_output_convolution_64_32_fp16_comp_spv, - internal_shaders_output_convolution_64_32_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_80_96_ = Shader{"Convolution 80 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_80_96_fp32_comp_spv, - internal_shaders_output_convolution_80_96_fp16_comp_spv, - internal_shaders_output_convolution_80_96_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_96_96_ = Shader{"Convolution 96 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_96_96_fp32_comp_spv, - internal_shaders_output_convolution_96_96_fp16_comp_spv, - internal_shaders_output_convolution_96_96_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_112_112_ = Shader{"Convolution 112 112", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_112_112_fp32_comp_spv, - internal_shaders_output_convolution_112_112_fp16_comp_spv, - internal_shaders_output_convolution_112_112_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_96_64_112_ = - Shader{"Convolution Concat 96 64 112", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_96_64_112_fp32_comp_spv, - internal_shaders_output_convolution_concat_96_64_112_fp16_comp_spv, - internal_shaders_output_convolution_concat_96_64_112_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_112_48_96_ = - Shader{"Convolution Concat 112 48 96", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_112_48_96_fp32_comp_spv, - internal_shaders_output_convolution_concat_112_48_96_fp16_comp_spv, - internal_shaders_output_convolution_concat_112_48_96_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_96_32_64_ = - Shader{"Convolution Concat 96 32 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_96_32_64_fp32_comp_spv, - internal_shaders_output_convolution_concat_96_32_64_fp16_comp_spv, - internal_shaders_output_convolution_concat_96_32_64_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_64_3_64_ = - Shader{"Convolution Concat 64 3 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_3_64_fp32_comp_spv, - internal_shaders_output_convolution_concat_64_3_64_fp16_comp_spv, - internal_shaders_output_convolution_concat_64_3_64_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_64_6_64_ = - Shader{"Convolution Concat 64 6 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_6_64_fp32_comp_spv, - internal_shaders_output_convolution_concat_64_6_64_fp16_comp_spv, - internal_shaders_output_convolution_concat_64_6_64_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_concat_64_9_64_ = - Shader{"Convolution Concat 64 9 64", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_concat_64_9_64_fp32_comp_spv, - internal_shaders_output_convolution_concat_64_9_64_fp16_comp_spv, - internal_shaders_output_convolution_concat_64_9_64_coop_comp_spv), - eShaderType::Comp, log}; - sh_convolution_32_3_img_ = Shader{"Convolution 32 3 Img", ctx_.get(), - select_unpack_shader(internal_shaders_output_convolution_32_3_img_fp32_comp_spv, - internal_shaders_output_convolution_32_3_img_fp16_comp_spv, - internal_shaders_output_convolution_32_3_img_coop_comp_spv), - eShaderType::Comp, log}; - - prog_convolution_Img_9_32_ = Program{"Convolution Img 9 32", ctx_.get(), &sh_convolution_Img_9_32_, log}; - prog_convolution_32_32_Downsample_ = - Program{"Convolution 32 32", ctx_.get(), &sh_convolution_32_32_Downsample_, log}; - prog_convolution_32_48_Downsample_ = - Program{"Convolution 32 48", ctx_.get(), &sh_convolution_32_48_Downsample_, log}; - prog_convolution_48_64_Downsample_ = - Program{"Convolution 48 64", ctx_.get(), &sh_convolution_48_64_Downsample_, log}; - prog_convolution_64_80_Downsample_ = - Program{"Convolution 64 80", ctx_.get(), &sh_convolution_64_80_Downsample_, log}; - prog_convolution_64_64_ = Program{"Convolution 64 64", ctx_.get(), &sh_convolution_64_64_, log}; - prog_convolution_64_32_ = Program{"Convolution 64 32", ctx_.get(), &sh_convolution_64_32_, log}; - prog_convolution_80_96_ = Program{"Convolution 80 96", ctx_.get(), &sh_convolution_80_96_, log}; - prog_convolution_96_96_ = Program{"Convolution 96 96", ctx_.get(), &sh_convolution_96_96_, log}; - prog_convolution_112_112_ = Program{"Convolution 112 112", ctx_.get(), &sh_convolution_112_112_, log}; - prog_convolution_concat_96_64_112_ = - Program{"Convolution Concat 96 64 112", ctx_.get(), &sh_convolution_concat_96_64_112_, log}; - prog_convolution_concat_112_48_96_ = - Program{"Convolution Concat 112 48 96", ctx_.get(), &sh_convolution_concat_112_48_96_, log}; - prog_convolution_concat_96_32_64_ = - Program{"Convolution Concat 96 32 64", ctx_.get(), &sh_convolution_concat_96_32_64_, log}; - prog_convolution_concat_64_3_64_ = - Program{"Convolution Concat 64 3 64", ctx_.get(), &sh_convolution_concat_64_3_64_, log}; - prog_convolution_concat_64_6_64_ = - Program{"Convolution Concat 64 6 64", ctx_.get(), &sh_convolution_concat_64_6_64_, log}; - prog_convolution_concat_64_9_64_ = - Program{"Convolution Concat 64 9 64", ctx_.get(), &sh_convolution_concat_64_9_64_, log}; - prog_convolution_32_3_img_ = Program{"Convolution 32 3 Img", ctx_.get(), &sh_convolution_32_3_img_, log}; - - const bool result = pi_convolution_Img_9_32_.Init(ctx_.get(), &prog_convolution_Img_9_32_, log) && - pi_convolution_32_32_Downsample_.Init(ctx_.get(), &prog_convolution_32_32_Downsample_, log) && - pi_convolution_32_48_Downsample_.Init(ctx_.get(), &prog_convolution_32_48_Downsample_, log) && - pi_convolution_48_64_Downsample_.Init(ctx_.get(), &prog_convolution_48_64_Downsample_, log) && - pi_convolution_64_80_Downsample_.Init(ctx_.get(), &prog_convolution_64_80_Downsample_, log) && - pi_convolution_64_64_.Init(ctx_.get(), &prog_convolution_64_64_, log) && - pi_convolution_64_32_.Init(ctx_.get(), &prog_convolution_64_32_, log) && - pi_convolution_80_96_.Init(ctx_.get(), &prog_convolution_80_96_, log) && - pi_convolution_96_96_.Init(ctx_.get(), &prog_convolution_96_96_, log) && - pi_convolution_112_112_.Init(ctx_.get(), &prog_convolution_112_112_, log) && - pi_convolution_concat_96_64_112_.Init(ctx_.get(), &prog_convolution_concat_96_64_112_, log) && - pi_convolution_concat_112_48_96_.Init(ctx_.get(), &prog_convolution_concat_112_48_96_, log) && - pi_convolution_concat_96_32_64_.Init(ctx_.get(), &prog_convolution_concat_96_32_64_, log) && - pi_convolution_concat_64_3_64_.Init(ctx_.get(), &prog_convolution_concat_64_3_64_, log) && - pi_convolution_concat_64_6_64_.Init(ctx_.get(), &prog_convolution_concat_64_6_64_, log) && - pi_convolution_concat_64_9_64_.Init(ctx_.get(), &prog_convolution_concat_64_9_64_, log) && - pi_convolution_32_3_img_.Init(ctx_.get(), &prog_convolution_32_3_img_, log); + + SmallVector, eShaderType, bool>, 32> + shaders_to_init = { + {sh_.convolution_Img_9_32, prog_.convolution_Img_9_32, pi_.convolution_Img_9_32, "Convolution Img 9 32", + select_shader(internal_shaders_output_convolution_Img_9_32_fp32_comp_spv, + internal_shaders_output_convolution_Img_9_32_fp16_comp_spv, + internal_shaders_output_convolution_Img_9_32_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_32_32_Downsample, prog_.convolution_32_32_Downsample, pi_.convolution_32_32_Downsample, + "Convolution 32 32 Downsample", + select_shader(internal_shaders_output_convolution_32_32_Downsample_fp32_comp_spv, + internal_shaders_output_convolution_32_32_Downsample_fp16_comp_spv, + internal_shaders_output_convolution_32_32_Downsample_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_32_48_Downsample, prog_.convolution_32_48_Downsample, pi_.convolution_32_48_Downsample, + "Convolution 32 48 Downsample", + select_shader(internal_shaders_output_convolution_32_48_Downsample_fp32_comp_spv, + internal_shaders_output_convolution_32_48_Downsample_fp16_comp_spv, + internal_shaders_output_convolution_32_48_Downsample_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_48_64_Downsample, prog_.convolution_48_64_Downsample, pi_.convolution_48_64_Downsample, + "Convolution 48 64 Downsample", + select_shader(internal_shaders_output_convolution_48_64_Downsample_fp32_comp_spv, + internal_shaders_output_convolution_48_64_Downsample_fp16_comp_spv, + internal_shaders_output_convolution_48_64_Downsample_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_64_80_Downsample, prog_.convolution_64_80_Downsample, pi_.convolution_64_80_Downsample, + "Convolution 64 80 Downsample", + select_shader(internal_shaders_output_convolution_64_80_Downsample_fp32_comp_spv, + internal_shaders_output_convolution_64_80_Downsample_fp16_comp_spv, + internal_shaders_output_convolution_64_80_Downsample_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_64_64, prog_.convolution_64_64, pi_.convolution_64_64, "Convolution 64 64", + select_shader(internal_shaders_output_convolution_64_64_fp32_comp_spv, + internal_shaders_output_convolution_64_64_fp16_comp_spv, + internal_shaders_output_convolution_64_64_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_64_32, prog_.convolution_64_32, pi_.convolution_64_32, "Convolution 64 32", + select_shader(internal_shaders_output_convolution_64_32_fp32_comp_spv, + internal_shaders_output_convolution_64_32_fp16_comp_spv, + internal_shaders_output_convolution_64_32_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_80_96, prog_.convolution_80_96, pi_.convolution_80_96, "Convolution 80 96", + select_shader(internal_shaders_output_convolution_80_96_fp32_comp_spv, + internal_shaders_output_convolution_80_96_fp16_comp_spv, + internal_shaders_output_convolution_80_96_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_96_96, prog_.convolution_96_96, pi_.convolution_96_96, "Convolution 96 96", + select_shader(internal_shaders_output_convolution_96_96_fp32_comp_spv, + internal_shaders_output_convolution_96_96_fp16_comp_spv, + internal_shaders_output_convolution_96_96_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_112_112, prog_.convolution_112_112, pi_.convolution_112_112, "Convolution 112 112", + select_shader(internal_shaders_output_convolution_112_112_fp32_comp_spv, + internal_shaders_output_convolution_112_112_fp16_comp_spv, + internal_shaders_output_convolution_112_112_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_concat_96_64_112, prog_.convolution_concat_96_64_112, pi_.convolution_concat_96_64_112, + "Convolution Concat 96 64 112", + select_shader(internal_shaders_output_convolution_concat_96_64_112_fp32_comp_spv, + internal_shaders_output_convolution_concat_96_64_112_fp16_comp_spv, + internal_shaders_output_convolution_concat_96_64_112_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_concat_112_48_96, prog_.convolution_concat_112_48_96, pi_.convolution_concat_112_48_96, + "Convolution Concat 112 48 96", + select_shader(internal_shaders_output_convolution_concat_112_48_96_fp32_comp_spv, + internal_shaders_output_convolution_concat_112_48_96_fp16_comp_spv, + internal_shaders_output_convolution_concat_112_48_96_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_concat_96_32_64, prog_.convolution_concat_96_32_64, pi_.convolution_concat_96_32_64, + "Convolution Concat 96 32 64", + select_shader(internal_shaders_output_convolution_concat_96_32_64_fp32_comp_spv, + internal_shaders_output_convolution_concat_96_32_64_fp16_comp_spv, + internal_shaders_output_convolution_concat_96_32_64_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_concat_64_9_64, prog_.convolution_concat_64_9_64, pi_.convolution_concat_64_9_64, + "Convolution Concat 64 9 64", + select_shader(internal_shaders_output_convolution_concat_64_9_64_fp32_comp_spv, + internal_shaders_output_convolution_concat_64_9_64_fp16_comp_spv, + internal_shaders_output_convolution_concat_64_9_64_coop_comp_spv), + eShaderType::Comp, false}, + {sh_.convolution_32_3_img, prog_.convolution_32_3_img, pi_.convolution_32_3_img, "Convolution 32 3 Img", + select_shader(internal_shaders_output_convolution_32_3_img_fp32_comp_spv, + internal_shaders_output_convolution_32_3_img_fp16_comp_spv, + internal_shaders_output_convolution_32_3_img_coop_comp_spv), + eShaderType::Comp, false}}; + parallel_for(0, int(shaders_to_init.size()), [&](const int i) { + std::get<6>(shaders_to_init[i]) = + std::get<0>(shaders_to_init[i]) + .Init(std::get<3>(shaders_to_init[i]), ctx_.get(), Inflate(std::get<4>(shaders_to_init[i])), + std::get<5>(shaders_to_init[i]), log); + std::get<1>(shaders_to_init[i]) = + Program{std::get<3>(shaders_to_init[i]), ctx_.get(), &std::get<0>(shaders_to_init[i]), log}; + std::get<2>(shaders_to_init[i]).Init(ctx_.get(), &std::get<1>(shaders_to_init[i]), log); + }); + + bool result = true; + for (const auto &sh : shaders_to_init) { + result &= std::get<6>(sh); + } + if (!result && use_coop_matrix_) { ctx_->log()->Warning("Failed to initialize UNet pipelines, retrying without cooperative matrix!"); use_coop_matrix_ = false; @@ -2024,7 +1941,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const pass_ bindings.emplace_back(eBindTarget::SBufRO, Types::TEXTURES_SIZE_SLOT, bindless_tex.tex_sizes); assert(bindless_tex.descr_set); - ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_COMPUTE, pi_intersect_scene_.layout(), 1, 1, + ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_COMPUTE, pi_.intersect_scene.layout(), 1, 1, &bindless_tex.descr_set, 0, nullptr); } else { bindings.emplace_back(eBindTarget::SBufRO, Types::TEXTURES_BUF_SLOT, sc_data.atlas_textures); @@ -2059,7 +1976,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const pass_ uint32_t((rect.w + IntersectScene::LOCAL_GROUP_SIZE_X - 1) / IntersectScene::LOCAL_GROUP_SIZE_X), uint32_t((rect.h + IntersectScene::LOCAL_GROUP_SIZE_Y - 1) / IntersectScene::LOCAL_GROUP_SIZE_Y), 1u}; - DispatchCompute(cmd_buf, pi_intersect_scene_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.intersect_scene, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -2086,7 +2003,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene_RTPipe(CommandBuffer cmd_buf, cons assert(bindless_tex.rt_descr_set); ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, - pi_intersect_scene_rtpipe_.layout(), 1, 1, &bindless_tex.rt_descr_set, 0, + pi_.intersect_scene_rtpipe.layout(), 1, 1, &bindless_tex.rt_descr_set, 0, nullptr); IntersectScene::Params uniform_params = {}; @@ -2106,7 +2023,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene_RTPipe(CommandBuffer cmd_buf, cons const uint32_t dims[3] = {uint32_t(rect.w), uint32_t(rect.h), 1u}; - TraceRays(cmd_buf, pi_intersect_scene_rtpipe_, dims, bindings, &uniform_params, sizeof(uniform_params), + TraceRays(cmd_buf, pi_.intersect_scene_rtpipe, dims, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -2139,7 +2056,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const Buffe assert(bindless_tex.descr_set); ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_COMPUTE, - pi_intersect_scene_indirect_.layout(), 1, 1, &bindless_tex.descr_set, 0, + pi_.intersect_scene_indirect.layout(), 1, 1, &bindless_tex.descr_set, 0, nullptr); } else { bindings.emplace_back(eBindTarget::SBufRO, Types::TEXTURES_BUF_SLOT, sc_data.atlas_textures); @@ -2166,7 +2083,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene(CommandBuffer cmd_buf, const Buffe memcpy(&uniform_params.cam_fwd[0], &cam_fwd[0], 3 * sizeof(float)); } - DispatchComputeIndirect(cmd_buf, pi_intersect_scene_indirect_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.intersect_scene_indirect, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -2193,7 +2110,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene_RTPipe( assert(bindless_tex.rt_descr_set); ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, - pi_intersect_scene_indirect_rtpipe_.layout(), 1, 1, &bindless_tex.rt_descr_set, + pi_.intersect_scene_indirect_rtpipe.layout(), 1, 1, &bindless_tex.rt_descr_set, 0, nullptr); IntersectScene::Params uniform_params = {}; @@ -2207,7 +2124,7 @@ void Ray::Vk::Renderer::kernel_IntersectScene_RTPipe( memcpy(&uniform_params.cam_fwd[0], &cam_fwd[0], 3 * sizeof(float)); } - TraceRaysIndirect(cmd_buf, pi_intersect_scene_indirect_rtpipe_, indir_args, + TraceRaysIndirect(cmd_buf, pi_.intersect_scene_indirect_rtpipe, indir_args, indir_args_index * sizeof(TraceRaysIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -2300,17 +2217,17 @@ void Ray::Vk::Renderer::kernel_ShadePrimaryHits( memcpy(&uniform_params.cam_pos_and_exposure[0], sc_data.spatial_cache_grid.cam_pos_curr, 3 * sizeof(float)); uniform_params.cam_pos_and_exposure[3] = sc_data.spatial_cache_grid.exposure; - Pipeline *pi = &pi_shade_primary_; + Pipeline *pi = &pi_.shade_primary; if (cache_usage == eSpatialCacheMode::Update) { - pi = &pi_shade_primary_cache_update_; + pi = &pi_.shade_primary_cache_update; } else if (cache_usage == eSpatialCacheMode::Query) { if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_primary_cache_query_sky_; + pi = &pi_.shade_primary_cache_query_sky; } else { - pi = &pi_shade_primary_cache_query_; + pi = &pi_.shade_primary_cache_query; } } else if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_primary_sky_; + pi = &pi_.shade_primary_sky; } if (use_bindless_) { @@ -2408,17 +2325,17 @@ void Ray::Vk::Renderer::kernel_ShadeSecondaryHits( memcpy(&uniform_params.cam_pos_and_exposure[0], sc_data.spatial_cache_grid.cam_pos_curr, 3 * sizeof(float)); uniform_params.cam_pos_and_exposure[3] = sc_data.spatial_cache_grid.exposure; - Pipeline *pi = &pi_shade_secondary_; + Pipeline *pi = &pi_.shade_secondary; if (cache_usage == eSpatialCacheMode::Update) { - pi = &pi_shade_secondary_cache_update_; + pi = &pi_.shade_secondary_cache_update; } else if (cache_usage == eSpatialCacheMode::Query) { if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_secondary_cache_query_sky_; + pi = &pi_.shade_secondary_cache_query_sky; } else { - pi = &pi_shade_secondary_cache_query_; + pi = &pi_.shade_secondary_cache_query; } } else if (sc_data.env.sky_map_spread_angle > 0.0f) { - pi = &pi_shade_secondary_sky_; + pi = &pi_.shade_secondary_sky; } if (use_bindless_) { @@ -2474,7 +2391,7 @@ void Ray::Vk::Renderer::kernel_IntersectSceneShadow( assert(bindless_tex.descr_set); ctx_->api().vkCmdBindDescriptorSets(cmd_buf, VK_PIPELINE_BIND_POINT_COMPUTE, - pi_intersect_scene_shadow_.layout(), 1, 1, &bindless_tex.descr_set, 0, + pi_.intersect_scene_shadow.layout(), 1, 1, &bindless_tex.descr_set, 0, nullptr); } else { bindings.emplace_back(eBindTarget::SBufRO, Types::TEXTURES_BUF_SLOT, sc_data.atlas_textures); @@ -2490,7 +2407,7 @@ void Ray::Vk::Renderer::kernel_IntersectSceneShadow( uniform_params.rand_seed = rand_seed; uniform_params.iteration = iteration; - DispatchComputeIndirect(cmd_buf, pi_intersect_scene_shadow_, indir_args, + DispatchComputeIndirect(cmd_buf, pi_.intersect_scene_shadow, indir_args, indir_args_index * sizeof(DispatchIndirectCommand), bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } @@ -2517,254 +2434,275 @@ void Ray::Vk::Renderer::kernel_DebugRT(CommandBuffer cmd_buf, const scene_data_t uniform_params.img_size[1] = h_; uniform_params.node_index = node_index; - DispatchCompute(cmd_buf, pi_debug_rt_, grp_count, bindings, &uniform_params, sizeof(uniform_params), + DispatchCompute(cmd_buf, pi_.debug_rt, grp_count, bindings, &uniform_params, sizeof(uniform_params), ctx_->default_descr_alloc(), ctx_->log()); } -bool Ray::Vk::Renderer::InitShaders(ILog *log) { - auto select_unpack_shader = [this](Span bindless_shader, - Span bindless_subgroup_shader, Span atlas_shader, - Span atlas_subgroup_shader) { - return Inflate(use_bindless_ ? (use_subgroup_ ? bindless_subgroup_shader : bindless_shader) - : (use_subgroup_ ? atlas_subgroup_shader : atlas_shader)); +bool Ray::Vk::Renderer::InitPipelines(ILog *log, + const std::function ¶llel_for) { + auto select_shader = [this](Span bindless_shader, Span bindless_subgroup_shader, + Span atlas_shader, Span atlas_subgroup_shader) { + return use_bindless_ ? (use_subgroup_ ? bindless_subgroup_shader : bindless_shader) + : (use_subgroup_ ? atlas_subgroup_shader : atlas_shader); }; - bool result = true; - result &= sh_prim_rays_gen_simple_.Init("Primary Raygen Simple", ctx_.get(), - Inflate(internal_shaders_output_primary_ray_gen_simple_comp_spv), - eShaderType::Comp, log); - result &= sh_prim_rays_gen_adaptive_.Init("Primary Raygen Adaptive", ctx_.get(), - Inflate(internal_shaders_output_primary_ray_gen_adaptive_comp_spv), - eShaderType::Comp, log); - if (use_hwrt_) { - result &= sh_intersect_scene_.Init( - "Intersect Scene (Primary) (HWRT)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_intersect_scene_hwrt_bindless_comp_spv} - : Span{internal_shaders_output_intersect_scene_hwrt_atlas_comp_spv}), - eShaderType::Comp, log); - } else { - result &= sh_intersect_scene_.Init( - "Intersect Scene (Primary) (SWRT)", ctx_.get(), - Inflate(select_unpack_shader(internal_shaders_output_intersect_scene_swrt_bindless_comp_spv, - internal_shaders_output_intersect_scene_swrt_bindless_subgroup_comp_spv, - internal_shaders_output_intersect_scene_swrt_atlas_comp_spv, - internal_shaders_output_intersect_scene_swrt_atlas_subgroup_comp_spv)), - eShaderType::Comp, log); - } - if (use_hwrt_) { - result &= sh_intersect_scene_indirect_.Init( - "Intersect Scene (Secondary) (HWRT)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_intersect_scene_indirect_hwrt_bindless_comp_spv} - : Span{internal_shaders_output_intersect_scene_indirect_hwrt_atlas_comp_spv}), - eShaderType::Comp, log); - } else { - result &= sh_intersect_scene_indirect_.Init( - "Intersect Scene (Secondary) (SWRT)", ctx_.get(), - Inflate( - select_unpack_shader(internal_shaders_output_intersect_scene_indirect_swrt_bindless_comp_spv, - internal_shaders_output_intersect_scene_indirect_swrt_bindless_subgroup_comp_spv, - internal_shaders_output_intersect_scene_indirect_swrt_atlas_comp_spv, - internal_shaders_output_intersect_scene_indirect_swrt_atlas_subgroup_comp_spv)), - eShaderType::Comp, log); - } - - result &= sh_intersect_area_lights_.Init("Intersect Area Lights", ctx_.get(), - Inflate(internal_shaders_output_intersect_area_lights_comp_spv), - eShaderType::Comp, log); - result &= sh_shade_primary_.Init( - "Shade (Primary)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_comp_spv} - : Span{internal_shaders_output_shade_primary_atlas_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_primary_sky_.Init( - "Shade (Primary) (Sky)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_sky_comp_spv} - : Span{internal_shaders_output_shade_primary_atlas_sky_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_update_.Init( - "Shade (Primary) (Cache Update)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_primary_bindless_cache_update_comp_spv} - : Span{internal_shaders_output_shade_primary_atlas_cache_update_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_query_.Init( - "Shade (Primary) (Cache Query)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_comp_spv} - : Span{internal_shaders_output_shade_primary_atlas_cache_query_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_primary_cache_query_sky_.Init( - "Shade (Primary) (Cache Query) (Sky)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_primary_bindless_cache_query_sky_comp_spv} - : Span{internal_shaders_output_shade_primary_atlas_cache_query_sky_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_secondary_.Init( - "Shade (Secondary)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_comp_spv} - : Span{internal_shaders_output_shade_secondary_atlas_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_secondary_sky_.Init( - "Shade (Secondary) (Sky)", ctx_.get(), - Inflate(use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_sky_comp_spv} - : Span{internal_shaders_output_shade_secondary_atlas_sky_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_update_.Init( - "Shade (Secondary) (Cache Update)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_update_comp_spv} - : Span{internal_shaders_output_shade_secondary_atlas_cache_update_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_query_.Init( - "Shade (Secondary) (Cache Query)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_comp_spv} - : Span{internal_shaders_output_shade_secondary_atlas_cache_query_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_secondary_cache_query_sky_.Init( - "Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_sky_comp_spv} - : Span{internal_shaders_output_shade_secondary_atlas_cache_query_sky_comp_spv}), - eShaderType::Comp, log); - result &= sh_shade_sky_.Init("Shade Sky", ctx_.get(), - Inflate(Span{internal_shaders_output_shade_sky_comp_spv}), - eShaderType::Comp, log); - + SmallVector, eShaderType, bool>, 32> shaders_to_init = { + {sh_.prim_rays_gen_simple, "Primary Raygen Simple", internal_shaders_output_primary_ray_gen_simple_comp_spv, + eShaderType::Comp, false}, + {sh_.prim_rays_gen_adaptive, "Primary Raygen Adaptive", + internal_shaders_output_primary_ray_gen_adaptive_comp_spv, eShaderType::Comp, false}, + {sh_.intersect_area_lights, "Intersect Area Lights", internal_shaders_output_intersect_area_lights_comp_spv, + eShaderType::Comp, false}, + {sh_.shade_primary, "Shade (Primary)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_comp_spv} + : Span{internal_shaders_output_shade_primary_atlas_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_primary_sky, "Shade (Primary) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_sky_comp_spv} + : Span{internal_shaders_output_shade_primary_atlas_sky_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_update, "Shade (Primary) (Cache Update)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_update_comp_spv} + : Span{internal_shaders_output_shade_primary_atlas_cache_update_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_query, "Shade (Primary) (Cache Query)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_comp_spv} + : Span{internal_shaders_output_shade_primary_atlas_cache_query_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_primary_cache_query_sky, "Shade (Primary) (Cache Query) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_primary_bindless_cache_query_sky_comp_spv} + : Span{internal_shaders_output_shade_primary_atlas_cache_query_sky_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_secondary, "Shade (Secondary)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_comp_spv} + : Span{internal_shaders_output_shade_secondary_atlas_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_secondary_sky, "Shade (Secondary) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_sky_comp_spv} + : Span{internal_shaders_output_shade_secondary_atlas_sky_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_update, "Shade (Secondary) (Cache Update)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_update_comp_spv} + : Span{internal_shaders_output_shade_secondary_atlas_cache_update_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_query, "Shade (Secondary) (Cache Query)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_comp_spv} + : Span{internal_shaders_output_shade_secondary_atlas_cache_query_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_secondary_cache_query_sky, "Shade (Secondary) (Cache Query) (Sky)", + use_bindless_ ? Span{internal_shaders_output_shade_secondary_bindless_cache_query_sky_comp_spv} + : Span{internal_shaders_output_shade_secondary_atlas_cache_query_sky_comp_spv}, + eShaderType::Comp, false}, + {sh_.shade_sky, "Shade Sky", internal_shaders_output_shade_sky_comp_spv, eShaderType::Comp, false}, + {sh_.prepare_indir_args, "Prepare Indir Args", internal_shaders_output_prepare_indir_args_comp_spv, + eShaderType::Comp, false}, + {sh_.mix_incremental, "Mix Incremental", internal_shaders_output_mix_incremental_comp_spv, eShaderType::Comp, + false}, + {sh_.postprocess, "Postprocess", internal_shaders_output_postprocess_comp_spv, eShaderType::Comp, false}, + {sh_.filter_variance, "Filter Variance", internal_shaders_output_filter_variance_comp_spv, eShaderType::Comp, + false}, + {sh_.nlm_filter, "NLM Filter", internal_shaders_output_nlm_filter_comp_spv, eShaderType::Comp, false}, + {sh_.sort_hash_rays, "Sort Hash Rays", internal_shaders_output_sort_hash_rays_comp_spv, eShaderType::Comp, + false}, + {sh_.sort_init_count_table, "Sort Init Count Table", internal_shaders_output_sort_init_count_table_comp_spv, + eShaderType::Comp, false}, + {sh_.sort_reduce, "Sort Reduce", internal_shaders_output_sort_reduce_comp_spv, eShaderType::Comp, false}, + {sh_.sort_scan, "Sort Scan", internal_shaders_output_sort_scan_comp_spv, eShaderType::Comp, false}, + {sh_.sort_scan_add, "Sort Scan Add", internal_shaders_output_sort_scan_add_comp_spv, eShaderType::Comp, false}, + {sh_.sort_scatter, "Sort Scatter", internal_shaders_output_sort_scatter_comp_spv, eShaderType::Comp, false}, + {sh_.sort_reorder_rays, "Sort Reorder Rays", internal_shaders_output_sort_reorder_rays_comp_spv, + eShaderType::Comp, false}, + {sh_.spatial_cache_resolve, "Spatial Cache Resolve", internal_shaders_output_spatial_cache_resolve_comp_spv, + eShaderType::Comp, false}}; if (use_hwrt_) { - result &= sh_intersect_scene_shadow_.Init( - "Intersect Scene (Shadow) (HWRT)", ctx_.get(), - Inflate(use_bindless_ - ? Span{internal_shaders_output_intersect_scene_shadow_hwrt_bindless_comp_spv} - : Span{internal_shaders_output_intersect_scene_shadow_hwrt_atlas_comp_spv}), - eShaderType::Comp, log); + shaders_to_init.emplace_back( + sh_.intersect_scene, "Intersect Scene (Primary) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_hwrt_bindless_comp_spv} + : Span{internal_shaders_output_intersect_scene_hwrt_atlas_comp_spv}, + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_indirect, "Intersect Scene (Secondary) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_indirect_hwrt_bindless_comp_spv} + : Span{internal_shaders_output_intersect_scene_indirect_hwrt_atlas_comp_spv}, + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_shadow, "Intersect Scene (Shadow) (HWRT)", + use_bindless_ ? Span{internal_shaders_output_intersect_scene_shadow_hwrt_bindless_comp_spv} + : Span{internal_shaders_output_intersect_scene_shadow_hwrt_atlas_comp_spv}, + eShaderType::Comp, false); + shaders_to_init.emplace_back(sh_.intersect_scene_rgen, "Intersect Scene RGEN", + internal_shaders_output_intersect_scene_rgen_spv, eShaderType::RayGen, false); + shaders_to_init.emplace_back(sh_.intersect_scene_indirect_rgen, "Intersect Scene Indirect RGEN", + internal_shaders_output_intersect_scene_indirect_rgen_spv, eShaderType::RayGen, + false); + shaders_to_init.emplace_back(sh_.intersect_scene_rchit, "Intersect Scene RCHIT", + internal_shaders_output_intersect_scene_rchit_spv, eShaderType::ClosestHit, false); + shaders_to_init.emplace_back(sh_.intersect_scene_rmiss, "Intersect Scene RMISS", + internal_shaders_output_intersect_scene_rmiss_spv, eShaderType::Miss, false); + shaders_to_init.emplace_back(sh_.debug_rt, "Debug RT", internal_shaders_output_debug_rt_comp_spv, + eShaderType::Comp, false); } else { - result &= sh_intersect_scene_shadow_.Init( - "Intersect Scene (Shadow) (SWRT)", ctx_.get(), - Inflate(select_unpack_shader(internal_shaders_output_intersect_scene_shadow_swrt_bindless_comp_spv, - internal_shaders_output_intersect_scene_shadow_swrt_bindless_subgroup_comp_spv, - internal_shaders_output_intersect_scene_shadow_swrt_atlas_comp_spv, - internal_shaders_output_intersect_scene_shadow_swrt_atlas_subgroup_comp_spv)), - eShaderType::Comp, log); - } - result &= sh_prepare_indir_args_.Init("Prepare Indir Args", ctx_.get(), - Inflate(internal_shaders_output_prepare_indir_args_comp_spv), - eShaderType::Comp, log); - result &= - sh_mix_incremental_.Init("Mix Incremental", ctx_.get(), - Inflate(internal_shaders_output_mix_incremental_comp_spv), eShaderType::Comp, log); - result &= sh_postprocess_.Init("Postprocess", ctx_.get(), Inflate(internal_shaders_output_postprocess_comp_spv), - eShaderType::Comp, log); - result &= - sh_filter_variance_.Init("Filter Variance", ctx_.get(), - Inflate(internal_shaders_output_filter_variance_comp_spv), eShaderType::Comp, log); - result &= sh_nlm_filter_.Init("NLM Filter", ctx_.get(), Inflate(internal_shaders_output_nlm_filter_comp_spv), - eShaderType::Comp, log); - if (use_hwrt_) { - result &= sh_debug_rt_.Init("Debug RT", ctx_.get(), Inflate(internal_shaders_output_debug_rt_comp_spv), - eShaderType::Comp, log); - } - - result &= sh_sort_hash_rays_.Init("Sort Hash Rays", ctx_.get(), - Inflate(internal_shaders_output_sort_hash_rays_comp_spv), eShaderType::Comp, log); - result &= sh_sort_init_count_table_.Init("Sort Init Count Table", ctx_.get(), - Inflate(internal_shaders_output_sort_init_count_table_comp_spv), - eShaderType::Comp, log); - result &= sh_sort_reduce_.Init("Sort Reduce", ctx_.get(), Inflate(internal_shaders_output_sort_reduce_comp_spv), - eShaderType::Comp, log); - result &= sh_sort_scan_.Init("Sort Scan", ctx_.get(), Inflate(internal_shaders_output_sort_scan_comp_spv), - eShaderType::Comp, log); - result &= sh_sort_scan_add_.Init("Sort Scan Add", ctx_.get(), - Inflate(internal_shaders_output_sort_scan_add_comp_spv), eShaderType::Comp, log); - result &= sh_sort_scatter_.Init("Sort Scatter", ctx_.get(), Inflate(internal_shaders_output_sort_scatter_comp_spv), - eShaderType::Comp, log); - result &= - sh_sort_reorder_rays_.Init("Sort Reorder Rays", ctx_.get(), - Inflate(internal_shaders_output_sort_reorder_rays_comp_spv), eShaderType::Comp, log); - if (use_hwrt_) { - result &= sh_intersect_scene_rgen_.Init("Intersect Scene RGEN", ctx_.get(), - Inflate(internal_shaders_output_intersect_scene_rgen_spv), - eShaderType::RayGen, log); - result &= sh_intersect_scene_indirect_rgen_.Init( - "Intersect Scene Indirect RGEN", ctx_.get(), - Inflate(internal_shaders_output_intersect_scene_indirect_rgen_spv), eShaderType::RayGen, log); - result &= sh_intersect_scene_rchit_.Init("Intersect Scene RCHIT", ctx_.get(), - Inflate(internal_shaders_output_intersect_scene_rchit_spv), - eShaderType::ClosestHit, log); - result &= sh_intersect_scene_rmiss_.Init("Intersect Scene RMISS", ctx_.get(), - Inflate(internal_shaders_output_intersect_scene_rmiss_spv), - eShaderType::AnyHit, log); + shaders_to_init.emplace_back( + sh_.intersect_scene, "Intersect Scene (Primary) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_swrt_bindless_comp_spv, + internal_shaders_output_intersect_scene_swrt_bindless_subgroup_comp_spv, + internal_shaders_output_intersect_scene_swrt_atlas_comp_spv, + internal_shaders_output_intersect_scene_swrt_atlas_subgroup_comp_spv), + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_indirect, "Intersect Scene (Secondary) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_indirect_swrt_bindless_comp_spv, + internal_shaders_output_intersect_scene_indirect_swrt_bindless_subgroup_comp_spv, + internal_shaders_output_intersect_scene_indirect_swrt_atlas_comp_spv, + internal_shaders_output_intersect_scene_indirect_swrt_atlas_subgroup_comp_spv), + eShaderType::Comp, false); + shaders_to_init.emplace_back( + sh_.intersect_scene_shadow, "Intersect Scene (Shadow) (SWRT)", + select_shader(internal_shaders_output_intersect_scene_shadow_swrt_bindless_comp_spv, + internal_shaders_output_intersect_scene_shadow_swrt_bindless_subgroup_comp_spv, + internal_shaders_output_intersect_scene_shadow_swrt_atlas_comp_spv, + internal_shaders_output_intersect_scene_shadow_swrt_atlas_subgroup_comp_spv), + eShaderType::Comp, false); } if (ctx_->int64_atomics_supported()) { - result &= sh_spatial_cache_update_.Init("Spatial Cache Update", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_update_comp_spv), - eShaderType::Comp, log); + shaders_to_init.emplace_back(sh_.spatial_cache_update, "Spatial Cache Update", + internal_shaders_output_spatial_cache_update_comp_spv, eShaderType::Comp, false); } else { - result &= sh_spatial_cache_update_.Init("Spatial Cache Update", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_update_compat_comp_spv), - eShaderType::Comp, log); - } - result &= sh_spatial_cache_resolve_.Init("Spatial Cache Resolve", ctx_.get(), - Inflate(internal_shaders_output_spatial_cache_resolve_comp_spv), - eShaderType::Comp, log); - - prog_prim_rays_gen_simple_ = Program{"Primary Raygen Simple", ctx_.get(), &sh_prim_rays_gen_simple_, log}; - prog_prim_rays_gen_adaptive_ = Program{"Primary Raygen Adaptive", ctx_.get(), &sh_prim_rays_gen_adaptive_, log}; - prog_intersect_scene_ = Program{"Intersect Scene (Primary)", ctx_.get(), &sh_intersect_scene_, log}; - prog_intersect_scene_indirect_ = - Program{"Intersect Scene (Secondary)", ctx_.get(), &sh_intersect_scene_indirect_, log}; - prog_intersect_area_lights_ = Program{"Intersect Area Lights", ctx_.get(), &sh_intersect_area_lights_, log}; - prog_shade_primary_ = Program{"Shade (Primary)", ctx_.get(), &sh_shade_primary_, log}; - prog_shade_primary_sky_ = Program{"Shade (Primary) (Sky)", ctx_.get(), &sh_shade_primary_sky_, log}; - prog_shade_primary_cache_update_ = - Program{"Shade (Primary) (Cache Update)", ctx_.get(), &sh_shade_primary_cache_update_, log}; - prog_shade_primary_cache_query_ = - Program{"Shade (Primary) (Cache Query)", ctx_.get(), &sh_shade_primary_cache_query_, log}; - prog_shade_primary_cache_query_sky_ = - Program{"Shade (Primary) (Cache Query) (Sky)", ctx_.get(), &sh_shade_primary_cache_query_sky_, log}; - prog_shade_secondary_ = Program{"Shade (Secondary)", ctx_.get(), &sh_shade_secondary_, log}; - prog_shade_secondary_sky_ = Program{"Shade (Secondary) (Sky)", ctx_.get(), &sh_shade_secondary_sky_, log}; - prog_shade_secondary_cache_update_ = - Program{"Shade (Secondary) (Cache Update)", ctx_.get(), &sh_shade_secondary_cache_update_, log}; - prog_shade_secondary_cache_query_ = - Program{"Shade (Secondary) (Cache Query)", ctx_.get(), &sh_shade_secondary_cache_query_, log}; - prog_shade_secondary_cache_query_sky_ = - Program{"Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), &sh_shade_secondary_cache_query_sky_, log}; - prog_shade_sky_ = Program{"Shade Sky", ctx_.get(), &sh_shade_sky_, log}; - prog_intersect_scene_shadow_ = Program{"Intersect Scene (Shadow)", ctx_.get(), &sh_intersect_scene_shadow_, log}; - prog_prepare_indir_args_ = Program{"Prepare Indir Args", ctx_.get(), &sh_prepare_indir_args_, log}; - prog_mix_incremental_ = Program{"Mix Incremental", ctx_.get(), &sh_mix_incremental_, log}; - prog_postprocess_ = Program{"Postprocess", ctx_.get(), &sh_postprocess_, log}; - prog_filter_variance_ = Program{"Filter Variance", ctx_.get(), &sh_filter_variance_, log}; - prog_nlm_filter_ = Program{"NLM Filter", ctx_.get(), &sh_nlm_filter_, log}; - prog_debug_rt_ = Program{"Debug RT", ctx_.get(), &sh_debug_rt_, log}; - prog_sort_hash_rays_ = Program{"Hash Rays", ctx_.get(), &sh_sort_hash_rays_, log}; - prog_sort_init_count_table_ = Program{"Init Count Table", ctx_.get(), &sh_sort_init_count_table_, log}; - prog_sort_reduce_ = Program{"Sort Reduce", ctx_.get(), &sh_sort_reduce_, log}; - prog_sort_scan_ = Program{"Sort Scan", ctx_.get(), &sh_sort_scan_, log}; - prog_sort_scan_add_ = Program{"Sort Scan Add", ctx_.get(), &sh_sort_scan_add_, log}; - prog_sort_scatter_ = Program{"Sort Scatter", ctx_.get(), &sh_sort_scatter_, log}; - prog_sort_reorder_rays_ = Program{"Reorder Rays", ctx_.get(), &sh_sort_reorder_rays_, log}; - prog_intersect_scene_rtpipe_ = Program{"Intersect Scene", + shaders_to_init.emplace_back(sh_.spatial_cache_update, "Spatial Cache Update (Compat)", + internal_shaders_output_spatial_cache_update_compat_comp_spv, eShaderType::Comp, + false); + } + parallel_for(0, int(shaders_to_init.size()), [&](const int i) { + std::get<4>(shaders_to_init[i]) = + std::get<0>(shaders_to_init[i]) + .Init(std::get<1>(shaders_to_init[i]), ctx_.get(), Inflate(std::get<2>(shaders_to_init[i])), + std::get<3>(shaders_to_init[i]), log); + }); + + bool result = true; + for (const auto &sh : shaders_to_init) { + result &= std::get<4>(sh); + } + + prog_.prim_rays_gen_simple = Program{"Primary Raygen Simple", ctx_.get(), &sh_.prim_rays_gen_simple, log}; + prog_.prim_rays_gen_adaptive = Program{"Primary Raygen Adaptive", ctx_.get(), &sh_.prim_rays_gen_adaptive, log}; + prog_.intersect_scene = Program{"Intersect Scene (Primary)", ctx_.get(), &sh_.intersect_scene, log}; + prog_.intersect_scene_indirect = + Program{"Intersect Scene (Secondary)", ctx_.get(), &sh_.intersect_scene_indirect, log}; + prog_.intersect_area_lights = Program{"Intersect Area Lights", ctx_.get(), &sh_.intersect_area_lights, log}; + prog_.shade_primary = Program{"Shade (Primary)", ctx_.get(), &sh_.shade_primary, log}; + prog_.shade_primary_sky = Program{"Shade (Primary) (Sky)", ctx_.get(), &sh_.shade_primary_sky, log}; + prog_.shade_primary_cache_update = + Program{"Shade (Primary) (Cache Update)", ctx_.get(), &sh_.shade_primary_cache_update, log}; + prog_.shade_primary_cache_query = + Program{"Shade (Primary) (Cache Query)", ctx_.get(), &sh_.shade_primary_cache_query, log}; + prog_.shade_primary_cache_query_sky = + Program{"Shade (Primary) (Cache Query) (Sky)", ctx_.get(), &sh_.shade_primary_cache_query_sky, log}; + prog_.shade_secondary = Program{"Shade (Secondary)", ctx_.get(), &sh_.shade_secondary, log}; + prog_.shade_secondary_sky = Program{"Shade (Secondary) (Sky)", ctx_.get(), &sh_.shade_secondary_sky, log}; + prog_.shade_secondary_cache_update = + Program{"Shade (Secondary) (Cache Update)", ctx_.get(), &sh_.shade_secondary_cache_update, log}; + prog_.shade_secondary_cache_query = + Program{"Shade (Secondary) (Cache Query)", ctx_.get(), &sh_.shade_secondary_cache_query, log}; + prog_.shade_secondary_cache_query_sky = + Program{"Shade (Secondary) (Cache Query) (Sky)", ctx_.get(), &sh_.shade_secondary_cache_query_sky, log}; + prog_.shade_sky = Program{"Shade Sky", ctx_.get(), &sh_.shade_sky, log}; + prog_.intersect_scene_shadow = Program{"Intersect Scene (Shadow)", ctx_.get(), &sh_.intersect_scene_shadow, log}; + prog_.prepare_indir_args = Program{"Prepare Indir Args", ctx_.get(), &sh_.prepare_indir_args, log}; + prog_.mix_incremental = Program{"Mix Incremental", ctx_.get(), &sh_.mix_incremental, log}; + prog_.postprocess = Program{"Postprocess", ctx_.get(), &sh_.postprocess, log}; + prog_.filter_variance = Program{"Filter Variance", ctx_.get(), &sh_.filter_variance, log}; + prog_.nlm_filter = Program{"NLM Filter", ctx_.get(), &sh_.nlm_filter, log}; + prog_.debug_rt = Program{"Debug RT", ctx_.get(), &sh_.debug_rt, log}; + prog_.sort_hash_rays = Program{"Hash Rays", ctx_.get(), &sh_.sort_hash_rays, log}; + prog_.sort_init_count_table = Program{"Init Count Table", ctx_.get(), &sh_.sort_init_count_table, log}; + prog_.sort_reduce = Program{"Sort Reduce", ctx_.get(), &sh_.sort_reduce, log}; + prog_.sort_scan = Program{"Sort Scan", ctx_.get(), &sh_.sort_scan, log}; + prog_.sort_scan_add = Program{"Sort Scan Add", ctx_.get(), &sh_.sort_scan_add, log}; + prog_.sort_scatter = Program{"Sort Scatter", ctx_.get(), &sh_.sort_scatter, log}; + prog_.sort_reorder_rays = Program{"Reorder Rays", ctx_.get(), &sh_.sort_reorder_rays, log}; + prog_.intersect_scene_rtpipe = Program{"Intersect Scene", ctx_.get(), - &sh_intersect_scene_rgen_, - &sh_intersect_scene_rchit_, + &sh_.intersect_scene_rgen, + &sh_.intersect_scene_rchit, nullptr, - &sh_intersect_scene_rmiss_, + &sh_.intersect_scene_rmiss, nullptr, log}; - prog_intersect_scene_indirect_rtpipe_ = Program{"Intersect Scene Indirect", + prog_.intersect_scene_indirect_rtpipe = Program{"Intersect Scene Indirect", ctx_.get(), - &sh_intersect_scene_indirect_rgen_, - &sh_intersect_scene_rchit_, + &sh_.intersect_scene_indirect_rgen, + &sh_.intersect_scene_rchit, nullptr, - &sh_intersect_scene_rmiss_, + &sh_.intersect_scene_rmiss, nullptr, log}; - prog_spatial_cache_update_ = Program{"Spatial Cache Update", ctx_.get(), &sh_spatial_cache_update_, log}; - prog_spatial_cache_resolve_ = Program{"Spatial Cache Resolve", ctx_.get(), &sh_spatial_cache_resolve_, log}; + prog_.spatial_cache_update = Program{"Spatial Cache Update", ctx_.get(), &sh_.spatial_cache_update, log}; + prog_.spatial_cache_resolve = Program{"Spatial Cache Resolve", ctx_.get(), &sh_.spatial_cache_resolve, log}; + + SmallVector, 32> pipelines_to_init = { + {pi_.prim_rays_gen_simple, prog_.prim_rays_gen_simple, false}, + {pi_.prim_rays_gen_adaptive, prog_.prim_rays_gen_adaptive, false}, + {pi_.intersect_scene, prog_.intersect_scene, false}, + {pi_.intersect_scene_indirect, prog_.intersect_scene_indirect, false}, + {pi_.intersect_area_lights, prog_.intersect_area_lights, false}, + {pi_.shade_primary, prog_.shade_primary, false}, + {pi_.shade_primary_sky, prog_.shade_primary_sky, false}, + {pi_.shade_secondary, prog_.shade_secondary, false}, + {pi_.shade_secondary_sky, prog_.shade_secondary_sky, false}, + {pi_.shade_sky, prog_.shade_sky, false}, + {pi_.intersect_scene_shadow, prog_.intersect_scene_shadow, false}, + {pi_.prepare_indir_args, prog_.prepare_indir_args, false}, + {pi_.mix_incremental, prog_.mix_incremental, false}, + {pi_.postprocess, prog_.postprocess, false}, + {pi_.filter_variance, prog_.filter_variance, false}, + {pi_.nlm_filter, prog_.nlm_filter, false}, + {pi_.sort_hash_rays, prog_.sort_hash_rays, false}, + {pi_.sort_reorder_rays, prog_.sort_reorder_rays, false}}; + if (use_hwrt_) { + if (ENABLE_RT_PIPELINE) { + pipelines_to_init.emplace_back(pi_.intersect_scene_rtpipe, prog_.intersect_scene_rtpipe, false); + pipelines_to_init.emplace_back(pi_.intersect_scene_indirect_rtpipe, prog_.intersect_scene_indirect_rtpipe, + false); + } + pipelines_to_init.emplace_back(pi_.debug_rt, prog_.debug_rt, false); + } + if (use_subgroup_) { + pipelines_to_init.emplace_back(pi_.sort_init_count_table, prog_.sort_init_count_table, false); + pipelines_to_init.emplace_back(pi_.sort_reduce, prog_.sort_reduce, false); + pipelines_to_init.emplace_back(pi_.sort_scan, prog_.sort_scan, false); + pipelines_to_init.emplace_back(pi_.sort_scan_add, prog_.sort_scan_add, false); + pipelines_to_init.emplace_back(pi_.sort_scatter, prog_.sort_scatter, false); + } + if (use_spatial_cache_) { + pipelines_to_init.emplace_back(pi_.shade_primary_cache_update, prog_.shade_primary_cache_update, false); + pipelines_to_init.emplace_back(pi_.shade_primary_cache_query, prog_.shade_primary_cache_query, false); + pipelines_to_init.emplace_back(pi_.shade_primary_cache_query_sky, prog_.shade_primary_cache_query_sky, false); + + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_update, prog_.shade_secondary_cache_update, false); + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_query, prog_.shade_secondary_cache_query, false); + pipelines_to_init.emplace_back(pi_.shade_secondary_cache_query_sky, prog_.shade_secondary_cache_query_sky, + false); + + pipelines_to_init.emplace_back(pi_.spatial_cache_update, prog_.spatial_cache_update, false); + pipelines_to_init.emplace_back(pi_.spatial_cache_resolve, prog_.spatial_cache_resolve, false); + } + parallel_for(0, int(pipelines_to_init.size()), [&](const int i) { + std::get<2>(pipelines_to_init[i]) = + std::get<0>(pipelines_to_init[i]).Init(ctx_.get(), &std::get<1>(pipelines_to_init[i]), log); + }); + + // Release shader modules + sh_ = {}; + + for (const auto &pi : pipelines_to_init) { + result &= std::get<2>(pi); + } return result; } -Ray::RendererBase *Ray::Vk::CreateRenderer(const settings_t &s, ILog *log) { return new Vk::Renderer(s, log); } +Ray::RendererBase *Ray::Vk::CreateRenderer(const settings_t &s, ILog *log, + const std::function ¶llel_for) { + return new Vk::Renderer(s, log, parallel_for); +} diff --git a/internal/RendererVK.h b/internal/RendererVK.h index 40eaa8916..97b5f15a9 100644 --- a/internal/RendererVK.h +++ b/internal/RendererVK.h @@ -6,6 +6,7 @@ namespace Ray { class ILog; namespace Vk { -RendererBase *CreateRenderer(const settings_t &s, ILog *log); +RendererBase *CreateRenderer(const settings_t &s, ILog *log, + const std::function ¶llel_for); } // namespace Vk } // namespace Ray diff --git a/internal/_CustomTypes.natvis b/internal/_CustomTypes.natvis index 224da7bf1..309a90010 100644 --- a/internal/_CustomTypes.natvis +++ b/internal/_CustomTypes.natvis @@ -11,12 +11,12 @@ - {{ size={end_ - begin_}, capacity={capacity_ & CapacityMask} }} + {{ size={size_}, capacity={capacity_ & CapacityMask} }} - end_ - begin_ + size_ capacity_ & CapacityMask - end_ - begin_ + size_ begin_ diff --git a/internal/shaders/output/convolution_concat_64_3_64_coop.comp.spv.inl b/internal/shaders/output/convolution_concat_64_3_64_coop.comp.spv.inl deleted file mode 100644 index 0d54feb83..000000000 --- a/internal/shaders/output/convolution_concat_64_3_64_coop.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_3_64_coop.comp.spv */ -const int internal_shaders_output_convolution_concat_64_3_64_coop_comp_spv_size = 10310; -const unsigned char internal_shaders_output_convolution_concat_64_3_64_coop_comp_spv[10310] = { - 0x78, 0xDA, 0x8D, 0x5D, 0x07, 0x98, 0x14, 0x45, 0xD3, 0xDE, 0x9E, 0xEE, 0x39, 0x82, 0xA2, 0x20, 0x28, 0x39, 0x2A, 0x51, 0x25, 0x4A, 0x50, 0xE4, 0x88, 0x47, 0x10, 0x14, 0x44, 0x82, 0x8A, 0x78, 0x9C, 0x70, 0x70, 0x07, 0x17, 0xF0, 0xEE, 0x48, 0x8A, 0x82, 0x01, 0xCC, 0x20, 0xA0, 0x22, 0x8A, 0x22, 0x22, 0x62, 0x02, 0x45, 0x31, 0x27, 0xF4, 0x33, 0x8B, 0x88, 0x8A, 0x98, 0x50, 0x31, 0x21, 0x8A, 0x11, 0x03, 0x66, 0xFF, 0xA9, 0xA9, 0xB7, 0x76, 0x6B, 0x9B, 0xC5, 0xE7, 0xE7, 0xFB, 0xC6, 0x9D, 0x7A, 0x2B, 0x57, 0xF7, 0x4C, 0xF7, 0xF4, 0x84, 0xB3, 0xC1, 0xE1, 0x95, 0x12, 0xD6, 0x24, 0x0E, 0x48, 0x54, 0x4E, 0x2C, 0x0D, 0x13, 0xF1, 0xBF, 0x1A, 0x89, 0x20, 0x61, 0xF0, 0x5B, 0x05, 0xBF, 0x27, 0xD7, 0xE0, 0xDF, 0x4F, 0x6A, 0xF1, 0xEF, 0xFC, 0xDA, 0x89, 0x44, 0xD5, 0x48, 0xE7, 0x94, 0x61, 0xA3, 0x72, 0x07, 0x0F, 0x1C, 0x9E, 0x3B, 0xBE, 0xB4, 0x74, 0x6A, 0x7E, 0x59, 0x5E, 0x45, 0xE1, 0xF4, 0xFC, 0xDC, 0xE2, 0xBC, 0x8A, 0xB2, 0xC2, 0x99, 0xE9, 0xFC, 0xE9, 0xD3, 0x8A, 0xA6, 0xE4, 0x95, 0xE4, 0x16, 0xE7, 0x17, 0x97, 0x96, 0xCD, 0xCA, 0x2D, 0x2E, 0x9D, 0x90, 0x5F, 0x14, 0xF9, 0xCC, 0x8A, 0xFD, 0x0C, 0x18, 0x72, 0xCA, 0x90, 0xB6, 0xE5, 0x15, 0x13, 0xDA, 0x1E, 0xD3, 0xB9, 0x3D, 0xF9, 0x3F, 0x28, 0x61, 0xE3, 0x38, 0xE8, 0xBF, 0x07, 0x47, 0x36, 0x28, 0x2C, 0x17, 0x6D, 0xC5, 0x79, 0x85, 0x25, 0x84, 0x8F, 0x8E, 0xB6, 0x31, 0xD1, 0xB6, 0x30, 0xDA, 0xAA, 0x47, 0x36, 0x5C, 0x1C, 0x63, 0x22, 0xD1, 0x24, 0xDA, 0x0C, 0x36, 0x1B, 0xFD, 0x2F, 0x88, 0x7E, 0x9F, 0x35, 0xA4, 0x5B, 0x25, 0xF2, 0x91, 0x9B, 0x73, 0xEA, 0x88, 0x28, 0xCC, 0x92, 0x8A, 0xB2, 0xD2, 0xA2, 0xDC, 0x89, 0x45, 0xA5, 0x33, 0x72, 0xF3, 0x2A, 0xA2, 0x38, 0xCF, 0x9A, 0x56, 0x91, 0x5F, 0x4E, 0x32, 0xD5, 0x44, 0xA6, 0xBC, 0x20, 0x6F, 0x42, 0x7E, 0x59, 0x6E, 0xFE, 0xCC, 0xA9, 0x45, 0x85, 0xE3, 0x0B, 0x2B, 0x72, 0xF3, 0xCA, 0x0A, 0x2B, 0x0A, 0x8A, 0xF3, 0x2B, 0x0A, 0xC7, 0xE7, 0x56, 0xCC, 0x9A, 0x9A, 0x5F, 0x4E, 0xCA, 0x79, 0x15, 0x1D, 0xBA, 0x44, 0x3A, 0x55, 0x49, 0x67, 0xC0, 0xD0, 0xA1, 0x03, 0x86, 0xE4, 0xE4, 0x8E, 0x9F, 0x3A, 0x35, 0xB7, 0xBC, 0x62, 0x56, 0x51, 0x7E, 0x6E, 0x51, 0x61, 0x49, 0x7E, 0xEE, 0x84, 0xC2, 0xB2, 0xFC, 0xF1, 0x54, 0x0E, 0xB2, 0x5D, 0x59, 0xC9, 0x15, 0x96, 0x8C, 0x2F, 0x9A, 0x36, 0x41, 0x0B, 0x80, 0xBF, 0xBF, 0x32, 0x4A, 0xFC, 0xC4, 0x47, 0xFD, 0xCA, 0xC7, 0x47, 0x62, 0xB9, 0xE5, 0xF9, 0xC5, 0x79, 0x25, 0x51, 0x58, 0x51, 0xF8, 0x51, 0x8D, 0x5C, 0x5A, 0x8D, 0xC2, 0x44, 0xA5, 0x28, 0xBA, 0x44, 0xA2, 0xA2, 0x2C, 0xAF, 0xA4, 0x7C, 0x62, 0x94, 0x4E, 0x61, 0xC9, 0xD4, 0x69, 0x15, 0x1D, 0x5B, 0x4D, 0xEC, 0xD0, 0x3D, 0xE2, 0xD9, 0xB8, 0x5D, 0xA7, 0xE7, 0x15, 0x45, 0xFB, 0x95, 0x13, 0x87, 0x44, 0xFB, 0xA5, 0xD3, 0x2A, 0x72, 0x4B, 0x27, 0x4E, 0x2C, 0xCF, 0xAF, 0x68, 0x55, 0xD8, 0xA1, 0x3B, 0xFF, 0x9F, 0xED, 0xD8, 0xA8, 0x0D, 0x12, 0x89, 0x99, 0xD8, 0xAF, 0x1E, 0xFD, 0xCE, 0xC2, 0x3E, 0xD5, 0x7C, 0x3C, 0x7C, 0xF7, 0x8E, 0x7E, 0x87, 0xE5, 0x95, 0xE5, 0x15, 0x47, 0xC1, 0x64, 0x45, 0x48, 0x6F, 0xEE, 0x4A, 0x09, 0xCA, 0x91, 0x7E, 0xB3, 0xA2, 0x78, 0x7A, 0xA3, 0x6D, 0x0A, 0x4B, 0xA6, 0xE7, 0x16, 0x16, 0x4F, 0xCA, 0x2D, 0x2F, 0x3C, 0x27, 0x5F, 0xF3, 0x82, 0x98, 0x17, 0x85, 0x19, 0xD5, 0xB1, 0xAC, 0x70, 0x42, 0x7E, 0x07, 0xC5, 0xB3, 0x1E, 0xAF, 0xA3, 0xE2, 0x39, 0x8E, 0x3F, 0xC5, 0x54, 0x3C, 0xEA, 0x3B, 0x15, 0xA5, 0x25, 0x51, 0xA5, 0xA6, 0xC6, 0xBD, 0x8E, 0xFD, 0x65, 0xC5, 0xBC, 0x2C, 0xC4, 0x32, 0x29, 0xAF, 0xB8, 0x38, 0x2F, 0x91, 0x8A, 0xBB, 0x52, 0xB4, 0xE5, 0x4E, 0xCD, 0x9B, 0xD0, 0x51, 0xC9, 0x56, 0x46, 0x8D, 0x26, 0x14, 0x52, 0x86, 0x29, 0xD9, 0x2A, 0xB1, 0x0D, 0x86, 0xC3, 0x08, 0xED, 0x13, 0xD1, 0x23, 0x4B, 0x0A, 0x27, 0x96, 0x96, 0x15, 0x4B, 0x39, 0x62, 0x1B, 0x7D, 0x50, 0x8F, 0x49, 0x91, 0x61, 0xC0, 0x71, 0x0D, 0xFB, 0x01, 0xA7, 0x1A, 0x8E, 0xA0, 0x58, 0x0B, 0xA3, 0x0E, 0x54, 0x38, 0x21, 0xB6, 0x45, 0xFD, 0x7C, 0x52, 0x51, 0xEE, 0xE8, 0xD2, 0xB2, 0x29, 0x03, 0xCA, 0x4A, 0xA7, 0x4D, 0x1D, 0xD4, 0x8F, 0x75, 0x4E, 0x8F, 0xF0, 0xA2, 0xC2, 0x44, 0xDC, 0x76, 0x63, 0x58, 0x66, 0x48, 0xE9, 0xF8, 0xBC, 0xA2, 0x41, 0x25, 0xD3, 0xA3, 0x9F, 0x8A, 0xC2, 0xD2, 0x92, 0x41, 0xFD, 0xC4, 0xFE, 0x99, 0xAA, 0xED, 0x26, 0xA8, 0xB6, 0x9B, 0x9C, 0x6C, 0x3B, 0x9B, 0x98, 0x47, 0x39, 0x60, 0xFF, 0x2A, 0xDA, 0x87, 0xED, 0x85, 0x99, 0x6D, 0x97, 0x4C, 0xC8, 0x9F, 0x19, 0xCB, 0x2E, 0x8E, 0xF8, 0x93, 0x27, 0x27, 0xE2, 0x58, 0x57, 0xC5, 0xB9, 0x45, 0x5D, 0x36, 0x6A, 0x82, 0xBC, 0x49, 0x85, 0x25, 0x93, 0xDA, 0x13, 0x1E, 0x26, 0x36, 0x44, 0x78, 0x9F, 0xC2, 0xBC, 0xF2, 0xFC, 0xF2, 0x3E, 0xD3, 0x26, 0xA2, 0x16, 0x1B, 0x92, 0xB5, 0x38, 0x2B, 0xE6, 0x48, 0xAC, 0x0F, 0x25, 0x6B, 0x91, 0x95, 0x78, 0xC6, 0xB7, 0xD7, 0x81, 0xF1, 0x17, 0x7C, 0xBC, 0x23, 0xE3, 0xAF, 0xFA, 0x78, 0x27, 0xB6, 0xF9, 0x2E, 0xC5, 0x88, 0xFA, 0x7E, 0x41, 0xF5, 0xCD, 0x2F, 0x9E, 0xDA, 0xBB, 0x6C, 0x52, 0xCC, 0xFB, 0x26, 0xA2, 0xFB, 0xB6, 0x67, 0xDE, 0xCF, 0x1E, 0xEF, 0x0F, 0xE2, 0x75, 0xE0, 0x1C, 0xA2, 0xD3, 0x63, 0xA2, 0xAC, 0x74, 0x46, 0x79, 0x74, 0x74, 0x4E, 0x2B, 0xA9, 0x60, 0xAC, 0x5A, 0x84, 0x8D, 0x2F, 0x2D, 0x52, 0x98, 0x4D, 0xD4, 0x32, 0xE2, 0xCB, 0x26, 0x1A, 0x9A, 0x54, 0x4D, 0x9B, 0x1B, 0xA9, 0x93, 0x4B, 0x74, 0x8A, 0xF6, 0x67, 0xD2, 0x91, 0x06, 0x5E, 0x37, 0xB2, 0x53, 0xC0, 0xBC, 0x1E, 0x31, 0x6F, 0x62, 0x61, 0x49, 0x7C, 0x5C, 0xDA, 0xC4, 0x60, 0xB2, 0xD1, 0x9E, 0xE5, 0xF2, 0x68, 0xBF, 0x03, 0xEF, 0x97, 0xD2, 0x7E, 0x47, 0xDE, 0x3F, 0x8F, 0xF6, 0x3B, 0x71, 0x4C, 0x8B, 0xA2, 0xFD, 0x41, 0x74, 0x8C, 0x74, 0x48, 0xD5, 0x9A, 0x30, 0xAE, 0x75, 0x7C, 0xF4, 0x74, 0x90, 0x5A, 0x2F, 0x31, 0xA9, 0x7E, 0xF7, 0xB0, 0x49, 0xCF, 0xFD, 0x89, 0x88, 0xEE, 0x8D, 0xBA, 0x6C, 0xF4, 0x78, 0xCF, 0x13, 0xAF, 0x03, 0xF3, 0x5E, 0xF6, 0x78, 0x9B, 0x88, 0xD7, 0x91, 0x79, 0x5B, 0x3C, 0xDE, 0x5B, 0xC4, 0x43, 0x9B, 0xBC, 0x97, 0xAC, 0x8D, 0x4B, 0x7C, 0x9E, 0x26, 0x17, 0x26, 0x76, 0x46, 0xF4, 0xE8, 0xFC, 0xC2, 0x49, 0x05, 0x15, 0xDC, 0x61, 0x28, 0x87, 0x9D, 0xC9, 0x1C, 0x66, 0x30, 0x07, 0x39, 0xEC, 0x4A, 0xE6, 0x10, 0x9D, 0xEB, 0xA3, 0x93, 0x47, 0x1F, 0xC4, 0x9C, 0x15, 0xA4, 0xFB, 0x6E, 0x48, 0x3C, 0xC4, 0xDC, 0xD8, 0xE3, 0x75, 0x25, 0x1E, 0x6A, 0x79, 0x6C, 0xB4, 0x3F, 0x05, 0xF6, 0x16, 0x06, 0xA9, 0xB6, 0x5C, 0x1A, 0xA4, 0xDA, 0x72, 0x45, 0x90, 0x6A, 0xCB, 0xB5, 0x41, 0x7A, 0x5B, 0xDE, 0x1F, 0x48, 0x5B, 0x86, 0x89, 0x27, 0x62, 0x3F, 0x33, 0xE9, 0x84, 0x5E, 0x36, 0x21, 0xC1, 0xD8, 0xF6, 0x80, 0xDB, 0x81, 0x4E, 0x7E, 0x1D, 0x81, 0xED, 0x88, 0xB1, 0xF2, 0xBC, 0xE2, 0xA9, 0x45, 0xF9, 0x65, 0xA8, 0xC9, 0xEE, 0x08, 0x8B, 0xCF, 0x12, 0xA0, 0xFF, 0xF2, 0xE8, 0x6A, 0x36, 0x9D, 0x6E, 0xE4, 0xD1, 0xCD, 0x6D, 0x7A, 0x8E, 0xAD, 0x6C, 0xAA, 0x3D, 0x8F, 0xF2, 0x78, 0xED, 0x6C, 0xAA, 0x3D, 0x3B, 0x79, 0xBC, 0x2E, 0x36, 0xD5, 0x9E, 0xC7, 0x79, 0xBC, 0x1E, 0x36, 0xD5, 0x9E, 0x7D, 0x6D, 0xAA, 0x3D, 0x07, 0x7B, 0x72, 0xF9, 0x36, 0xD5, 0x2E, 0x93, 0x3C, 0xDE, 0x5C, 0x9B, 0x6A, 0x97, 0x0B, 0x3D, 0xDE, 0x8D, 0x36, 0xD5, 0x2E, 0x37, 0xD9, 0x54, 0xBB, 0xFC, 0x64, 0x53, 0xED, 0xF2, 0x97, 0x4D, 0xB5, 0x4B, 0xE8, 0x44, 0xC6, 0x25, 0x8E, 0x8C, 0xF6, 0x87, 0x4E, 0xAB, 0x48, 0xF6, 0x1F, 0xA2, 0xB9, 0xFF, 0xD0, 0x19, 0xFC, 0xAC, 0x69, 0xD2, 0x5E, 0x47, 0xBB, 0x54, 0xFF, 0xB9, 0x2A, 0xDA, 0x9F, 0x35, 0x0B, 0xFE, 0xA2, 0xFD, 0x99, 0x33, 0x79, 0xFF, 0xBE, 0x68, 0x7F, 0xFC, 0x78, 0xDE, 0x7F, 0x32, 0xDA, 0x9F, 0x54, 0xC8, 0x3E, 0x36, 0xB9, 0xF4, 0x9A, 0xBF, 0xE6, 0xD1, 0x9B, 0x3D, 0xFA, 0x43, 0x8F, 0xFE, 0xC8, 0xA3, 0x3F, 0xF6, 0xE8, 0x3D, 0x1E, 0xFD, 0x93, 0x47, 0xFF, 0xEC, 0xD1, 0x95, 0xC2, 0x74, 0xBA, 0xB2, 0x47, 0x57, 0xF1, 0xE8, 0x3A, 0x1E, 0x5D, 0xD7, 0xA3, 0xEB, 0x79, 0xF4, 0xD1, 0x1E, 0xDD, 0xD6, 0xA3, 0xDB, 0x79, 0x74, 0xB6, 0x47, 0xF7, 0xF4, 0xE8, 0x5E, 0x1E, 0x7D, 0x8A, 0x47, 0x8F, 0xF0, 0xE8, 0x91, 0x8A, 0x1E, 0xA8, 0xE6, 0x17, 0x87, 0xE3, 0x57, 0x30, 0x03, 0xAC, 0xBA, 0xC2, 0x02, 0x60, 0x75, 0x14, 0x66, 0x81, 0x35, 0x50, 0x98, 0x03, 0xD6, 0x44, 0x61, 0x21, 0xB0, 0x23, 0x14, 0x96, 0x05, 0xAC, 0x95, 0xC2, 0x2A, 0x01, 0x3B, 0x4A, 0x61, 0x95, 0x81, 0xB5, 0x57, 0x58, 0x15, 0x60, 0xDD, 0x80, 0xF5, 0xF1, 0xF2, 0x18, 0x10, 0x45, 0xD6, 0x07, 0x31, 0x0F, 0x88, 0x22, 0xA2, 0x39, 0xC0, 0x01, 0xD1, 0x56, 0x0F, 0xF4, 0x18, 0xD0, 0xF5, 0x41, 0x2F, 0x04, 0xDD, 0x10, 0xF4, 0x03, 0x88, 0x2F, 0x88, 0xED, 0xBB, 0xE4, 0x58, 0x5B, 0xD3, 0xA3, 0xA5, 0x16, 0x1B, 0x32, 0xF8, 0xDF, 0xA0, 0xFC, 0xD3, 0x98, 0xDC, 0x2C, 0xC9, 0x63, 0xBA, 0x29, 0x72, 0x23, 0xFA, 0x6A, 0x93, 0xEE, 0x4F, 0xC6, 0x9B, 0x9A, 0x1E, 0x2D, 0xFE, 0x84, 0xD6, 0xFE, 0x08, 0x13, 0x7F, 0x34, 0x2E, 0x69, 0x7F, 0x44, 0x37, 0x55, 0xF1, 0x7C, 0xE1, 0xF9, 0xDB, 0xE9, 0xF9, 0xDB, 0xE9, 0xF9, 0xDB, 0x99, 0xC1, 0xDF, 0x4E, 0xE5, 0x6F, 0x97, 0xE7, 0x6F, 0x17, 0xFC, 0x55, 0x02, 0x4D, 0xE7, 0x6C, 0xCD, 0x27, 0xBA, 0x29, 0xFA, 0x0A, 0xD1, 0x3B, 0x3C, 0xFE, 0x0E, 0xF0, 0x2D, 0xE8, 0x36, 0x2E, 0x3D, 0x5E, 0x39, 0x17, 0xD5, 0xF4, 0xE8, 0xBA, 0x88, 0x57, 0x68, 0x1D, 0x2F, 0x61, 0x12, 0x2F, 0x9D, 0xB3, 0xB4, 0x3F, 0xA2, 0x9B, 0x2A, 0xFA, 0xBA, 0x90, 0xFB, 0x43, 0xDD, 0xD8, 0x47, 0x10, 0xEB, 0x35, 0x8D, 0xAF, 0x86, 0xD8, 0xC6, 0x61, 0xD1, 0x5E, 0x16, 0xFA, 0x78, 0x13, 0x3A, 0x6F, 0x20, 0xD7, 0xAC, 0x58, 0xCE, 0xC5, 0xED, 0x9A, 0x05, 0xEC, 0xD0, 0x88, 0x3E, 0x50, 0x5D, 0x57, 0x35, 0x89, 0xAF, 0x92, 0x98, 0x77, 0x60, 0x2C, 0x9F, 0x15, 0x5D, 0xAB, 0xF1, 0x7E, 0x35, 0xB5, 0x1D, 0x49, 0x63, 0x70, 0xAC, 0x9F, 0x48, 0x6C, 0xFC, 0xFB, 0xAD, 0xCE, 0xB5, 0x22, 0xCF, 0x87, 0x29, 0x9C, 0xFA, 0xF2, 0xE6, 0x1B, 0xEE, 0xEB, 0x27, 0x34, 0xF5, 0xDD, 0xBB, 0x86, 0xAE, 0xCA, 0x16, 0x9A, 0xF2, 0x1B, 0xF5, 0xAD, 0xED, 0x21, 0x74, 0x8B, 0x68, 0xFB, 0x7C, 0xED, 0x9B, 0x3D, 0x85, 0xA6, 0xE3, 0xEE, 0xFC, 0x8F, 0xB6, 0x27, 0xE5, 0x8F, 0x8C, 0xB6, 0xA9, 0xCF, 0xF5, 0x7A, 0x5C, 0x68, 0x3A, 0xDE, 0xBE, 0xE8, 0x9F, 0x93, 0xE4, 0xD3, 0x58, 0xBB, 0xA3, 0xD9, 0x6B, 0xDD, 0x85, 0xEE, 0x12, 0x6D, 0x8B, 0x57, 0xCF, 0x89, 0xED, 0x51, 0xEC, 0x74, 0xA1, 0xD3, 0x0B, 0xF9, 0xF6, 0x40, 0xBE, 0xF4, 0xAF, 0x36, 0x9D, 0xC7, 0xA2, 0xDF, 0x1E, 0x68, 0x6F, 0xA2, 0x7B, 0xAA, 0xE3, 0x8B, 0xE8, 0x5E, 0xE0, 0x13, 0xDD, 0x28, 0xB2, 0x46, 0xC7, 0x38, 0xE9, 0xF4, 0x44, 0x5D, 0xF4, 0x96, 0x85, 0xDF, 0x5E, 0xD8, 0x1A, 0xE1, 0x58, 0xEF, 0x8D, 0xDA, 0xF6, 0xC5, 0xF9, 0xA1, 0x4F, 0x1C, 0x13, 0xD3, 0xFD, 0x80, 0x49, 0xAC, 0x39, 0x88, 0x4D, 0xE8, 0xFE, 0x88, 0x8D, 0xF4, 0x07, 0x40, 0xF6, 0x40, 0xC4, 0x36, 0x1C, 0xFB, 0x16, 0xFC, 0x53, 0xD0, 0x76, 0xC3, 0xC1, 0x1F, 0x89, 0xD8, 0x85, 0x3F, 0x0A, 0xED, 0x3C, 0x12, 0xFE, 0x47, 0xE1, 0x5A, 0xDB, 0x28, 0x7A, 0x0C, 0x68, 0xF1, 0x9F, 0x8B, 0x7A, 0x1D, 0x89, 0xDA, 0x8D, 0x53, 0xF1, 0x11, 0x9D, 0xEF, 0xC9, 0x17, 0xA0, 0x56, 0xC2, 0x9F, 0xA2, 0x68, 0xE2, 0x4F, 0x45, 0x0E, 0x14, 0xCF, 0xD9, 0xD8, 0xEF, 0x01, 0x7A, 0x01, 0x6C, 0xF5, 0x40, 0x3C, 0x0B, 0xB0, 0x06, 0xA0, 0xED, 0x2F, 0xC3, 0xB9, 0x5F, 0xE8, 0xE5, 0x38, 0x57, 0x51, 0xBF, 0x5F, 0xA1, 0x78, 0x64, 0xE3, 0x96, 0x68, 0x9B, 0x1B, 0x8F, 0x01, 0x2E, 0xB1, 0x32, 0xFA, 0x5D, 0x01, 0x8C, 0x7C, 0xDD, 0x8A, 0xBA, 0xAE, 0x84, 0x2F, 0xA2, 0x57, 0x01, 0x23, 0x7D, 0x92, 0xBD, 0x03, 0xB9, 0x92, 0xFC, 0x9D, 0xE0, 0xAD, 0x88, 0xFB, 0xB3, 0x8D, 0xCF, 0xC3, 0x2B, 0xD0, 0xC6, 0x74, 0x3E, 0x7D, 0x00, 0x72, 0x0F, 0xA2, 0x4D, 0x36, 0xC0, 0x2E, 0xD1, 0x0F, 0x01, 0x23, 0xFE, 0x93, 0xD8, 0x5F, 0xA1, 0xFC, 0x3E, 0x03, 0xDB, 0x42, 0xBF, 0xE0, 0xD1, 0xAF, 0xAA, 0xB8, 0x48, 0x77, 0xAB, 0xAA, 0x09, 0xE5, 0xB9, 0x8D, 0xCE, 0x2D, 0xD5, 0x52, 0xF4, 0x3B, 0x54, 0x13, 0x93, 0xA2, 0x77, 0xA0, 0x0F, 0x08, 0xFD, 0x89, 0x57, 0xA7, 0x4F, 0x51, 0xC3, 0x82, 0x1A, 0x95, 0x12, 0x9F, 0x21, 0xB6, 0x1D, 0x90, 0xFB, 0x14, 0x6D, 0x48, 0xB1, 0x7F, 0x8E, 0xFE, 0xF5, 0x99, 0xD2, 0xDD, 0x85, 0xD8, 0xA8, 0xC6, 0x5F, 0x81, 0xB7, 0x0B, 0xF4, 0xD7, 0xD1, 0xEF, 0x57, 0x4A, 0x7F, 0x37, 0xF4, 0xBF, 0x56, 0xFA, 0x3F, 0x46, 0xDB, 0xBF, 0xD1, 0x3F, 0xF2, 0xBD, 0x27, 0x83, 0xEF, 0x1F, 0xA1, 0xFB, 0x13, 0x74, 0xF7, 0xC0, 0xF6, 0x5E, 0xEC, 0x8B, 0xAF, 0xDF, 0xA2, 0xDF, 0xBD, 0xCA, 0xD7, 0xEF, 0x90, 0xFF, 0x4D, 0xD5, 0xAD, 0x8A, 0x49, 0xC4, 0x6B, 0x1D, 0x42, 0x57, 0x37, 0x2C, 0x23, 0x74, 0xFD, 0x88, 0xDE, 0xA8, 0xE8, 0x93, 0x0D, 0xC7, 0x46, 0xED, 0x4D, 0xE3, 0xA0, 0xB4, 0x37, 0x8D, 0x67, 0x44, 0x93, 0x9F, 0xC5, 0x86, 0xDB, 0x93, 0xB0, 0xEE, 0xA0, 0x97, 0x00, 0xA3, 0x9C, 0x1E, 0x34, 0xFB, 0xE6, 0x34, 0x0E, 0x31, 0x3E, 0x04, 0xFF, 0x24, 0x43, 0x39, 0x3C, 0x66, 0x78, 0x5F, 0x72, 0x78, 0x1C, 0xFC, 0xC7, 0xC0, 0xFF, 0x9F, 0xE1, 0x9C, 0x85, 0xFF, 0x1C, 0xF8, 0x84, 0x93, 0xAF, 0x4F, 0x95, 0xAF, 0x4F, 0xB1, 0xE5, 0x43, 0xF6, 0x33, 0xC8, 0x92, 0x0C, 0xE5, 0xF3, 0x85, 0xCA, 0x87, 0xC6, 0xCB, 0x2F, 0x90, 0xCF, 0x97, 0x88, 0x7D, 0x27, 0xF2, 0x21, 0x7A, 0x17, 0x30, 0xA9, 0xCB, 0xB7, 0x26, 0xD5, 0x9F, 0x88, 0xFE, 0x3E, 0xA2, 0xB7, 0xA8, 0x36, 0xA5, 0x03, 0x7E, 0x6A, 0xC0, 0x31, 0xB9, 0x60, 0xDF, 0x98, 0xA4, 0x4D, 0xC3, 0x80, 0x63, 0x22, 0x19, 0xB1, 0xD5, 0x22, 0xDA, 0x9F, 0x8B, 0x58, 0x1E, 0x07, 0xBF, 0xA7, 0x1A, 0x5B, 0x5E, 0x09, 0xE2, 0x43, 0xB2, 0xE7, 0x51, 0xD1, 0x58, 0x4A, 0xF8, 0xAB, 0x01, 0x63, 0xB4, 0x91, 0xCE, 0x6B, 0x01, 0x9F, 0x53, 0x7A, 0xC6, 0x63, 0x64, 0x95, 0xC4, 0xFB, 0x01, 0x9F, 0x97, 0x31, 0x4D, 0x48, 0xFE, 0x33, 0xEA, 0xD8, 0xFE, 0x80, 0x6D, 0xC6, 0xB2, 0xDD, 0x41, 0x6F, 0x07, 0x56, 0x2F, 0x4A, 0xE6, 0x23, 0xD8, 0xFE, 0x18, 0xD8, 0x47, 0x90, 0x23, 0x7A, 0x07, 0xB0, 0xFA, 0x51, 0x45, 0x3E, 0x0D, 0xD8, 0x86, 0xC4, 0xFA, 0x45, 0x90, 0x1A, 0x67, 0x76, 0x06, 0x5C, 0xC3, 0x20, 0x9E, 0x43, 0x86, 0x31, 0xFD, 0x65, 0xC0, 0x7D, 0x8C, 0x36, 0x92, 0xD9, 0x85, 0x58, 0x9D, 0x92, 0xF9, 0x1D, 0x32, 0x39, 0x0A, 0xAB, 0x6A, 0x19, 0xDB, 0xAA, 0xB0, 0xFA, 0xC0, 0x0A, 0x54, 0xBB, 0x9C, 0x12, 0x61, 0xBD, 0x10, 0xFB, 0xA1, 0x8E, 0x6B, 0x29, 0xE7, 0x2F, 0x9A, 0xB7, 0x48, 0xFB, 0xD3, 0xFC, 0x83, 0x68, 0x92, 0x3B, 0xCA, 0xA1, 0xAD, 0x1D, 0xE7, 0x48, 0xF4, 0xD1, 0x2E, 0xD5, 0xFE, 0xD4, 0xBE, 0x23, 0x1D, 0x8F, 0x6F, 0x24, 0xFF, 0x04, 0xEC, 0xEE, 0x54, 0x6D, 0x98, 0x1B, 0xF2, 0xBC, 0x5A, 0xE8, 0x71, 0x61, 0x02, 0xE3, 0x38, 0xD3, 0x79, 0x21, 0x8F, 0xE1, 0x42, 0x9F, 0x15, 0xF2, 0x79, 0x5A, 0xEA, 0x36, 0x3E, 0xA2, 0xEF, 0x79, 0xBE, 0x65, 0x57, 0xA1, 0x27, 0x44, 0xF4, 0x93, 0x5D, 0xE7, 0x77, 0x16, 0x3A, 0x3F, 0xA2, 0xAF, 0x7D, 0x7A, 0x5B, 0x27, 0xA1, 0x27, 0x46, 0xF4, 0xF4, 0x4D, 0x47, 0x96, 0x09, 0x3D, 0x29, 0xA2, 0x6B, 0x3F, 0x7C, 0x72, 0x37, 0x89, 0xB7, 0x80, 0xD7, 0xBD, 0xE7, 0x0A, 0x5D, 0x18, 0xC6, 0xC7, 0xF5, 0x1C, 0xA1, 0x27, 0x33, 0x7F, 0x63, 0x72, 0xCC, 0x62, 0x7E, 0x4F, 0xA1, 0x8B, 0x98, 0xBF, 0x43, 0xE8, 0x62, 0xE6, 0x37, 0x16, 0x7F, 0x25, 0x11, 0xFD, 0xC1, 0xC1, 0x83, 0x7A, 0x49, 0x3E, 0xA5, 0x21, 0x0F, 0x3C, 0xC9, 0x31, 0x8F, 0xE4, 0x7B, 0xA6, 0xE8, 0xB3, 0xC3, 0xF4, 0xE3, 0xA9, 0x0C, 0x73, 0x3A, 0xA1, 0xCB, 0x43, 0x1E, 0x74, 0x85, 0xAE, 0x08, 0x79, 0x42, 0x21, 0xFE, 0xA6, 0x45, 0xF4, 0x6B, 0x9B, 0x86, 0xF4, 0x90, 0x78, 0xA6, 0xC7, 0xF1, 0xF5, 0x4A, 0xB6, 0xCF, 0x8C, 0x90, 0xD7, 0xCB, 0x85, 0x9E, 0x19, 0xC7, 0x6B, 0x92, 0xF4, 0xAC, 0x30, 0x11, 0xAF, 0x1D, 0x0B, 0x7D, 0x0E, 0xF1, 0x6D, 0x8A, 0x3E, 0x37, 0x4C, 0x9D, 0x17, 0x89, 0x9E, 0x1D, 0xF2, 0x1C, 0xA0, 0x75, 0xD4, 0x57, 0x68, 0x9E, 0x77, 0x5E, 0x98, 0x8A, 0xE5, 0xFC, 0x38, 0xB6, 0x06, 0xFD, 0x25, 0xD6, 0x39, 0x11, 0x5D, 0x4B, 0xE9, 0xCE, 0x8D, 0x7D, 0x1F, 0x9C, 0xA4, 0x2F, 0x08, 0xD3, 0xFB, 0xD2, 0x85, 0xC4, 0x3F, 0x38, 0x65, 0xEF, 0x22, 0xAE, 0x75, 0x2F, 0xA1, 0x2F, 0x8E, 0xE9, 0x81, 0x7D, 0x84, 0x9E, 0x17, 0xE7, 0xBE, 0x29, 0x5B, 0xFC, 0xCD, 0x0F, 0xF9, 0x60, 0x16, 0xFE, 0x25, 0x94, 0xDB, 0x3B, 0xAB, 0x92, 0x73, 0xC1, 0x4B, 0x23, 0x7A, 0xEF, 0xA6, 0xC5, 0xDD, 0x84, 0xBE, 0x2C, 0xB6, 0x37, 0xAE, 0xB7, 0xD0, 0x97, 0xC7, 0x7D, 0x6D, 0x4D, 0x17, 0xB1, 0x77, 0x45, 0xC8, 0x83, 0xA3, 0xC4, 0x77, 0x25, 0xC7, 0x63, 0x84, 0xBE, 0x8A, 0xE9, 0x40, 0xE8, 0x05, 0x4C, 0x3B, 0xA1, 0x17, 0x86, 0x89, 0xE4, 0x5C, 0x98, 0xE8, 0xAB, 0xA9, 0x2F, 0x2A, 0x7A, 0x51, 0xC8, 0xD7, 0x2E, 0x42, 0x2F, 0x0E, 0x79, 0x2E, 0x2F, 0xFE, 0x97, 0xE0, 0x66, 0x88, 0xC4, 0x77, 0x4D, 0x44, 0xAF, 0xCE, 0x3E, 0x24, 0x99, 0xCF, 0xB5, 0x11, 0x3D, 0xE9, 0x87, 0x27, 0xB3, 0x8F, 0x8A, 0x28, 0x9A, 0xC7, 0xD1, 0xF5, 0x00, 0xB5, 0x4F, 0x3E, 0xCE, 0xF5, 0x5D, 0xA2, 0x23, 0x2F, 0xC0, 0x39, 0x44, 0xEE, 0xB1, 0xFC, 0x16, 0x21, 0x21, 0xE6, 0x13, 0x34, 0x47, 0x1C, 0x81, 0xB1, 0x51, 0xE8, 0xD3, 0x15, 0x4D, 0xF3, 0xFB, 0x33, 0x3D, 0x7A, 0x82, 0x47, 0x4F, 0xF6, 0xE8, 0x79, 0x1E, 0x7D, 0x95, 0x47, 0x2F, 0xF6, 0xE8, 0x77, 0x15, 0x4D, 0x73, 0x8A, 0x2F, 0x14, 0x4D, 0x73, 0x84, 0x6F, 0x14, 0x4D, 0xE3, 0xFE, 0xCF, 0x8A, 0xA6, 0x71, 0xFD, 0x0F, 0xCF, 0x9E, 0x35, 0xE9, 0x74, 0x35, 0x8F, 0xAE, 0xE5, 0xD1, 0x0D, 0x3D, 0xBA, 0xB9, 0x47, 0x77, 0xF2, 0xE8, 0x6E, 0x1E, 0xDD, 0xC3, 0xA3, 0x07, 0x7B, 0xF4, 0x49, 0x1E, 0x9D, 0xE7, 0xD1, 0xA5, 0x1E, 0x7D, 0x9E, 0xA2, 0x69, 0x4E, 0xF0, 0xB0, 0xA2, 0x69, 0x0E, 0xF0, 0x84, 0x49, 0xAF, 0xC7, 0x46, 0x45, 0xD3, 0x1C, 0xE0, 0x79, 0x8F, 0xFF, 0xB2, 0xC7, 0xDF, 0xE4, 0xF1, 0xB7, 0x78, 0xFC, 0xB7, 0xBC, 0x78, 0xDE, 0x53, 0x34, 0xCD, 0x1B, 0x3E, 0xF7, 0xE8, 0x20, 0x48, 0xD1, 0x34, 0x86, 0x67, 0x79, 0x74, 0x43, 0x8F, 0x6E, 0xEC, 0xD1, 0x5D, 0x83, 0x74, 0x7F, 0xC7, 0x7A, 0xF4, 0x42, 0x8F, 0x5E, 0xEA, 0xD1, 0x2B, 0x3C, 0x7A, 0xAD, 0x47, 0xDF, 0xAF, 0x68, 0x9A, 0x43, 0x3C, 0xA1, 0x68, 0xFA, 0xDD, 0xED, 0xD1, 0x7F, 0x79, 0x34, 0xAD, 0xBF, 0x6A, 0xBA, 0x91, 0x4D, 0x6F, 0x9F, 0xE6, 0x36, 0xBD, 0x7D, 0x5A, 0xD9, 0xF4, 0xFA, 0x1E, 0x65, 0xD3, 0xEB, 0xDB, 0xCE, 0xE3, 0x77, 0xF2, 0xF8, 0x5D, 0x3C, 0xFE, 0x71, 0x1E, 0xBF, 0x87, 0x4D, 0xCF, 0xAF, 0xAF, 0x4D, 0x6F, 0x8F, 0xC1, 0x1E, 0x9D, 0x6F, 0xD3, 0xEB, 0x3D, 0xC9, 0xA3, 0xE7, 0x7A, 0xF4, 0x85, 0x1E, 0x7D, 0xA3, 0xE7, 0xEF, 0x26, 0x8F, 0xFE, 0xC9, 0xA3, 0xFF, 0xF2, 0xE8, 0xD0, 0x79, 0xE7, 0x03, 0x8F, 0xBE, 0xC9, 0xA3, 0xEF, 0x53, 0x34, 0xCD, 0x27, 0x9E, 0xF4, 0xF8, 0x9B, 0x3C, 0xFA, 0x35, 0x8F, 0xDE, 0xEC, 0xD1, 0x1F, 0x7A, 0xF4, 0x47, 0x1E, 0xFD, 0xB1, 0x47, 0xEF, 0xF1, 0xE8, 0x9F, 0x3C, 0xFA, 0x67, 0x8F, 0xAE, 0x14, 0xA6, 0xD3, 0x95, 0x3D, 0xBA, 0x8A, 0x47, 0xD7, 0xF1, 0xE8, 0xBA, 0x1E, 0x5D, 0xCF, 0xA3, 0x8F, 0xF6, 0xE8, 0xB6, 0x1E, 0xDD, 0xCE, 0xA3, 0xB3, 0x3D, 0xBA, 0xA7, 0x47, 0xF7, 0xF2, 0xE8, 0x53, 0x3C, 0x7A, 0x84, 0x47, 0x8F, 0x04, 0xDD, 0x03, 0x6B, 0x08, 0xA7, 0x62, 0x9D, 0x60, 0x36, 0xD6, 0x1C, 0x4E, 0x03, 0x96, 0x1D, 0x8D, 0x2E, 0x23, 0x40, 0x8B, 0xEC, 0x19, 0x58, 0x43, 0x10, 0xD9, 0xB1, 0xC0, 0xB2, 0x71, 0x5F, 0x73, 0x6C, 0xBC, 0x1E, 0x12, 0xF2, 0x79, 0x11, 0x63, 0xD1, 0x38, 0xE8, 0xC7, 0x73, 0x41, 0xE0, 0x17, 0x47, 0x32, 0x07, 0xE2, 0x1E, 0x66, 0x2E, 0xF0, 0x6C, 0xDC, 0xEF, 0x1C, 0xAF, 0x6C, 0x4C, 0x84, 0x8D, 0x7C, 0x65, 0x63, 0x12, 0x70, 0xB1, 0x51, 0x08, 0xAC, 0x00, 0x36, 0x26, 0x00, 0x13, 0x1B, 0x45, 0xB0, 0x31, 0x45, 0xD9, 0x28, 0x06, 0x2E, 0x36, 0x4A, 0x80, 0xE5, 0xC2, 0xC6, 0x64, 0x60, 0x22, 0x5F, 0x8A, 0x71, 0xB3, 0x77, 0x54, 0x39, 0x5A, 0xD7, 0x28, 0xC3, 0xDA, 0x4E, 0x0E, 0xD6, 0x3C, 0x24, 0x47, 0x1A, 0xF3, 0xCB, 0xC1, 0x9F, 0x2D, 0xF3, 0x3B, 0x60, 0xF7, 0x46, 0xBE, 0x68, 0xEE, 0x30, 0x0D, 0xF6, 0x2A, 0xE2, 0x35, 0x08, 0x17, 0x63, 0xD3, 0x81, 0xEF, 0x8D, 0x7C, 0xCF, 0xC4, 0xD8, 0xFE, 0x47, 0xC4, 0x23, 0x7C, 0x06, 0xEE, 0x01, 0xD3, 0x38, 0x3F, 0x43, 0xC5, 0x34, 0x0B, 0x63, 0xB7, 0xC4, 0x74, 0x8E, 0x17, 0x53, 0xBE, 0x8A, 0xE9, 0x5C, 0xF0, 0x25, 0xA6, 0xD9, 0xC0, 0x24, 0xA6, 0xF3, 0x60, 0x8F, 0xF0, 0xDF, 0x23, 0x3F, 0xE2, 0x8F, 0x7E, 0x7F, 0x89, 0xEC, 0x93, 0xCC, 0xF9, 0x88, 0x31, 0x84, 0xBC, 0x8E, 0x65, 0x0E, 0xE6, 0x0D, 0x62, 0x6F, 0x2E, 0x30, 0x5A, 0x9B, 0xBB, 0x1D, 0xD8, 0x05, 0xB0, 0x31, 0x17, 0x79, 0x5E, 0xA4, 0xF2, 0x24, 0xDE, 0x85, 0x34, 0x3F, 0x84, 0x5F, 0xDA, 0xFF, 0x3B, 0x9A, 0xF8, 0xD1, 0xFE, 0x45, 0x68, 0x93, 0x79, 0xC8, 0x8D, 0xE2, 0x9B, 0x0F, 0x39, 0xFA, 0xFD, 0x35, 0xD2, 0xBF, 0x94, 0xE6, 0x7E, 0xB0, 0x47, 0xFC, 0xCB, 0xC1, 0xBF, 0x5C, 0xC5, 0x78, 0x05, 0xE6, 0x32, 0xEB, 0x11, 0xCF, 0x95, 0xC0, 0xFA, 0x23, 0x06, 0xA2, 0x2F, 0xA1, 0x39, 0x25, 0x74, 0x2F, 0x51, 0xF5, 0xBB, 0x1A, 0x6B, 0x55, 0x52, 0xBF, 0x45, 0xC0, 0xB2, 0x71, 0xCF, 0x7D, 0x11, 0xF6, 0x17, 0xAB, 0x18, 0x97, 0xC0, 0xCE, 0x12, 0xC4, 0x78, 0x2D, 0xCD, 0xE7, 0x54, 0x8C, 0x4B, 0xC1, 0x5F, 0xAA, 0x62, 0xBC, 0x1E, 0xF3, 0x29, 0x89, 0xF1, 0x06, 0x60, 0xCB, 0x94, 0xCC, 0x8D, 0x98, 0x83, 0x89, 0xCC, 0x4D, 0xC0, 0x68, 0xAD, 0x6C, 0x0D, 0xB0, 0x9B, 0xA1, 0x7B, 0x13, 0x72, 0x23, 0xFA, 0x1A, 0x9A, 0x5F, 0xC2, 0xE7, 0x35, 0xCA, 0xDE, 0x6D, 0xF0, 0x29, 0xC7, 0xC2, 0x6A, 0x60, 0xCB, 0x95, 0xCC, 0xED, 0xF0, 0x39, 0x17, 0x32, 0x6B, 0x20, 0x77, 0x3B, 0x8E, 0x33, 0x5A, 0x3F, 0xBB, 0x0B, 0x6B, 0x6C, 0x6B, 0xE2, 0x5A, 0x84, 0x31, 0x7D, 0x07, 0xD6, 0x7B, 0xF5, 0xB1, 0x77, 0xB7, 0x17, 0xFF, 0x3D, 0xC0, 0xBA, 0xA3, 0x5F, 0xAC, 0x53, 0xFD, 0x82, 0x78, 0x6B, 0xA3, 0x6D, 0x1D, 0xE2, 0x5E, 0xAB, 0xEC, 0xDC, 0xEB, 0xC5, 0x7D, 0x1F, 0x30, 0x1D, 0xF7, 0x7A, 0x2F, 0xEE, 0xFB, 0x21, 0xB7, 0x5E, 0xC9, 0x3C, 0x8C, 0xBE, 0x2B, 0xF4, 0x23, 0xE8, 0x27, 0x62, 0xF7, 0x51, 0x60, 0xCB, 0x95, 0x9D, 0xC7, 0xA0, 0xF7, 0xA8, 0xD2, 0x7B, 0xDC, 0xF3, 0xF5, 0x04, 0xE4, 0x1E, 0x8F, 0x6B, 0x94, 0x15, 0xAF, 0x0D, 0x3E, 0x85, 0xF5, 0xC2, 0x1C, 0xF0, 0x7B, 0x60, 0x2D, 0xF2, 0x69, 0xF0, 0xA4, 0x96, 0x1B, 0x51, 0xCB, 0xFB, 0x51, 0xCB, 0x8D, 0x90, 0x91, 0x5A, 0x52, 0xFF, 0x91, 0x9A, 0xAC, 0x53, 0x31, 0x3C, 0xEB, 0xD5, 0xE4, 0x7F, 0xC0, 0x74, 0x4D, 0x9E, 0xF3, 0xE2, 0x7C, 0x1E, 0x72, 0xCF, 0x29, 0x99, 0x17, 0x3D, 0x3B, 0x2F, 0x01, 0xD3, 0x76, 0x5E, 0xF6, 0xEC, 0xBC, 0x02, 0xB9, 0x97, 0x95, 0xCC, 0x26, 0xCF, 0xCE, 0x6B, 0xC0, 0xB4, 0x9D, 0xCD, 0x9E, 0x9D, 0xD7, 0x21, 0xB7, 0x59, 0xD5, 0x63, 0x0B, 0xD6, 0x49, 0x5F, 0x47, 0x3D, 0xB6, 0x78, 0x7D, 0x4B, 0xE4, 0xDE, 0xC0, 0xFA, 0xEA, 0x2B, 0x90, 0x7B, 0x63, 0x3F, 0x72, 0x6F, 0x62, 0x5D, 0xF6, 0x79, 0xC8, 0xBD, 0xE9, 0xC9, 0x51, 0x7D, 0xAF, 0x43, 0x7D, 0xAF, 0x53, 0xB1, 0xBE, 0x85, 0x7C, 0x24, 0xD6, 0xB7, 0x81, 0x6D, 0x55, 0xC7, 0xFF, 0xDB, 0xDE, 0xF1, 0x7F, 0x6D, 0xBC, 0x36, 0x68, 0x63, 0xBB, 0xDB, 0xE2, 0xB5, 0x32, 0x17, 0xEF, 0x4F, 0xC1, 0x5A, 0x6E, 0x36, 0x9E, 0x73, 0x91, 0xF3, 0xC6, 0x7B, 0xD0, 0x7B, 0x0F, 0xE7, 0x8D, 0x0F, 0xA2, 0xDF, 0xED, 0xEA, 0xBC, 0xF1, 0x21, 0xF8, 0x1F, 0xAA, 0xB8, 0x3E, 0xC2, 0x75, 0x97, 0x1C, 0x53, 0x1F, 0x03, 0x2B, 0xC0, 0x71, 0x44, 0xF4, 0xFB, 0xD1, 0xF6, 0x01, 0x74, 0xDF, 0x57, 0xB5, 0xD8, 0x89, 0xBE, 0x46, 0x63, 0x58, 0x61, 0x8D, 0xCA, 0xF1, 0x1A, 0xEF, 0x97, 0xC0, 0x73, 0xB0, 0xA6, 0xD7, 0x1E, 0xF1, 0x52, 0xAC, 0x5F, 0x80, 0x2F, 0xBE, 0xBF, 0x85, 0x6F, 0xA1, 0xBF, 0xC3, 0xF1, 0x43, 0x34, 0xD9, 0xFA, 0x1E, 0xD7, 0x80, 0x74, 0x0C, 0xD0, 0xF5, 0xE0, 0x0F, 0xB8, 0x06, 0xFC, 0x16, 0xB2, 0x64, 0xF3, 0x07, 0xC8, 0x49, 0x4C, 0xBF, 0x78, 0x31, 0xED, 0x89, 0x6B, 0xC1, 0x78, 0xA6, 0x98, 0x7E, 0x06, 0x5F, 0x62, 0xF8, 0xD3, 0x8B, 0xE9, 0x2F, 0x15, 0xD3, 0x9E, 0x78, 0x6C, 0xE1, 0xEB, 0x4E, 0x8A, 0x89, 0xE6, 0xE4, 0xFF, 0xE0, 0xBA, 0xF3, 0x4F, 0xC8, 0x92, 0xCD, 0x7F, 0x20, 0x47, 0x35, 0xDF, 0x8E, 0xBA, 0x6D, 0x57, 0x36, 0xFF, 0x85, 0x0F, 0xE9, 0x0B, 0xB4, 0x4E, 0xF1, 0xAF, 0xEA, 0x0B, 0xEF, 0x02, 0xD3, 0x6D, 0xFA, 0x01, 0xEC, 0x5D, 0x06, 0xFA, 0x32, 0x65, 0xCF, 0x18, 0x8E, 0x51, 0xEC, 0x05, 0x86, 0xB1, 0xAD, 0x6A, 0xFC, 0x0B, 0x4C, 0xFA, 0xF8, 0x77, 0xA9, 0x1A, 0xFF, 0x9D, 0xD9, 0xFF, 0x9C, 0x24, 0x34, 0xCC, 0x97, 0xF1, 0x2B, 0xCB, 0x30, 0x26, 0xBE, 0x2B, 0x19, 0x9E, 0xDF, 0x5C, 0x08, 0xDF, 0x74, 0x7F, 0x81, 0x64, 0x08, 0x97, 0x78, 0xAA, 0x1A, 0xC6, 0x69, 0x9D, 0xFD, 0x12, 0x60, 0x07, 0x18, 0xC6, 0x97, 0xC5, 0xF7, 0x3D, 0x2A, 0xF1, 0xBD, 0x32, 0xC3, 0xEB, 0xAF, 0x2D, 0xD1, 0xFF, 0x48, 0x86, 0xE2, 0xA7, 0xEB, 0xF8, 0x03, 0x95, 0xCF, 0x83, 0xF0, 0xBC, 0x95, 0xF8, 0x3C, 0xD8, 0xF0, 0x18, 0x70, 0x90, 0xF2, 0x59, 0xC3, 0x30, 0x5E, 0x5D, 0xF9, 0x3C, 0xC4, 0x30, 0xBE, 0x5C, 0xF9, 0xAC, 0xA9, 0x7C, 0xF6, 0x87, 0x0C, 0xF9, 0xA4, 0xB5, 0x82, 0x9A, 0xD8, 0xAF, 0x65, 0x52, 0xC7, 0xD8, 0xA1, 0x86, 0xEB, 0x47, 0xBF, 0x74, 0x8C, 0xD5, 0x8E, 0x7E, 0xEB, 0x98, 0xD4, 0x31, 0x56, 0x17, 0xFC, 0xBA, 0x2A, 0xDE, 0x7A, 0x86, 0xD7, 0x1A, 0xE4, 0x18, 0x6B, 0x60, 0x18, 0xA3, 0xFB, 0x0A, 0x74, 0x8C, 0x11, 0x7D, 0x18, 0xAD, 0xF5, 0x42, 0xF7, 0x30, 0xF8, 0x6D, 0xA8, 0xFC, 0x36, 0x02, 0xAF, 0x11, 0xFC, 0x36, 0xA1, 0xFB, 0xD5, 0xCA, 0x6F, 0x33, 0xF0, 0x9B, 0x29, 0xBF, 0x87, 0x1B, 0x5E, 0xD3, 0x10, 0xBF, 0x47, 0x18, 0xC6, 0xE4, 0xD8, 0x26, 0xBA, 0x31, 0xAD, 0xA9, 0x43, 0xB7, 0x31, 0xFC, 0x36, 0x57, 0x7E, 0x5B, 0x80, 0xD7, 0x02, 0x7E, 0x5B, 0x45, 0xBF, 0xAD, 0x95, 0xDF, 0x36, 0xE0, 0xB7, 0x51, 0x7E, 0x8F, 0x34, 0xBC, 0x76, 0x22, 0x7E, 0x8F, 0x32, 0x8C, 0x2D, 0xC7, 0x38, 0xDD, 0xD6, 0xA4, 0xC6, 0x69, 0xE2, 0x1D, 0x1D, 0x6D, 0x6D, 0x61, 0x87, 0xF6, 0x65, 0xFE, 0xDD, 0xCE, 0xF0, 0x1A, 0x94, 0xBE, 0x0E, 0x68, 0x6F, 0x18, 0x17, 0xDB, 0x1D, 0x0C, 0x63, 0xCB, 0x10, 0x8F, 0xD8, 0xA1, 0x5F, 0x99, 0x7F, 0x76, 0x34, 0x1C, 0x03, 0xC5, 0xD8, 0x01, 0xFE, 0xC8, 0x37, 0xE1, 0x2D, 0xE9, 0x3A, 0x1D, 0x3A, 0x2D, 0x55, 0x0E, 0xC7, 0xA0, 0xCD, 0x84, 0xEE, 0x8C, 0x9C, 0xA4, 0x7F, 0x75, 0x31, 0x2C, 0xD3, 0x59, 0xF5, 0xAF, 0xAE, 0x86, 0xF1, 0xEE, 0x38, 0xEE, 0x68, 0xBD, 0xA8, 0xAB, 0xB2, 0x71, 0xAC, 0x67, 0xF3, 0x38, 0xCF, 0x66, 0x77, 0xC3, 0x32, 0x84, 0x5F, 0x01, 0xEC, 0x78, 0xC3, 0xB8, 0xD8, 0xA4, 0x35, 0xA7, 0xE3, 0x95, 0x8D, 0x6C, 0x1C, 0x7F, 0x42, 0xF7, 0x34, 0xBC, 0x4E, 0x25, 0x36, 0x7B, 0x19, 0x96, 0xE9, 0xA9, 0xEA, 0xDA, 0x3B, 0x43, 0x5D, 0xFB, 0x18, 0xC6, 0x45, 0xAF, 0xAF, 0x61, 0xDD, 0x3E, 0xCA, 0x57, 0x3F, 0xF4, 0x27, 0x19, 0x93, 0x73, 0x0C, 0x63, 0xCB, 0xD4, 0xB9, 0xA7, 0xBF, 0x61, 0x5D, 0xE2, 0xC9, 0xF1, 0x39, 0xC0, 0x30, 0xBE, 0x55, 0xC9, 0x0D, 0x34, 0x8C, 0x17, 0x24, 0x52, 0xF5, 0x1B, 0x64, 0x18, 0x2F, 0x50, 0xC7, 0xF6, 0x09, 0x86, 0x71, 0x39, 0x97, 0xD1, 0x1A, 0xDB, 0x09, 0x2A, 0xA6, 0x21, 0x86, 0xAF, 0x65, 0xEE, 0x42, 0x7F, 0x38, 0xD1, 0x30, 0x96, 0x83, 0xBE, 0x36, 0x4C, 0xF5, 0x35, 0xE2, 0x0D, 0x8D, 0xB6, 0xE1, 0x68, 0xEF, 0xA1, 0xE8, 0xEF, 0x27, 0xE1, 0x5E, 0x0B, 0xF5, 0x9F, 0x61, 0xE0, 0x0D, 0x57, 0x3E, 0x4E, 0x81, 0x0F, 0x89, 0x69, 0x84, 0x61, 0x6C, 0xAB, 0x8A, 0x7D, 0xA4, 0x61, 0x5C, 0xAE, 0x25, 0xC9, 0xE6, 0x48, 0xCF, 0xE6, 0x30, 0x65, 0x73, 0x94, 0xE1, 0xF5, 0x40, 0xA9, 0xC7, 0x68, 0xC3, 0xD8, 0x56, 0x8C, 0x2D, 0x74, 0x4F, 0xFF, 0x54, 0x75, 0x5E, 0x2E, 0x50, 0x6D, 0x75, 0x9A, 0x61, 0x9E, 0xB4, 0xC3, 0xE9, 0x86, 0xF5, 0x4F, 0x53, 0xF6, 0xC7, 0x18, 0x5E, 0x8F, 0x14, 0xFB, 0x67, 0x18, 0x96, 0x1B, 0xA3, 0xB0, 0xB1, 0x86, 0xF1, 0xAD, 0x6A, 0x9E, 0x75, 0x26, 0xFA, 0xDA, 0x58, 0x65, 0x2B, 0xD7, 0xF0, 0x5A, 0xA7, 0xE8, 0x8D, 0x33, 0x2C, 0x97, 0x8B, 0xFA, 0xD1, 0x3A, 0xE7, 0x38, 0x25, 0x7F, 0x16, 0xEA, 0x25, 0xF2, 0xE3, 0x0D, 0x63, 0x39, 0xAA, 0x5E, 0x13, 0x0C, 0xE3, 0x05, 0x4A, 0x2E, 0xDF, 0x30, 0xAE, 0x6B, 0x30, 0x71, 0x3F, 0x35, 0x98, 0x64, 0x98, 0x27, 0x71, 0x17, 0x18, 0xD6, 0x9F, 0xA4, 0xE2, 0x28, 0xF4, 0x6A, 0x30, 0xD9, 0xB0, 0x5C, 0xA1, 0xC2, 0xA6, 0x18, 0xC6, 0x75, 0x0D, 0x8A, 0x50, 0x83, 0x29, 0xCA, 0x56, 0xB1, 0x57, 0x83, 0x12, 0xC3, 0x72, 0xC5, 0xA8, 0x01, 0xAD, 0xE5, 0x96, 0x28, 0xF9, 0xA9, 0x5E, 0x0D, 0xCE, 0x36, 0x8C, 0xE9, 0x3E, 0x53, 0x66, 0x18, 0xD7, 0x35, 0x28, 0x37, 0x8C, 0xEB, 0x1A, 0x54, 0xEC, 0xA7, 0x06, 0xD3, 0x0C, 0xF3, 0x24, 0xEE, 0xE9, 0x86, 0xF5, 0xA7, 0xA9, 0x38, 0x66, 0x78, 0x35, 0x98, 0x69, 0x58, 0x6E, 0x86, 0xC2, 0x66, 0x19, 0xC6, 0x75, 0x0D, 0xCE, 0x41, 0x0D, 0x66, 0x29, 0x5B, 0xE7, 0x7A, 0x35, 0x98, 0x6D, 0x58, 0xEE, 0x5C, 0xD4, 0x80, 0xD6, 0xAF, 0x67, 0x2B, 0xF9, 0xF3, 0xBD, 0x1A, 0xCC, 0x31, 0x8C, 0xE9, 0x63, 0x9E, 0xEE, 0xE9, 0xCE, 0xF1, 0x6A, 0x70, 0x81, 0x61, 0x5C, 0xD7, 0xE0, 0xC2, 0xFD, 0xD4, 0xE0, 0x22, 0xC3, 0x3C, 0x89, 0xFB, 0x62, 0xC3, 0xFA, 0x17, 0xA9, 0x38, 0xE6, 0x79, 0x35, 0x98, 0x6F, 0x58, 0x6E, 0x9E, 0xC2, 0x2E, 0x31, 0x8C, 0xEB, 0x1A, 0x5C, 0x8A, 0x1A, 0x5C, 0xA2, 0x6C, 0x5D, 0xE6, 0xD5, 0xE0, 0x72, 0xC3, 0x72, 0x97, 0xA1, 0x06, 0xB4, 0x66, 0x7F, 0xB9, 0x3A, 0xD7, 0x5E, 0x91, 0xE1, 0x5C, 0x7B, 0xA5, 0x61, 0x5C, 0xFC, 0x5C, 0x65, 0x18, 0xD3, 0xD7, 0x36, 0x0B, 0xBC, 0xB1, 0x61, 0xA1, 0x61, 0xB9, 0x05, 0x2A, 0x96, 0x6B, 0x0C, 0xDF, 0x63, 0x90, 0x6B, 0xC4, 0x6B, 0xF1, 0x8C, 0x41, 0x0E, 0x78, 0x72, 0x8D, 0x78, 0x9D, 0x61, 0x9E, 0xCC, 0x91, 0x97, 0x1A, 0x9E, 0x23, 0x2F, 0x34, 0x7C, 0x0D, 0x43, 0x34, 0xC9, 0xE8, 0x6B, 0x1D, 0x8A, 0xFD, 0xFA, 0x0C, 0xB1, 0x2F, 0x33, 0x8C, 0x4B, 0xEC, 0x37, 0x18, 0xC6, 0x74, 0xEC, 0x37, 0x7A, 0xB1, 0x2F, 0x37, 0x2C, 0x77, 0xA3, 0x8A, 0xFD, 0x26, 0xC3, 0xF7, 0x3F, 0x24, 0xF6, 0x9B, 0x55, 0xEC, 0x37, 0xA9, 0xD8, 0x57, 0x18, 0xE6, 0x49, 0xEC, 0xB7, 0x18, 0xBE, 0xFE, 0x5A, 0x8E, 0xD8, 0x89, 0x5E, 0x91, 0x21, 0xF6, 0x95, 0x19, 0x62, 0xBF, 0xD5, 0x30, 0x2E, 0xB1, 0xAF, 0x32, 0x8C, 0xE9, 0xD8, 0x6F, 0xF3, 0x62, 0x5F, 0x6D, 0x58, 0xEE, 0x36, 0x15, 0xFB, 0xED, 0x86, 0xEF, 0xD5, 0x48, 0xEC, 0x6B, 0x54, 0xEC, 0xB7, 0xAB, 0xD8, 0xEF, 0x30, 0xCC, 0x93, 0xD8, 0xEF, 0x34, 0x7C, 0x8D, 0xB9, 0x1A, 0xB1, 0x13, 0x7D, 0x47, 0x86, 0xD8, 0xEF, 0xCA, 0x10, 0xFB, 0xDD, 0x86, 0x71, 0x89, 0xFD, 0x1E, 0xC3, 0x98, 0x8E, 0x7D, 0xAD, 0x17, 0xFB, 0x3A, 0xC3, 0x72, 0x6B, 0x55, 0xEC, 0xF7, 0x1A, 0xBE, 0xAF, 0x24, 0xB1, 0xDF, 0xA7, 0x62, 0xBF, 0x57, 0xC5, 0xBE, 0xDE, 0x30, 0x4F, 0x62, 0xBF, 0xDF, 0xF0, 0x75, 0xF4, 0x3A, 0xC4, 0x4E, 0xF4, 0x7A, 0x93, 0x7E, 0xDD, 0xDB, 0x1A, 0xE3, 0x5C, 0x6B, 0xE5, 0xEF, 0x01, 0x2F, 0xA6, 0x0D, 0x86, 0x31, 0x19, 0xCF, 0x89, 0xB7, 0xC1, 0xA4, 0xCF, 0x35, 0x69, 0x3E, 0xF6, 0x5F, 0xD7, 0xBD, 0x12, 0xD3, 0x23, 0x26, 0xFD, 0x5A, 0x8F, 0x9E, 0x91, 0x79, 0xD4, 0x30, 0x9E, 0xE9, 0x5A, 0xEF, 0x61, 0xF0, 0x25, 0xB6, 0x27, 0x31, 0x9F, 0x21, 0x9A, 0x74, 0x9F, 0xC2, 0x3D, 0x36, 0xB2, 0x4F, 0xF7, 0x73, 0x9E, 0xC6, 0x3D, 0xB6, 0x27, 0x71, 0x6C, 0x3F, 0x0D, 0x19, 0xF1, 0xFF, 0x0C, 0xFA, 0xA2, 0xBE, 0xD6, 0xA4, 0xF7, 0xCE, 0x9E, 0xD9, 0x8F, 0x7F, 0xBA, 0x3F, 0xF7, 0xAC, 0xF2, 0xFF, 0x82, 0xF2, 0x4F, 0xBA, 0x2F, 0x1A, 0xBE, 0x87, 0x47, 0xF6, 0xE9, 0xDA, 0xF2, 0x25, 0xDC, 0xC3, 0x7B, 0x01, 0xFE, 0x89, 0x7E, 0x51, 0xF9, 0x7F, 0x05, 0xFD, 0x49, 0xFB, 0x7F, 0xD5, 0x30, 0x9E, 0xC9, 0x3F, 0xDD, 0xFF, 0x7B, 0x55, 0xF9, 0x7F, 0xCD, 0xF3, 0xBF, 0xD9, 0xF0, 0x3D, 0x42, 0xF1, 0xFF, 0x3A, 0xEE, 0x11, 0xBE, 0x06, 0xFF, 0x44, 0x6F, 0x56, 0xFE, 0xDF, 0x40, 0x9F, 0xD0, 0xFE, 0xDF, 0x34, 0x8C, 0x67, 0xF2, 0x4F, 0xF7, 0x17, 0xDF, 0x54, 0xFE, 0xB7, 0x7A, 0xFE, 0xDF, 0x36, 0x7C, 0x0F, 0x52, 0xFC, 0x6F, 0xC3, 0x3D, 0xC8, 0xAD, 0xF0, 0x4F, 0xF4, 0xDB, 0xE8, 0x2B, 0x4D, 0xD1, 0x57, 0x9A, 0x2A, 0x7B, 0xEF, 0xC0, 0x9E, 0xF4, 0xB5, 0x77, 0x0D, 0x63, 0xD2, 0xD7, 0x88, 0xF7, 0xAE, 0x49, 0xBF, 0x9E, 0x6A, 0x02, 0xDB, 0xEF, 0xA9, 0x6B, 0x9E, 0xF7, 0xC1, 0x7B, 0x1F, 0xD7, 0x3C, 0xDB, 0xA3, 0xDF, 0x0F, 0xD5, 0x35, 0xCF, 0x47, 0xE0, 0x7F, 0xA4, 0x7C, 0x7F, 0x6C, 0xF8, 0xFE, 0xA8, 0xD0, 0x3B, 0x0C, 0xDF, 0x6F, 0x96, 0xEB, 0x94, 0x4F, 0x0C, 0xCB, 0xEC, 0xC0, 0xB5, 0x07, 0xD1, 0x1F, 0x44, 0xDB, 0x76, 0xD8, 0xFA, 0x40, 0xE9, 0x7E, 0x65, 0xD2, 0xD7, 0x15, 0xBF, 0x86, 0x6D, 0x39, 0xF6, 0x77, 0x1B, 0xC6, 0xF4, 0xBA, 0xE2, 0x37, 0x86, 0xF5, 0x76, 0x2B, 0xB9, 0xEF, 0x0C, 0xE3, 0xDF, 0x2A, 0xEC, 0x07, 0xC3, 0xF8, 0xF7, 0xAA, 0x4E, 0x3F, 0x1A, 0xC6, 0x73, 0x94, 0xCF, 0x3D, 0xB8, 0x56, 0x11, 0x99, 0x9F, 0x0C, 0xCB, 0xED, 0xC1, 0x5A, 0x00, 0xAD, 0x0D, 0xFC, 0x6C, 0x18, 0x97, 0x73, 0xC9, 0x2F, 0x78, 0x26, 0x2C, 0x07, 0x3C, 0xB1, 0xF5, 0xAB, 0x97, 0xCF, 0x5E, 0x2F, 0x9F, 0xDF, 0x0C, 0x63, 0x3A, 0x9F, 0xDF, 0x0D, 0xEB, 0xFD, 0xA6, 0xE4, 0xFE, 0x30, 0x8C, 0xEB, 0x7C, 0xFE, 0x34, 0x8C, 0xEB, 0x7C, 0xFE, 0x32, 0x8C, 0xEB, 0x7C, 0xFE, 0xF6, 0xF2, 0xF9, 0xC7, 0xB0, 0xDC, 0xDF, 0x2A, 0x9F, 0x7F, 0x0D, 0xE3, 0x85, 0x78, 0x66, 0xCE, 0x04, 0x9C, 0xD3, 0x56, 0x3C, 0xBB, 0x96, 0x40, 0x3F, 0xFA, 0x1C, 0x3C, 0xB2, 0x4D, 0x72, 0x36, 0xE0, 0x7B, 0xE1, 0xD9, 0x78, 0x1F, 0xC9, 0x06, 0x6A, 0x7D, 0x24, 0x48, 0xCF, 0xBD, 0x72, 0x90, 0x9E, 0x7B, 0x95, 0x80, 0x31, 0x9D, 0x7B, 0xD5, 0x80, 0xF5, 0x88, 0x27, 0x72, 0x07, 0x04, 0x8C, 0xEB, 0xDC, 0x0F, 0x0C, 0x18, 0xD7, 0xB9, 0x57, 0x0B, 0x18, 0xAF, 0xAF, 0xD7, 0x4B, 0x82, 0xF4, 0xDC, 0x0F, 0x0E, 0x58, 0x8E, 0x70, 0xC9, 0xBD, 0x7A, 0xC0, 0xB8, 0xB4, 0x65, 0x8D, 0x20, 0xD5, 0x96, 0xD5, 0x55, 0x3E, 0x87, 0x78, 0xF9, 0xD4, 0xF4, 0xF2, 0xA9, 0x15, 0x30, 0xA6, 0xF3, 0x39, 0x34, 0x60, 0xBD, 0x5A, 0x2A, 0x9F, 0xC3, 0x02, 0xC6, 0x75, 0x3E, 0xB5, 0x03, 0xC6, 0x75, 0x3E, 0x75, 0x02, 0xC6, 0x75, 0x3E, 0x75, 0xBD, 0x7C, 0xEA, 0x05, 0x2C, 0x57, 0x57, 0xE5, 0x53, 0x3F, 0x60, 0xBC, 0x10, 0xCF, 0x1A, 0x36, 0x08, 0x38, 0x27, 0xBF, 0x2D, 0xB3, 0xC0, 0x23, 0xDB, 0x24, 0xD7, 0x08, 0xCF, 0x2D, 0x64, 0xE3, 0xFD, 0xB1, 0x46, 0x2A, 0xF7, 0x26, 0x5E, 0xEE, 0x4D, 0xBD, 0xDC, 0x9B, 0x05, 0x8C, 0xE9, 0xDC, 0x0F, 0x0F, 0x58, 0xAF, 0x99, 0xCA, 0xFD, 0x88, 0x80, 0x71, 0x9D, 0x7B, 0xF3, 0x80, 0x71, 0x9D, 0x7B, 0xCB, 0x80, 0xF1, 0x16, 0x2A, 0x86, 0x56, 0x5E, 0xEE, 0xAD, 0x03, 0x96, 0x6B, 0xA5, 0x72, 0x6F, 0x13, 0x30, 0x2E, 0x6D, 0x79, 0xA4, 0x6A, 0xCB, 0x36, 0xCA, 0xD6, 0x51, 0x5E, 0x3E, 0x47, 0x7B, 0xF9, 0xB4, 0x0D, 0x18, 0xD3, 0xF9, 0xB4, 0x0B, 0x58, 0xAF, 0xAD, 0xCA, 0xA7, 0x7D, 0xC0, 0xB8, 0xCE, 0xA7, 0x43, 0xC0, 0xB8, 0xCE, 0xA7, 0x63, 0xC0, 0xB8, 0xCE, 0xA7, 0x93, 0x97, 0xCF, 0x31, 0x01, 0xCB, 0x75, 0x52, 0xF9, 0x74, 0x0E, 0x18, 0x97, 0xB6, 0xEC, 0x12, 0x70, 0x4E, 0x7E, 0x5B, 0x36, 0x06, 0x4F, 0xDA, 0xB2, 0x1B, 0x9E, 0x31, 0xC9, 0xC6, 0xFB, 0x7E, 0xDD, 0xB0, 0x4F, 0xCF, 0x95, 0xC8, 0xB9, 0xFE, 0xB8, 0x80, 0xCF, 0xBF, 0xF4, 0x4B, 0xE7, 0xFA, 0xE3, 0x49, 0x3F, 0x48, 0x9D, 0xEB, 0xB3, 0xC1, 0xCF, 0x56, 0x31, 0xF7, 0x0C, 0xF8, 0xD9, 0x14, 0x39, 0xB7, 0xD3, 0xB3, 0x94, 0x84, 0xC9, 0xBA, 0x1A, 0xD1, 0xDD, 0xA3, 0xED, 0x78, 0xE8, 0x76, 0x57, 0xBA, 0xBD, 0xA1, 0x9B, 0x5C, 0x77, 0x09, 0xD2, 0xC7, 0x8D, 0xBE, 0xE0, 0xCB, 0x1C, 0xA4, 0x5F, 0xC0, 0x73, 0x90, 0xBE, 0x41, 0x6A, 0x9E, 0x92, 0x13, 0x30, 0x2E, 0xE7, 0x9F, 0xFE, 0x01, 0x3F, 0x7B, 0x23, 0x36, 0x06, 0x78, 0x3E, 0x06, 0xC2, 0x87, 0xAC, 0xA3, 0x0F, 0x0A, 0x78, 0x1D, 0x9D, 0xE4, 0x06, 0x06, 0xA9, 0xF5, 0xF6, 0x13, 0x02, 0xE6, 0x4D, 0xA9, 0x91, 0x15, 0xD3, 0x83, 0x03, 0xF6, 0x45, 0xF6, 0x4F, 0x08, 0x52, 0xFA, 0x43, 0xA0, 0x4F, 0xB9, 0xF4, 0x41, 0x4D, 0x09, 0x1B, 0xAC, 0x7C, 0x9E, 0xE8, 0xC5, 0x70, 0x92, 0x97, 0xE7, 0x50, 0x95, 0x27, 0x8D, 0xF5, 0xC3, 0x02, 0x9E, 0xEB, 0x0C, 0x0D, 0x52, 0xF3, 0x81, 0x93, 0x03, 0xC6, 0xA5, 0x3D, 0x87, 0xE3, 0x19, 0xA2, 0xE4, 0xBA, 0x8C, 0xE7, 0x63, 0x84, 0x97, 0xE7, 0x48, 0xC4, 0x49, 0x72, 0x23, 0x54, 0x9E, 0xA3, 0x02, 0xE6, 0x49, 0x9E, 0xA3, 0x03, 0xF6, 0x45, 0xF6, 0x47, 0xA9, 0x3C, 0x4F, 0x85, 0x3E, 0xE5, 0x72, 0x12, 0xF2, 0x24, 0x6C, 0xB4, 0xF2, 0x79, 0x9A, 0x17, 0xC3, 0xE9, 0x5E, 0x9E, 0x63, 0xBC, 0x3C, 0xCF, 0x08, 0x78, 0x4E, 0x35, 0x46, 0xE5, 0x39, 0x36, 0x60, 0x5C, 0xF2, 0x3C, 0x13, 0xCF, 0x42, 0x25, 0xD7, 0x5F, 0x3C, 0x1F, 0xE3, 0xBC, 0x3C, 0xF3, 0x10, 0x27, 0xC9, 0x8D, 0x53, 0x79, 0x9E, 0x15, 0x30, 0x4F, 0xF2, 0x1C, 0x1F, 0xB0, 0x2F, 0xB2, 0x7F, 0x96, 0xCA, 0x73, 0x02, 0xF4, 0x29, 0x97, 0xD3, 0x91, 0x27, 0x61, 0xE3, 0x95, 0xCF, 0x7C, 0x2F, 0x86, 0x89, 0x5E, 0x9E, 0x93, 0xBC, 0x3C, 0x0B, 0xD0, 0x9E, 0x93, 0x54, 0x9E, 0x85, 0x01, 0xE3, 0xD2, 0x6F, 0x27, 0x7B, 0xFD, 0x76, 0x8A, 0xE7, 0xA3, 0x48, 0xE5, 0x49, 0x36, 0x8B, 0x03, 0xBE, 0xD7, 0x42, 0x72, 0x45, 0xCA, 0x6E, 0x49, 0xC0, 0x3C, 0xCA, 0x93, 0xE8, 0xD2, 0x80, 0x7D, 0x91, 0xFD, 0x92, 0x20, 0xA5, 0x3F, 0x15, 0xFA, 0x94, 0xCB, 0x44, 0xE4, 0x49, 0x58, 0xA9, 0xF2, 0x79, 0xB6, 0x17, 0x43, 0x99, 0x97, 0x67, 0xB9, 0x97, 0x67, 0x05, 0xDA, 0xB3, 0x5C, 0xC5, 0x33, 0x2D, 0x60, 0x5C, 0xDA, 0x73, 0xBA, 0xD7, 0x6F, 0x67, 0x78, 0x3E, 0x66, 0x7A, 0x79, 0xCE, 0x42, 0x9C, 0x24, 0x37, 0x53, 0xD9, 0x3D, 0x27, 0x60, 0x9E, 0xE4, 0x79, 0x6E, 0xC0, 0xBE, 0xC8, 0xFE, 0x39, 0x2A, 0xCF, 0xD9, 0xD0, 0xA7, 0x5C, 0xCA, 0x90, 0x27, 0x61, 0xE7, 0x2A, 0x9F, 0xE7, 0x79, 0x31, 0x9C, 0xEF, 0xE5, 0x39, 0xC7, 0xCB, 0x73, 0x6E, 0xC0, 0x73, 0xF1, 0x39, 0x2A, 0x9E, 0x0B, 0x02, 0xC6, 0x25, 0xCF, 0x0B, 0xBD, 0x7E, 0x7B, 0x91, 0xE7, 0xE3, 0x62, 0x2F, 0xCF, 0x79, 0x88, 0x93, 0xE4, 0x2E, 0x56, 0x76, 0xE7, 0x07, 0xCC, 0x93, 0x3C, 0x2F, 0x09, 0xD8, 0x17, 0xD9, 0x9F, 0xAF, 0xF2, 0xBC, 0x14, 0xFA, 0x94, 0xCB, 0xF9, 0xC8, 0x93, 0x30, 0x92, 0xA7, 0x73, 0x77, 0x0F, 0x9C, 0x7F, 0x7B, 0xA8, 0x18, 0x2E, 0x43, 0x4C, 0xC9, 0xF5, 0x9B, 0x80, 0x31, 0xB9, 0x46, 0x20, 0xDE, 0xE5, 0x41, 0xFA, 0xD8, 0x70, 0x3C, 0xE8, 0x0F, 0x31, 0x57, 0xFF, 0x50, 0xD5, 0xE9, 0x0A, 0xE4, 0x24, 0xF6, 0xAE, 0x0C, 0x18, 0x13, 0x7B, 0xC4, 0xBB, 0x32, 0x48, 0xBF, 0xAE, 0xD8, 0x8E, 0x6B, 0x90, 0x3A, 0xA0, 0xEB, 0x28, 0x7B, 0x57, 0x79, 0xE3, 0xE1, 0x82, 0x80, 0xB1, 0xE5, 0x89, 0xD4, 0xBD, 0xA8, 0x05, 0x41, 0xFA, 0xBD, 0xA8, 0xDA, 0x98, 0x7B, 0x2E, 0x54, 0xE3, 0xDA, 0xD5, 0x88, 0xFD, 0x6A, 0x8C, 0x6B, 0x8B, 0xA3, 0xDF, 0x25, 0x6A, 0x5C, 0xBB, 0x06, 0xFC, 0x6B, 0x54, 0x6D, 0xAE, 0x0D, 0xF8, 0x19, 0x4B, 0x19, 0xD7, 0xAE, 0x0B, 0x18, 0x9B, 0x8A, 0x71, 0x8D, 0xE8, 0x45, 0xD1, 0xB6, 0x18, 0xBA, 0x8B, 0x50, 0xF3, 0xA5, 0xCA, 0xEF, 0xF5, 0xE0, 0x5D, 0x0F, 0xBF, 0x37, 0xD0, 0x73, 0x83, 0xCA, 0xEF, 0x72, 0xF0, 0x97, 0x2B, 0xBF, 0x37, 0x05, 0xFC, 0x2C, 0xA7, 0xF8, 0xBD, 0x39, 0x60, 0x4C, 0xC6, 0x53, 0xA2, 0x97, 0x45, 0xDB, 0x0D, 0xD0, 0x5D, 0x06, 0xBF, 0x2B, 0x94, 0xDF, 0x5B, 0xC0, 0xBB, 0x05, 0x7E, 0x6F, 0x8D, 0x7E, 0x57, 0x29, 0xBF, 0xB7, 0x81, 0x7F, 0x9B, 0xF2, 0xBB, 0x3A, 0xE0, 0x67, 0x46, 0xC5, 0xEF, 0xED, 0x01, 0x63, 0x72, 0x9F, 0xEA, 0x8E, 0x20, 0x75, 0xEF, 0x80, 0x78, 0x6B, 0xA2, 0xED, 0x0E, 0xD8, 0x59, 0x13, 0xA4, 0xD6, 0x6B, 0xEE, 0x0C, 0xF6, 0x5D, 0xAF, 0xB9, 0x2B, 0x60, 0x5C, 0x6C, 0xDF, 0x1D, 0x30, 0x26, 0xF7, 0xA9, 0xC4, 0x0E, 0xFD, 0xCA, 0x7D, 0xAA, 0x7B, 0x02, 0x8E, 0x81, 0x62, 0xBC, 0x1B, 0xFE, 0xE2, 0x67, 0x59, 0xA2, 0xDF, 0x95, 0xD1, 0x76, 0x2B, 0x74, 0x56, 0xAA, 0x1C, 0xD6, 0xA1, 0xCD, 0x92, 0xEB, 0x3B, 0xC8, 0x49, 0xFA, 0xCF, 0x7D, 0x01, 0xCB, 0x10, 0x2E, 0x6B, 0xAE, 0xEB, 0x03, 0xC6, 0xBF, 0x45, 0xBF, 0xA1, 0xE7, 0x64, 0xD7, 0x2B, 0x1B, 0x0F, 0x78, 0x36, 0x37, 0x78, 0x36, 0x1F, 0x0C, 0x58, 0x86, 0x70, 0xB9, 0x4F, 0xF5, 0x50, 0xC0, 0xB8, 0xD8, 0xA4, 0x67, 0x6D, 0x1F, 0x52, 0x36, 0x1E, 0x0E, 0xF8, 0x79, 0x5C, 0xA9, 0xC7, 0x23, 0x01, 0x63, 0x24, 0x4F, 0xB5, 0x7E, 0x4C, 0xD5, 0x9A, 0x78, 0x8F, 0x46, 0xDB, 0x63, 0xC8, 0xF7, 0x51, 0x65, 0xE7, 0xC9, 0x20, 0xFD, 0x7E, 0xD7, 0x53, 0xB0, 0x2B, 0xB1, 0x3D, 0x1D, 0xB0, 0xCC, 0x53, 0xAA, 0x7D, 0x36, 0x66, 0x68, 0x9F, 0x67, 0x02, 0xC6, 0x45, 0xEF, 0xD9, 0x80, 0x75, 0x9F, 0x51, 0xBE, 0xFE, 0x87, 0x7E, 0x29, 0x73, 0xDA, 0xE7, 0x02, 0xC6, 0xF4, 0xFD, 0xAE, 0xE7, 0x03, 0xD6, 0x25, 0x5E, 0x29, 0x9E, 0xC5, 0x7F, 0x21, 0x60, 0x3C, 0xF9, 0x4C, 0x4C, 0xC0, 0xEB, 0xE0, 0xC2, 0x7F, 0x29, 0x60, 0x6C, 0x18, 0xDE, 0x55, 0x7A, 0x39, 0x60, 0x1D, 0xC2, 0x2F, 0x00, 0xB6, 0x29, 0x60, 0xFC, 0x55, 0x9C, 0xEF, 0xE8, 0xFD, 0xA5, 0xCD, 0x41, 0x6A, 0x0D, 0x7C, 0x2B, 0x72, 0x21, 0xD9, 0xD7, 0xC1, 0x9B, 0x07, 0xDD, 0x2D, 0x01, 0xEB, 0xBF, 0x8E, 0xE3, 0x84, 0x9E, 0x73, 0xDE, 0xA2, 0xE2, 0x79, 0x23, 0xE0, 0x67, 0xA1, 0xA5, 0x2D, 0xDE, 0x0C, 0x18, 0x93, 0xB6, 0xD8, 0xAA, 0xDA, 0x82, 0x78, 0x6F, 0xD1, 0xF9, 0x0C, 0x6D, 0xF1, 0x96, 0xAA, 0xEB, 0xDB, 0x19, 0xEA, 0xBA, 0x2D, 0x60, 0x5C, 0x6A, 0xF6, 0x4E, 0xC0, 0x98, 0x5E, 0xA7, 0x7C, 0xD7, 0xEB, 0x4F, 0xEF, 0x05, 0x2C, 0xF7, 0x2E, 0x62, 0xA4, 0x77, 0xA5, 0x3E, 0xC4, 0xBB, 0x56, 0x44, 0xD3, 0x7B, 0x55, 0x9F, 0xE0, 0x9D, 0xAA, 0x51, 0x91, 0x0E, 0xBD, 0x4F, 0xF5, 0x19, 0x64, 0x3E, 0x09, 0x52, 0x75, 0xF8, 0x1C, 0xCF, 0x74, 0x9F, 0x9A, 0xA8, 0x1C, 0xBF, 0x33, 0xF5, 0x15, 0xE4, 0x08, 0xAF, 0x8A, 0xF7, 0xAE, 0xBE, 0x54, 0x75, 0xF8, 0x1A, 0x75, 0x38, 0x31, 0xFE, 0x92, 0x4C, 0x34, 0x07, 0x82, 0xCE, 0xD7, 0xA8, 0x1B, 0x3D, 0x0F, 0x4E, 0xD8, 0xB1, 0xE0, 0x7F, 0x0B, 0x3B, 0x84, 0x97, 0x63, 0x9D, 0xF4, 0xBB, 0x80, 0x71, 0x59, 0x13, 0xFB, 0x3E, 0xE0, 0x35, 0xC9, 0xF7, 0x02, 0x5E, 0x27, 0x25, 0x9A, 0x64, 0xFC, 0x35, 0xDE, 0x1F, 0x32, 0xD4, 0xEE, 0xC7, 0x80, 0x71, 0xA9, 0xDD, 0x9E, 0x80, 0x31, 0x5D, 0xBB, 0x9F, 0xBC, 0xDA, 0xFD, 0x1C, 0xB0, 0xDC, 0x4F, 0xAA, 0x76, 0xBF, 0x78, 0xB5, 0xFB, 0xD5, 0xAB, 0xDD, 0x5E, 0xC8, 0xFC, 0xAA, 0x6A, 0xF7, 0x9B, 0x57, 0xBB, 0x3F, 0x20, 0xF7, 0x9B, 0xAA, 0xDD, 0xEF, 0xAA, 0x76, 0x7F, 0x7A, 0xB5, 0xFB, 0x1B, 0x3A, 0x7F, 0xA2, 0x76, 0xF4, 0xEC, 0xFC, 0xDF, 0xAA, 0x76, 0xFF, 0xC0, 0xCE, 0x5F, 0xAA, 0x76, 0xFF, 0x06, 0x8C, 0x4B, 0xED, 0xE8, 0xA5, 0x94, 0x67, 0x90, 0x13, 0xD5, 0x8E, 0xE8, 0x7F, 0x33, 0xD4, 0xCE, 0xD8, 0x7D, 0x6B, 0x17, 0x58, 0xC6, 0xA5, 0x76, 0xD6, 0x32, 0xA6, 0x6B, 0xE7, 0x6C, 0x7A, 0xED, 0x42, 0xCB, 0x72, 0x84, 0x4B, 0xED, 0xB2, 0x6C, 0x7A, 0xED, 0x2A, 0xD9, 0xF4, 0xDA, 0x55, 0xB6, 0x2C, 0x53, 0xC9, 0xA6, 0x6A, 0x57, 0xC5, 0xA6, 0xD7, 0xEE, 0x00, 0xCB, 0x72, 0x84, 0x4B, 0xED, 0xAA, 0xDA, 0x54, 0x1C, 0x07, 0xDA, 0xF4, 0xDA, 0x1D, 0x64, 0x59, 0x87, 0xF0, 0xF8, 0xD9, 0x13, 0xCB, 0x98, 0xD4, 0xEE, 0x60, 0xD8, 0x21, 0x5C, 0x6A, 0x57, 0xDD, 0x32, 0x2E, 0xB5, 0xAB, 0x61, 0x79, 0x2D, 0x38, 0xB4, 0x5C, 0x3B, 0xA2, 0x49, 0xC6, 0xAF, 0xDD, 0x21, 0x19, 0x6A, 0x57, 0xD3, 0x32, 0x9E, 0x5C, 0xC3, 0xB1, 0x8C, 0xE9, 0xDA, 0x1D, 0xEA, 0xD5, 0xEE, 0x30, 0xCB, 0x72, 0x87, 0xAA, 0xDA, 0xD5, 0xF6, 0x6A, 0x57, 0xC7, 0xAB, 0x5D, 0x5D, 0xCB, 0x32, 0x75, 0x54, 0xED, 0xEA, 0x79, 0xB5, 0x6B, 0x60, 0x59, 0xAE, 0x9E, 0xAA, 0x5D, 0x7D, 0x55, 0xBB, 0x86, 0x5E, 0xED, 0x1A, 0x5B, 0xD6, 0x69, 0x88, 0xDA, 0xD1, 0x3B, 0x19, 0x8D, 0x55, 0xED, 0x9A, 0xC0, 0x4E, 0x23, 0x55, 0xBB, 0xA6, 0x96, 0x71, 0xA9, 0x5D, 0x33, 0xCB, 0xEB, 0xD8, 0x87, 0xA1, 0x76, 0x44, 0x37, 0xB5, 0xE9, 0xF7, 0x36, 0xE4, 0xFC, 0xB7, 0x15, 0x73, 0x2F, 0x19, 0x9B, 0x1E, 0x03, 0xBD, 0x0A, 0xF4, 0x2A, 0x75, 0x8C, 0x1C, 0xEE, 0xD5, 0xEC, 0x08, 0xCB, 0x98, 0xCC, 0x0D, 0x89, 0x47, 0x98, 0x9E, 0xBF, 0xD0, 0x18, 0xFF, 0xFF, 0xB9, 0xF7, 0xD1, 0xC2, 0xEE, 0x7B, 0xEF, 0xA3, 0xA5, 0x65, 0x3C, 0xD3, 0xDA, 0x3B, 0xBD, 0x9B, 0xD2, 0x52, 0xD5, 0xB1, 0xB5, 0xE5, 0xB1, 0x4D, 0xD6, 0x14, 0xDA, 0x58, 0x7E, 0x7F, 0x45, 0xD6, 0x1D, 0x8E, 0xB4, 0xFC, 0xFE, 0x4A, 0x6B, 0xD4, 0x95, 0xE8, 0x36, 0xAA, 0x66, 0x47, 0xDB, 0x7D, 0xEF, 0x7D, 0xB4, 0xB5, 0x8C, 0x67, 0xF2, 0x4F, 0xEF, 0xBE, 0xB4, 0x55, 0xFE, 0xDB, 0x2B, 0xFF, 0xA4, 0xDB, 0xC1, 0xF2, 0xFB, 0x31, 0x72, 0xBD, 0xD1, 0xD1, 0xF2, 0xFB, 0x31, 0xED, 0xE1, 0x9F, 0xE8, 0x0E, 0xCA, 0xFF, 0x31, 0x76, 0xDF, 0x7B, 0x1F, 0x9D, 0x2D, 0xE3, 0x99, 0xFC, 0xD3, 0xBB, 0x35, 0x9D, 0x95, 0xFF, 0xAE, 0x9E, 0xFF, 0x6E, 0x96, 0xDF, 0xBF, 0x11, 0xFF, 0xC7, 0x5A, 0x7E, 0xFF, 0xA6, 0x2B, 0xFC, 0x13, 0xDD, 0x4D, 0xF9, 0xEF, 0x6E, 0xF7, 0xBD, 0xF7, 0x71, 0xBC, 0x65, 0x3C, 0x93, 0x7F, 0x7A, 0x77, 0xE7, 0x78, 0xE5, 0x3F, 0xDB, 0xF3, 0xDF, 0xD3, 0xF2, 0xFB, 0x3D, 0xE2, 0xBF, 0x97, 0xE5, 0xF7, 0x7B, 0xB2, 0xE1, 0x9F, 0xE8, 0x9E, 0xE8, 0x2B, 0x37, 0xA2, 0xAF, 0xDC, 0xA8, 0xD7, 0x95, 0x60, 0x4F, 0xFA, 0x5A, 0x1F, 0xCB, 0x98, 0xF4, 0x35, 0xE2, 0xF5, 0xB1, 0xE9, 0x73, 0xF4, 0x1B, 0x70, 0xAE, 0xEE, 0x6B, 0x53, 0xF3, 0xE8, 0x7E, 0x96, 0x79, 0xF4, 0x4B, 0xF3, 0xE8, 0xFE, 0xD1, 0xEF, 0x00, 0x9B, 0x9A, 0x47, 0x0F, 0x04, 0x7F, 0xA0, 0xCA, 0x65, 0x90, 0xE5, 0x77, 0x8F, 0x64, 0x3E, 0x71, 0x82, 0x65, 0x4C, 0x9E, 0x8F, 0x27, 0x3A, 0x87, 0x68, 0xE8, 0xE6, 0x28, 0xDD, 0x21, 0x36, 0x7D, 0x0D, 0xF2, 0x44, 0xD8, 0x92, 0x73, 0xD1, 0x49, 0x96, 0x31, 0xBD, 0x06, 0x39, 0xD4, 0xB2, 0xDE, 0x49, 0x4A, 0x6E, 0x98, 0x65, 0x5C, 0xAF, 0x41, 0x9E, 0x6C, 0x19, 0xD7, 0x6B, 0x90, 0xC3, 0x2D, 0xE3, 0x39, 0xCA, 0xDE, 0x08, 0xCB, 0xF8, 0x29, 0x2A, 0xAE, 0x91, 0x96, 0xE7, 0xC0, 0x22, 0x33, 0xCA, 0xB2, 0x1C, 0xE1, 0xB2, 0x2E, 0x39, 0xDA, 0x32, 0x2E, 0xEB, 0xAC, 0xA7, 0xDA, 0xD4, 0x3A, 0xEB, 0x68, 0x65, 0xEB, 0x34, 0x2F, 0xC7, 0xD3, 0xBD, 0x1C, 0xC7, 0x58, 0xC6, 0x74, 0x8E, 0x67, 0x58, 0xD6, 0x1B, 0xA3, 0xE4, 0xC6, 0x5A, 0xC6, 0x75, 0x8E, 0x67, 0x5A, 0xC6, 0x75, 0x8E, 0xB9, 0x96, 0x71, 0x9D, 0xE3, 0x38, 0xCB, 0xB8, 0xCE, 0x31, 0xCF, 0xCB, 0xF1, 0x2C, 0xCB, 0x72, 0x79, 0x2A, 0xC7, 0xF1, 0x96, 0x71, 0xB9, 0x27, 0x32, 0xC1, 0x72, 0x9E, 0xFE, 0xDA, 0x2B, 0xBD, 0x6B, 0x36, 0xC1, 0xA6, 0xD6, 0x76, 0x26, 0x5A, 0x7E, 0xFF, 0x2C, 0x1B, 0xDF, 0x02, 0x9B, 0xA8, 0xFC, 0x16, 0x78, 0xF5, 0x28, 0xF4, 0xEA, 0x31, 0xD9, 0x32, 0xA6, 0xEB, 0x31, 0xC5, 0x42, 0x4F, 0xC9, 0x15, 0x59, 0xC6, 0x75, 0x3D, 0x8A, 0x2D, 0xE3, 0xBA, 0x1E, 0x25, 0x96, 0x71, 0x3D, 0x6F, 0x2F, 0xB5, 0x8C, 0xEB, 0x7A, 0x4C, 0xF5, 0xEA, 0x71, 0xB6, 0x65, 0xB9, 0xA9, 0xAA, 0x1E, 0x65, 0x96, 0x71, 0x69, 0xF3, 0x72, 0xD5, 0xE6, 0x65, 0xCA, 0x56, 0x85, 0x97, 0xE3, 0x34, 0x2F, 0xC7, 0xE9, 0x96, 0x31, 0x9D, 0xE3, 0x0C, 0xCB, 0x7A, 0xD3, 0x95, 0xDC, 0x4C, 0xCB, 0xB8, 0xCE, 0x71, 0x96, 0x65, 0x5C, 0xE7, 0x78, 0x8E, 0x65, 0x5C, 0xE7, 0x78, 0xAE, 0x65, 0x5C, 0xE7, 0x38, 0xDB, 0xCB, 0xF1, 0x3C, 0xCB, 0x72, 0xB3, 0x55, 0x8E, 0xE7, 0x5B, 0xC6, 0x65, 0xBD, 0x7D, 0x8E, 0xE5, 0x3C, 0xFD, 0x36, 0xA7, 0xF7, 0x07, 0xE7, 0xD8, 0xD4, 0xFA, 0xCF, 0x05, 0x96, 0xDF, 0x29, 0xCC, 0xC6, 0x37, 0xDE, 0x2E, 0x50, 0x7E, 0x2F, 0xF2, 0xEA, 0x71, 0xB1, 0x57, 0x8F, 0x79, 0x96, 0x31, 0x5D, 0x8F, 0xF9, 0x96, 0xF5, 0xE6, 0x29, 0xB9, 0x4B, 0x2C, 0xE3, 0xBA, 0x1E, 0x97, 0x5A, 0xC6, 0x75, 0x3D, 0x2E, 0xB3, 0x8C, 0xE7, 0x2A, 0x7B, 0x97, 0x5B, 0xC6, 0x75, 0x3D, 0xAE, 0xF0, 0xEA, 0x71, 0xA5, 0x65, 0xB9, 0x2B, 0x54, 0x3D, 0xAE, 0xB2, 0x8C, 0x4B, 0x9B, 0x2F, 0x50, 0x6D, 0x7E, 0x95, 0xB2, 0xB5, 0xD0, 0xCB, 0xF1, 0x6A, 0x2F, 0xC7, 0x45, 0x96, 0x31, 0x9D, 0xE3, 0x62, 0xCB, 0x7A, 0x8B, 0x94, 0xDC, 0x12, 0xCB, 0xB8, 0xCE, 0xF1, 0x1A, 0xCB, 0xB8, 0xCE, 0xF1, 0x5A, 0xCB, 0xB8, 0xCE, 0xF1, 0x3A, 0xCB, 0xB8, 0xCE, 0x71, 0xA9, 0x97, 0xE3, 0xF5, 0x96, 0xE5, 0x96, 0xAA, 0x1C, 0x97, 0x59, 0xC6, 0xA5, 0xCD, 0x6F, 0xB0, 0x9C, 0xA7, 0xDF, 0xE6, 0xF4, 0x4E, 0xE8, 0x0D, 0xAA, 0xCD, 0x97, 0x5B, 0x7E, 0x4F, 0x34, 0x1B, 0xDF, 0xEE, 0x5B, 0x8E, 0xFD, 0x9B, 0xD4, 0x98, 0x72, 0x33, 0xCE, 0xFB, 0x37, 0x63, 0x4C, 0xB9, 0x25, 0xFA, 0x5D, 0xA9, 0xC6, 0x94, 0x5B, 0xC1, 0xBF, 0x55, 0xC5, 0xBC, 0xCA, 0xF2, 0xFB, 0xA5, 0x32, 0xA6, 0xDC, 0x66, 0x19, 0x93, 0x35, 0x21, 0xA2, 0x57, 0x44, 0xDB, 0x2D, 0xD0, 0x5D, 0xA1, 0x74, 0x57, 0x43, 0x37, 0xF9, 0xBC, 0x0E, 0xDA, 0x41, 0xE8, 0x35, 0xE0, 0xCB, 0x5C, 0xE7, 0x0E, 0xCC, 0x75, 0xD6, 0xD8, 0xD4, 0x7C, 0xE8, 0x4E, 0xCB, 0xB8, 0x9C, 0xCF, 0xEE, 0xB2, 0xFC, 0xFE, 0x6C, 0xF2, 0x79, 0x1C, 0xCF, 0xC7, 0x3D, 0xF0, 0x21, 0x6B, 0xEA, 0x6B, 0x2D, 0xAF, 0xA9, 0x93, 0xDC, 0x3D, 0x36, 0xB5, 0x26, 0xBF, 0xCE, 0x32, 0x4F, 0xD6, 0xE4, 0xEF, 0xB5, 0xEC, 0x8B, 0xEC, 0xAF, 0x53, 0xFA, 0xF7, 0x41, 0x9F, 0x72, 0xB9, 0x1D, 0x35, 0x25, 0xEC, 0x5E, 0xE5, 0x73, 0xBD, 0x17, 0xC3, 0xFD, 0x5E, 0x9E, 0x0F, 0xA8, 0x3C, 0x69, 0x4E, 0xB1, 0x01, 0x73, 0xAA, 0x07, 0x6C, 0x6A, 0xDE, 0xF1, 0xA0, 0x65, 0x5C, 0xDA, 0xF3, 0x21, 0xCB, 0xEF, 0x01, 0x27, 0xD7, 0x6D, 0x3C, 0x1F, 0x8F, 0x78, 0x79, 0x3E, 0x8A, 0x38, 0x49, 0xEE, 0x11, 0x95, 0xE7, 0x63, 0x96, 0x79, 0x92, 0xE7, 0xE3, 0x96, 0x7D, 0x91, 0xFD, 0xC7, 0x94, 0xFE, 0x13, 0xD0, 0xA7, 0x5C, 0xEE, 0x47, 0x9E, 0x84, 0x3D, 0xAE, 0x7C, 0x3E, 0xE9, 0xC5, 0xF0, 0x94, 0x97, 0xE7, 0xD3, 0x5E, 0x9E, 0x1B, 0x31, 0x77, 0x7B, 0x5A, 0xE5, 0xF9, 0x8C, 0x65, 0x5C, 0xF2, 0x7C, 0xD6, 0xF2, 0xFB, 0xCC, 0xC9, 0xB5, 0x1E, 0xCF, 0xC7, 0x73, 0x5E, 0x9E, 0xCF, 0x23, 0x4E, 0x92, 0x7B, 0x4E, 0xE5, 0xF9, 0x82, 0x65, 0x9E, 0xE4, 0xF9, 0xA2, 0x65, 0x5F, 0x64, 0xFF, 0x05, 0xA5, 0xFF, 0x12, 0xF4, 0x29, 0x97, 0xA7, 0x90, 0x27, 0x61, 0x2F, 0x2A, 0x9F, 0x2F, 0x7B, 0x31, 0xBC, 0xE2, 0xE5, 0xF9, 0xAA, 0x97, 0xE7, 0x26, 0xB4, 0xE7, 0xAB, 0x2A, 0xCF, 0xD7, 0x2C, 0xE3, 0xD2, 0x6F, 0x37, 0x7B, 0xFD, 0xF6, 0x75, 0xCF, 0xC7, 0x16, 0x95, 0x27, 0xD9, 0x7C, 0xC3, 0xF2, 0x9A, 0x3A, 0xC9, 0x6D, 0x51, 0x76, 0xDF, 0xB4, 0xCC, 0x93, 0x35, 0xF9, 0xB7, 0x2C, 0xFB, 0x22, 0xFB, 0x6F, 0x2A, 0xFD, 0xAD, 0xD0, 0xA7, 0x5C, 0x5E, 0x41, 0x9E, 0x84, 0xBD, 0xA5, 0x7C, 0xBE, 0xED, 0xC5, 0xB0, 0xCD, 0xCB, 0xF3, 0x1D, 0x2F, 0xCF, 0x77, 0xD1, 0x9E, 0xEF, 0xA8, 0x78, 0xDE, 0xB3, 0x8C, 0x4B, 0x7B, 0xBE, 0xEF, 0xF5, 0xDB, 0x0F, 0x3C, 0x1F, 0xDB, 0xBD, 0x3C, 0x3F, 0x44, 0x9C, 0x24, 0xB7, 0x5D, 0xD9, 0xFD, 0xC8, 0x32, 0x4F, 0xF2, 0xFC, 0xD8, 0xB2, 0x2F, 0xB2, 0xFF, 0x91, 0xD2, 0xDF, 0x01, 0x7D, 0xCA, 0x65, 0x1B, 0xF2, 0x24, 0xEC, 0x63, 0xE5, 0xF3, 0x13, 0x2F, 0x86, 0x4F, 0xBD, 0x3C, 0x3F, 0xF3, 0xF2, 0xFC, 0x1C, 0x73, 0xFE, 0xCF, 0x54, 0x3C, 0x5F, 0x58, 0xE0, 0xC8, 0x73, 0xA7, 0xD7, 0x6F, 0xBF, 0xF4, 0x7C, 0xEC, 0xF2, 0xF2, 0xFC, 0x0A, 0x71, 0x92, 0xDC, 0x2E, 0x65, 0xF7, 0x6B, 0xCB, 0x3C, 0xC9, 0x73, 0xB7, 0x65, 0x5F, 0x64, 0xFF, 0x6B, 0xA5, 0xFF, 0x0D, 0xF4, 0x29, 0x97, 0x4F, 0x91, 0x27, 0x61, 0xBB, 0x71, 0x2D, 0xB1, 0x12, 0xE7, 0xDF, 0x95, 0x2A, 0x86, 0x6F, 0x11, 0x93, 0x8C, 0x37, 0xDF, 0x59, 0xC6, 0xE4, 0x5A, 0x84, 0x78, 0xDF, 0xD9, 0xF4, 0xB1, 0xE1, 0x16, 0xD0, 0x03, 0x40, 0x0F, 0x50, 0xF6, 0xBE, 0x47, 0x4E, 0x62, 0xEF, 0x07, 0xCB, 0x98, 0xD8, 0x23, 0xDE, 0x0F, 0x36, 0xFD, 0xFA, 0xA5, 0x3F, 0xE8, 0x25, 0xB8, 0xD6, 0x59, 0xA2, 0xAE, 0x95, 0x7E, 0xF4, 0xC6, 0xC3, 0x3D, 0x96, 0x31, 0xB9, 0xC7, 0x42, 0xBC, 0x3D, 0x36, 0xFD, 0x3E, 0xCA, 0x62, 0x5C, 0x2B, 0xFD, 0xA4, 0xC6, 0xB5, 0x9F, 0xE1, 0xEB, 0x67, 0x8C, 0x6B, 0xBF, 0x46, 0xBF, 0x7B, 0xD5, 0xB8, 0xF6, 0x1B, 0xF8, 0xBF, 0xA9, 0x5C, 0x7E, 0xB7, 0xFC, 0x9D, 0x04, 0xA1, 0xFF, 0xB0, 0xFC, 0x9D, 0x12, 0x19, 0xE7, 0xFE, 0xB4, 0x2C, 0xF3, 0x87, 0xE5, 0x71, 0x8E, 0xE8, 0x5F, 0xC8, 0x3E, 0x6C, 0xFD, 0x82, 0x36, 0xF8, 0x4B, 0xC5, 0xF1, 0x37, 0x78, 0x7F, 0x23, 0x0E, 0xFA, 0x66, 0x8F, 0x7C, 0xE8, 0x85, 0xF8, 0xC6, 0x31, 0x9F, 0x7E, 0x93, 0xEB, 0x65, 0x8E, 0xBF, 0xCF, 0x20, 0xB4, 0x75, 0xE9, 0xCF, 0xAB, 0x39, 0xC7, 0x32, 0x84, 0x53, 0x1C, 0x44, 0xFF, 0x63, 0xF9, 0x7B, 0x40, 0x64, 0xEB, 0x1F, 0xC4, 0x41, 0xDF, 0x74, 0x90, 0x38, 0xB2, 0xE0, 0x87, 0x7E, 0x29, 0x8E, 0xCA, 0xD1, 0x6F, 0x15, 0x15, 0x47, 0x55, 0xF0, 0xAB, 0xAA, 0x38, 0x0E, 0x70, 0xFC, 0x5D, 0x88, 0xA2, 0x1A, 0x3C, 0x0F, 0x39, 0xD0, 0xF1, 0xB7, 0xE2, 0xE4, 0x7D, 0xB3, 0x6A, 0x8E, 0x31, 0x89, 0xEB, 0x20, 0xC7, 0x3A, 0xD5, 0x10, 0x17, 0xD1, 0x95, 0xA2, 0xAD, 0x32, 0x6C, 0x57, 0x52, 0xB6, 0x0F, 0x76, 0xE9, 0xB5, 0xAE, 0xEE, 0xE5, 0x5C, 0x03, 0xBE, 0x93, 0xCF, 0x36, 0x79, 0xF2, 0x35, 0x3D, 0xF9, 0x5A, 0x90, 0xA7, 0xF7, 0xE6, 0xE8, 0xBB, 0x59, 0x87, 0x39, 0x3E, 0xA7, 0x93, 0x1E, 0xC9, 0xD6, 0x72, 0xA9, 0xE7, 0x67, 0x6B, 0x83, 0x4F, 0xEF, 0x99, 0x11, 0x5D, 0xC7, 0xF1, 0x7B, 0x66, 0xAD, 0xC0, 0xBB, 0x23, 0x91, 0xB2, 0x53, 0x17, 0x76, 0x28, 0x5E, 0x8A, 0x91, 0xE2, 0xA2, 0xDA, 0x12, 0x5E, 0x47, 0xC5, 0x57, 0xCF, 0x8B, 0xAF, 0xBE, 0x17, 0x5F, 0x03, 0x2F, 0x9F, 0x86, 0x9E, 0x7C, 0x23, 0x4F, 0xBE, 0xB1, 0x97, 0x4F, 0x13, 0xC7, 0xC7, 0x3A, 0xE9, 0x91, 0x6C, 0x63, 0x95, 0x4F, 0x53, 0xF0, 0x25, 0x9F, 0x66, 0x2A, 0x9F, 0xA6, 0x5E, 0x3E, 0x87, 0xC3, 0x0E, 0xC5, 0x4B, 0x31, 0x36, 0x40, 0x3E, 0x84, 0x93, 0x1E, 0xF5, 0x85, 0x2A, 0x68, 0xAF, 0x2A, 0x2A, 0xDE, 0x23, 0x10, 0x8F, 0x1C, 0x97, 0xCD, 0x1D, 0x63, 0x72, 0x9C, 0x13, 0xAF, 0xB9, 0x4B, 0xEF, 0x6B, 0x95, 0x95, 0x7E, 0x0B, 0x2F, 0xDF, 0x96, 0xC8, 0x57, 0xC6, 0xE0, 0x56, 0xA8, 0x33, 0xC9, 0xB5, 0x74, 0xA9, 0x31, 0xBC, 0xB5, 0x63, 0x9E, 0xE8, 0xB5, 0x75, 0xE9, 0xEF, 0x2D, 0xB4, 0x73, 0x8C, 0xE9, 0xEB, 0xE9, 0xF6, 0x8E, 0x71, 0xFD, 0x8E, 0x42, 0x07, 0x97, 0xBA, 0x3F, 0xD3, 0x5F, 0x5D, 0x07, 0x74, 0x74, 0xCC, 0x93, 0xB9, 0x7C, 0x27, 0xC7, 0xFA, 0x1D, 0x95, 0xCF, 0x63, 0x1C, 0xDF, 0xD7, 0x12, 0xFB, 0x9D, 0x1D, 0xCB, 0x1D, 0xA3, 0x64, 0xBA, 0x20, 0x3F, 0xB1, 0xD3, 0xD5, 0x31, 0xA6, 0xAF, 0xF9, 0xBA, 0x39, 0xD6, 0xED, 0xAA, 0xEA, 0x78, 0xAC, 0x63, 0x5C, 0xBF, 0xDB, 0x70, 0x9C, 0xE3, 0x77, 0x1B, 0x8E, 0x55, 0xF6, 0xBB, 0x3B, 0xBE, 0x7E, 0x11, 0xBD, 0xE3, 0x1D, 0xE4, 0x94, 0x4C, 0x0F, 0xD4, 0x54, 0xEC, 0x64, 0x3B, 0xC6, 0xF4, 0x35, 0x4D, 0x4F, 0xC7, 0xBA, 0xC4, 0x93, 0xEB, 0x8B, 0x5E, 0x8E, 0x71, 0xB9, 0x86, 0xEA, 0x8D, 0xEF, 0xC7, 0xE5, 0x80, 0x97, 0x7C, 0x1E, 0xCA, 0xAB, 0x7D, 0x5F, 0xC7, 0x98, 0xAE, 0x7D, 0x3F, 0xC7, 0xB8, 0xAE, 0x7D, 0xCE, 0x7E, 0x6A, 0xDF, 0xDF, 0x31, 0x4F, 0xE2, 0x1D, 0xE0, 0x58, 0xBF, 0xBF, 0xF2, 0x39, 0xD0, 0xAB, 0xFD, 0x20, 0xC7, 0x72, 0x03, 0x95, 0xCC, 0x09, 0x5E, 0xED, 0x07, 0x3B, 0xC6, 0x74, 0xED, 0x87, 0x38, 0xD6, 0x1D, 0xAC, 0x6A, 0x7F, 0xA2, 0x63, 0x5C, 0xD7, 0xFE, 0x24, 0xD4, 0xFE, 0x44, 0x65, 0x7F, 0xA8, 0x57, 0xFB, 0x61, 0x8E, 0xE5, 0x86, 0x2A, 0x99, 0x93, 0xBD, 0xDA, 0x0F, 0x77, 0x8C, 0xE9, 0xDA, 0x9F, 0xE2, 0x58, 0x77, 0xB8, 0xAA, 0xFD, 0x08, 0xC7, 0xF8, 0xE4, 0x68, 0xAC, 0xA7, 0xBA, 0xB7, 0x46, 0x3D, 0x47, 0xE2, 0xDC, 0x9C, 0x7C, 0x27, 0xCD, 0xAB, 0xFD, 0x68, 0xC7, 0xD8, 0x56, 0xF5, 0xAE, 0xF0, 0xA9, 0xAA, 0xCE, 0xCB, 0xBD, 0x6F, 0x85, 0x9C, 0xE6, 0x98, 0x2F, 0xE7, 0xEE, 0xD3, 0x1D, 0x63, 0x72, 0xEE, 0x1E, 0xE3, 0xD8, 0x26, 0xE1, 0x74, 0x9F, 0x71, 0xAC, 0x4B, 0xDD, 0x67, 0x24, 0xDE, 0x19, 0xD1, 0x36, 0x16, 0xC7, 0xF5, 0x19, 0x2A, 0xEF, 0x33, 0xBD, 0xE3, 0x3A, 0x57, 0x1D, 0xD7, 0x34, 0x47, 0x19, 0x87, 0xF3, 0x0D, 0xC9, 0xE5, 0xBA, 0xD4, 0x1C, 0x27, 0xCF, 0x31, 0x2F, 0xF9, 0x5E, 0x9A, 0x97, 0xDF, 0x78, 0xC7, 0x98, 0x7E, 0x2F, 0x71, 0x82, 0x63, 0x5C, 0xF7, 0xAD, 0xFC, 0xFD, 0xF4, 0xAD, 0x89, 0x8E, 0x79, 0xD2, 0x1E, 0x93, 0x1C, 0xEB, 0x4F, 0x54, 0x3E, 0x0B, 0xBC, 0xBE, 0x55, 0xE8, 0x58, 0xAE, 0x40, 0xC9, 0x4C, 0xF6, 0xFA, 0xD6, 0x14, 0xC7, 0x98, 0xEE, 0x5B, 0x45, 0x8E, 0x75, 0xA7, 0xA8, 0xBE, 0x55, 0xEC, 0x18, 0xD7, 0x7D, 0xAB, 0x04, 0x7D, 0xAB, 0x58, 0xD9, 0x2F, 0xF5, 0xFA, 0xD6, 0x54, 0xC7, 0x72, 0xA5, 0x4A, 0xE6, 0x6C, 0xAF, 0x6F, 0x95, 0x39, 0xC6, 0x74, 0xDF, 0x2A, 0x77, 0xAC, 0x5B, 0xA6, 0xFA, 0x56, 0x85, 0x63, 0x5C, 0x8E, 0xEB, 0x69, 0xEA, 0xB8, 0xAE, 0x50, 0xF6, 0xA7, 0x7B, 0xB5, 0x9F, 0xE1, 0x18, 0xD3, 0xB5, 0x9F, 0xE9, 0x18, 0xD7, 0xB5, 0x9F, 0xB5, 0x9F, 0xDA, 0x9F, 0xE3, 0x98, 0x27, 0xF1, 0x9E, 0xEB, 0x58, 0xFF, 0x1C, 0xE5, 0x73, 0xB6, 0x57, 0xFB, 0xF3, 0x1C, 0xCB, 0xCD, 0x56, 0x32, 0xE7, 0x7B, 0xB5, 0x9F, 0xE3, 0x18, 0xD3, 0xB5, 0x9F, 0xEB, 0x58, 0x77, 0x8E, 0xAA, 0xFD, 0x05, 0x8E, 0x71, 0x5D, 0xFB, 0x0B, 0x51, 0xFB, 0x0B, 0x94, 0xFD, 0x8B, 0xBC, 0xDA, 0x5F, 0xEC, 0x58, 0xEE, 0x22, 0x25, 0x33, 0xCF, 0xAB, 0xFD, 0x7C, 0xC7, 0x98, 0xAE, 0xFD, 0x25, 0x8E, 0x75, 0xE7, 0xAB, 0xDA, 0x5F, 0xEA, 0x18, 0xA7, 0xE3, 0x9A, 0xEA, 0x9E, 0xE7, 0x1D, 0xD7, 0x34, 0x4E, 0xCA, 0xF1, 0x34, 0x16, 0xE3, 0x66, 0x02, 0x74, 0x42, 0xF9, 0xBF, 0x0C, 0xFE, 0x93, 0xEB, 0x64, 0x8E, 0x31, 0x19, 0x77, 0x89, 0x77, 0xB9, 0x4B, 0x9F, 0x6B, 0xFE, 0x8B, 0xF9, 0xF1, 0x5E, 0xD0, 0x7B, 0xF5, 0x9A, 0x1A, 0x6A, 0x9A, 0x5C, 0x53, 0x73, 0x8C, 0x89, 0x3D, 0xE2, 0x5D, 0xE9, 0xD2, 0xE7, 0xD0, 0xBF, 0x2A, 0xFD, 0x05, 0xE8, 0x2B, 0xD9, 0xF8, 0xFB, 0x0C, 0x0B, 0x20, 0xBB, 0x10, 0xB1, 0x2F, 0xC4, 0xFC, 0x72, 0x51, 0xF4, 0xBB, 0x58, 0xE5, 0xBA, 0x04, 0xFC, 0x25, 0x2A, 0xB7, 0x6B, 0x1C, 0x7F, 0x67, 0x4C, 0x6A, 0x76, 0xAD, 0x63, 0x4C, 0xF8, 0xD7, 0x79, 0xFD, 0x72, 0xA9, 0x63, 0xAC, 0x20, 0x91, 0xD2, 0xB9, 0xDE, 0x31, 0x2E, 0xE7, 0xC0, 0x65, 0xFF, 0x71, 0x0E, 0xBC, 0xC1, 0x31, 0x9F, 0xE6, 0x49, 0x44, 0xDF, 0x88, 0x79, 0x52, 0x0B, 0xD8, 0x21, 0xFE, 0x7D, 0x38, 0x1F, 0x2E, 0x77, 0x1C, 0xCF, 0x8D, 0x98, 0xCB, 0x12, 0x7D, 0x75, 0xB4, 0x2D, 0x42, 0x1E, 0x57, 0xAB, 0x38, 0x6F, 0x76, 0xF2, 0x1D, 0x29, 0xBE, 0x8F, 0xBB, 0xC2, 0xED, 0x7B, 0x1F, 0xF7, 0x16, 0xC7, 0xB8, 0xE4, 0xB2, 0xD2, 0xB1, 0xDE, 0x2D, 0x98, 0x7F, 0xD1, 0xF7, 0xD5, 0x56, 0xA2, 0x96, 0xB7, 0xC2, 0xC7, 0xAD, 0xA8, 0xE5, 0x6D, 0xD1, 0xEF, 0x6A, 0x55, 0xCB, 0xDB, 0xC1, 0xBF, 0x5D, 0xC5, 0xB0, 0xC6, 0xF1, 0x37, 0xDA, 0xA4, 0x2E, 0x77, 0x38, 0xC6, 0x84, 0x7F, 0xA7, 0x77, 0xBC, 0xDD, 0xE5, 0x18, 0xCB, 0x55, 0xB5, 0xBC, 0xDB, 0x31, 0x2E, 0xB5, 0xBC, 0xC7, 0xAB, 0xA5, 0xFE, 0xF6, 0xC4, 0x5A, 0xC7, 0x7C, 0xA9, 0xE5, 0x3A, 0x55, 0x4B, 0xB2, 0xB3, 0x56, 0xD5, 0xF2, 0x5E, 0xC7, 0xF1, 0xAC, 0x43, 0x2D, 0x89, 0x5E, 0x15, 0x6D, 0xB7, 0x21, 0x8F, 0x55, 0x2A, 0xCE, 0xF5, 0x38, 0x26, 0xB3, 0xF1, 0x77, 0x3E, 0xD6, 0xA3, 0x26, 0xF7, 0x43, 0xF6, 0x7E, 0xD4, 0x64, 0x43, 0xF4, 0xFB, 0xA0, 0xAA, 0xC9, 0x43, 0xE0, 0x3F, 0xA4, 0x6C, 0x3D, 0xEC, 0xF8, 0x3B, 0x75, 0xC9, 0xF5, 0x31, 0xEF, 0x78, 0x7F, 0xD4, 0x31, 0x96, 0xAB, 0xBE, 0x39, 0xF1, 0x98, 0x4B, 0x7D, 0x73, 0xE2, 0x51, 0x9C, 0x33, 0x64, 0x8C, 0x7C, 0xDC, 0xB1, 0xCD, 0xC7, 0x90, 0x07, 0xD1, 0x0F, 0x44, 0xDB, 0x06, 0xF8, 0x7E, 0x40, 0xF9, 0x7A, 0x0A, 0xED, 0x91, 0x5C, 0x07, 0x43, 0x5F, 0x1F, 0x86, 0x6F, 0xFF, 0x6E, 0x74, 0x2C, 0xF3, 0x34, 0xDA, 0x9F, 0xBE, 0x9F, 0xB7, 0xD1, 0xA5, 0xFA, 0xD0, 0x33, 0xF8, 0xA6, 0x9E, 0xEE, 0x43, 0xCF, 0x3A, 0xC6, 0xE5, 0x7D, 0xFA, 0xFF, 0x39, 0xC6, 0xE4, 0x7D, 0xFA, 0xE7, 0xD5, 0x98, 0x4D, 0xBC, 0xE7, 0xA2, 0xED, 0x79, 0xC4, 0xF6, 0x9C, 0xB2, 0xFD, 0x42, 0x06, 0xDB, 0x2F, 0x3A, 0xC6, 0xA5, 0x36, 0x2F, 0x39, 0xC6, 0x72, 0x54, 0xBF, 0x7E, 0x19, 0x7A, 0xFA, 0xBB, 0x6D, 0xAF, 0x38, 0xC6, 0x45, 0xEF, 0x55, 0xC7, 0x98, 0x9C, 0x4F, 0xE8, 0x3B, 0x80, 0x2F, 0x21, 0x47, 0xFA, 0x06, 0xE0, 0xAB, 0xAA, 0x26, 0xAF, 0xA3, 0x7D, 0x88, 0x47, 0xDF, 0x03, 0x24, 0xFA, 0x58, 0xB4, 0xC3, 0x96, 0x68, 0xFF, 0x10, 0x7C, 0x47, 0x90, 0xF4, 0x36, 0xAB, 0x71, 0xEC, 0x0D, 0x35, 0x8E, 0x6D, 0x81, 0xFE, 0x1B, 0xC9, 0xEB, 0x1C, 0x8E, 0xF5, 0xCD, 0x0C, 0xB1, 0xBE, 0xE5, 0x18, 0x97, 0xFA, 0x6D, 0x75, 0x8C, 0x49, 0xFD, 0xB6, 0xA9, 0xFA, 0x11, 0xEF, 0xED, 0x68, 0xDB, 0x86, 0xFA, 0xBD, 0xAD, 0xEA, 0xF7, 0x4E, 0x86, 0xFA, 0xBD, 0xEB, 0x18, 0x4F, 0x3E, 0x37, 0xE5, 0x18, 0xD3, 0xF5, 0x7B, 0x3F, 0x43, 0x4C, 0x1F, 0x38, 0xC6, 0x45, 0x6F, 0xBB, 0x63, 0x2C, 0x07, 0xF5, 0xA3, 0xEF, 0x22, 0xBE, 0x87, 0x1C, 0xE9, 0x9B, 0x88, 0xDB, 0x55, 0xFD, 0x76, 0xA8, 0xFA, 0xD1, 0xF7, 0x11, 0x77, 0xA8, 0xFA, 0x7D, 0x82, 0xFA, 0x91, 0x3E, 0xE9, 0x7D, 0xAC, 0xEA, 0xF7, 0xA9, 0xAA, 0xDF, 0x27, 0xD0, 0xFF, 0x14, 0xF5, 0xA3, 0x63, 0x49, 0x72, 0xDE, 0xA6, 0x72, 0xFE, 0x2C, 0x43, 0xEC, 0x9F, 0x3B, 0xC6, 0xE5, 0xFC, 0xF1, 0x85, 0x63, 0x4C, 0xCE, 0x1F, 0x3B, 0xFF, 0xE3, 0x5C, 0xFC, 0xA5, 0x63, 0x3E, 0x7D, 0xB7, 0x21, 0xFE, 0x26, 0xBD, 0x63, 0x2C, 0x5F, 0x7D, 0x2F, 0xE2, 0x2B, 0xC7, 0x36, 0x77, 0x61, 0x4E, 0xBA, 0x5B, 0xB5, 0x0F, 0xF1, 0xBE, 0x8E, 0xB6, 0xDD, 0x88, 0xF5, 0x6B, 0x15, 0xEB, 0x37, 0x19, 0xDA, 0xE7, 0x5B, 0xC7, 0x78, 0x72, 0xDD, 0xCB, 0x31, 0xA6, 0xDB, 0xE7, 0xFB, 0x0C, 0x39, 0xFE, 0xE0, 0x18, 0x4F, 0xBE, 0x8F, 0xE7, 0x18, 0x93, 0x6F, 0x49, 0xD0, 0x77, 0x28, 0xBF, 0x43, 0x0D, 0xE9, 0x1B, 0x94, 0x3F, 0xAA, 0xF6, 0xF9, 0x45, 0xB5, 0x0F, 0x7D, 0x8F, 0xF2, 0x17, 0xD5, 0x3E, 0xBF, 0xA2, 0x7D, 0x48, 0x9F, 0xF4, 0x7E, 0x56, 0xED, 0xB3, 0x57, 0xB5, 0xCF, 0xAF, 0xD0, 0xDF, 0xAB, 0xDA, 0x47, 0x72, 0xDE, 0x8D, 0x73, 0xA3, 0x1C, 0xE3, 0xCF, 0xAB, 0x1A, 0xFC, 0x96, 0xA1, 0x06, 0xBF, 0x3B, 0xC6, 0xA5, 0xBD, 0xFE, 0x70, 0x8C, 0x49, 0x7B, 0xFD, 0xF9, 0x1F, 0xE7, 0xFB, 0xBF, 0x1C, 0xF3, 0xA5, 0xBD, 0xFE, 0x76, 0x8C, 0xE9, 0xF6, 0xFA, 0xC7, 0xB1, 0xCD, 0xBF, 0xD1, 0x5E, 0x89, 0x30, 0xD5, 0x5E, 0xC4, 0xFB, 0xD7, 0xF1, 0x87, 0x06, 0xE3, 0x39, 0x8A, 0x8A, 0xD5, 0x84, 0xFB, 0xC6, 0x1A, 0x84, 0x8C, 0x4B, 0xDD, 0x6D, 0xC8, 0x58, 0x81, 0x6A, 0x2F, 0x17, 0xEE, 0xDB, 0x5E, 0x61, 0xC8, 0xB8, 0xE8, 0x65, 0x85, 0x8C, 0xC9, 0xF9, 0x88, 0xBE, 0x03, 0x4A, 0xB6, 0x68, 0x9F, 0xBE, 0x01, 0x4A, 0x7C, 0xD1, 0xAD, 0x1A, 0xA6, 0xDA, 0x8B, 0xBE, 0x07, 0x4A, 0xB4, 0xB4, 0xD7, 0x01, 0x21, 0xB7, 0x17, 0xE9, 0x93, 0x1E, 0xF1, 0xA5, 0xBD, 0x0E, 0x0C, 0x53, 0xED, 0x75, 0x00, 0x6C, 0x13, 0xA6, 0xCF, 0x47, 0xD5, 0x32, 0xC4, 0x7A, 0x50, 0xC8, 0xB8, 0xD4, 0xEF, 0xE0, 0x90, 0x31, 0x39, 0x1F, 0xD5, 0x50, 0xF5, 0x23, 0x5E, 0x75, 0xFA, 0x46, 0x38, 0xEA, 0x57, 0x3D, 0x54, 0xCF, 0x8D, 0x65, 0xA8, 0x5F, 0xCD, 0x90, 0x71, 0xA9, 0x43, 0xAD, 0x90, 0x31, 0x5D, 0xBF, 0x43, 0x33, 0xC4, 0x74, 0x58, 0xC8, 0xB8, 0xE8, 0xD5, 0x0E, 0x19, 0x93, 0xF3, 0x11, 0x7D, 0x17, 0xB5, 0x16, 0x72, 0xA4, 0x6F, 0xA2, 0xD6, 0x56, 0xF5, 0xAB, 0xAF, 0xEA, 0x47, 0xDF, 0x47, 0xAD, 0xAF, 0xEA, 0xD7, 0x00, 0xF5, 0x23, 0x7D, 0xD2, 0xAB, 0xA7, 0xEA, 0xD7, 0x50, 0xD5, 0xAF, 0x01, 0x6C, 0x37, 0x0C, 0x53, 0xFD, 0x5D, 0x72, 0xAE, 0xA1, 0x72, 0x6E, 0x94, 0x21, 0xF6, 0xC6, 0x21, 0xE3, 0xD2, 0xBF, 0x9B, 0x84, 0x8C, 0x49, 0xFF, 0x6E, 0x1A, 0xEE, 0xFF, 0x7C, 0xD4, 0x2C, 0x64, 0xBE, 0xF4, 0xEF, 0xC3, 0x43, 0xC6, 0x74, 0xFF, 0x3E, 0x22, 0x64, 0x9B, 0xC4, 0xA3, 0xF6, 0x69, 0xA1, 0xDA, 0x87, 0x78, 0xCD, 0xA3, 0xAD, 0x05, 0x62, 0x6D, 0xAE, 0x62, 0x6D, 0x99, 0xA1, 0x7D, 0x5A, 0x85, 0x8C, 0x27, 0xDF, 0x15, 0x0C, 0x19, 0xD3, 0xED, 0xD3, 0x26, 0x43, 0x8E, 0x47, 0x86, 0x8C, 0x8B, 0xDE, 0x51, 0x21, 0x63, 0x72, 0x3E, 0xA2, 0xEF, 0xD0, 0xB6, 0x46, 0x0D, 0xE9, 0x1B, 0xB4, 0x47, 0xA9, 0xF6, 0x69, 0xAF, 0xDA, 0x87, 0xBE, 0x47, 0xDB, 0x5E, 0xB5, 0x4F, 0x07, 0xB4, 0x0F, 0xE9, 0x93, 0x5E, 0x3B, 0xD5, 0x3E, 0x1D, 0x55, 0xFB, 0x74, 0x80, 0xED, 0x8E, 0xAA, 0x7D, 0x24, 0x67, 0xFA, 0x8D, 0xAF, 0x63, 0x40, 0x27, 0x54, 0x0D, 0x3A, 0x65, 0xC8, 0xE5, 0x98, 0x90, 0x71, 0xA9, 0x6F, 0xE7, 0x90, 0x31, 0xE9, 0xFF, 0x5D, 0x55, 0x7D, 0x89, 0xD7, 0x25, 0xDA, 0xBA, 0xC2, 0x76, 0x17, 0x65, 0xBB, 0x5B, 0x86, 0xFA, 0x1E, 0x1B, 0x32, 0x2E, 0x75, 0x3A, 0x2E, 0x64, 0x6C, 0xAB, 0xAA, 0x6F, 0xF7, 0x0C, 0x31, 0x1D, 0x1F, 0x32, 0x2E, 0x7A, 0x3D, 0x42, 0xC6, 0xA4, 0xFF, 0xD3, 0x77, 0x7B, 0x8F, 0x43, 0x0D, 0xE8, 0x9B, 0xBD, 0x3D, 0x54, 0x7D, 0x7B, 0xAB, 0xFA, 0xD2, 0xF7, 0x7B, 0x7B, 0xAB, 0xFA, 0xF6, 0x41, 0x7D, 0x49, 0x9F, 0xF4, 0x7A, 0xA9, 0xFA, 0xF6, 0x55, 0xF5, 0xED, 0x03, 0xDB, 0x7D, 0x55, 0x7D, 0x25, 0xE7, 0xAE, 0x2A, 0xE7, 0x7E, 0x19, 0x62, 0xCF, 0x09, 0x19, 0x97, 0xFE, 0xDF, 0x3F, 0x64, 0x4C, 0xFA, 0xFF, 0x80, 0xFF, 0xE8, 0xFF, 0x03, 0x43, 0xE6, 0x4B, 0xFF, 0x1F, 0x14, 0x32, 0xA6, 0xFB, 0xFF, 0x09, 0x21, 0xDB, 0x1C, 0x84, 0xFE, 0x3F, 0x44, 0xB5, 0x0F, 0xF1, 0x06, 0x47, 0xDB, 0x10, 0xC4, 0x3A, 0x58, 0xC5, 0x7A, 0x62, 0x86, 0xF6, 0x39, 0x29, 0x64, 0x3C, 0xF9, 0xDC, 0x58, 0xC8, 0x98, 0x6E, 0x9F, 0x61, 0x19, 0x72, 0x3C, 0x39, 0x64, 0x3C, 0xF9, 0xCC, 0x58, 0xC8, 0x98, 0xF4, 0x7F, 0xFA, 0x4E, 0xF2, 0x50, 0xD4, 0x90, 0xBE, 0x91, 0x3C, 0x5C, 0xB5, 0xCF, 0x28, 0xD5, 0x3E, 0xF4, 0xBD, 0xE4, 0x51, 0xAA, 0x7D, 0x46, 0xA3, 0x7D, 0x48, 0x9F, 0xF4, 0x46, 0xAA, 0xF6, 0x39, 0x55, 0xB5, 0xCF, 0x68, 0xD8, 0x3E, 0x55, 0xB5, 0x8F, 0xE4, 0x3C, 0x04, 0xFD, 0xFF, 0x41, 0x8C, 0xC7, 0x0F, 0xAA, 0xB9, 0xC0, 0x69, 0xF0, 0x2D, 0x71, 0x9F, 0x1E, 0x32, 0xB6, 0x55, 0x5D, 0xEB, 0x9C, 0x1E, 0xA6, 0x5F, 0xEB, 0x6C, 0xC0, 0xF8, 0xBE, 0x1A, 0xF4, 0x6A, 0x65, 0x6F, 0x4C, 0xC8, 0xD7, 0x17, 0xC9, 0x67, 0xD2, 0x42, 0xC6, 0xE4, 0x5B, 0xC7, 0xC4, 0x3B, 0x23, 0x4C, 0xBF, 0x9E, 0xBC, 0x0D, 0xF6, 0x16, 0x83, 0x5E, 0xAC, 0xEC, 0x8D, 0x0D, 0xF9, 0xFA, 0x44, 0xEC, 0x9D, 0x19, 0x32, 0xB6, 0x55, 0x5D, 0xEB, 0x9F, 0x19, 0xA6, 0x5F, 0xEB, 0xD3, 0xB5, 0x30, 0x7D, 0xCF, 0xB7, 0x5B, 0xB4, 0x75, 0xC1, 0x33, 0xBD, 0x55, 0xF1, 0x4D, 0x4B, 0xFA, 0xDB, 0x44, 0x5D, 0x69, 0xBC, 0xC5, 0xDF, 0x8B, 0x22, 0xF9, 0x03, 0xD0, 0x8E, 0x24, 0x57, 0x0B, 0xF8, 0x13, 0xE8, 0x5B, 0xB5, 0x81, 0x1D, 0x8A, 0x63, 0xBF, 0xAE, 0xFA, 0x5E, 0x6C, 0x6D, 0xFC, 0xED, 0xB8, 0x26, 0xB0, 0x53, 0x47, 0xD9, 0xA9, 0x0F, 0x3B, 0xF3, 0xE0, 0xBF, 0x01, 0xFE, 0x96, 0x59, 0x7D, 0x85, 0x35, 0x02, 0xDE, 0x30, 0xFE, 0x26, 0x64, 0x10, 0xD3, 0xF1, 0xF7, 0x25, 0x94, 0x9D, 0xA6, 0x5E, 0x3C, 0x87, 0x03, 0x6B, 0x86, 0x78, 0x9A, 0xAB, 0x78, 0xE4, 0x6F, 0x0F, 0xB6, 0x83, 0x9D, 0x23, 0x94, 0x9D, 0x96, 0xC9, 0xBF, 0xF7, 0x55, 0x29, 0xA6, 0x5B, 0xE3, 0xEF, 0xD6, 0xD4, 0x03, 0xAF, 0x95, 0x8A, 0xAB, 0x0D, 0xAE, 0x97, 0x5B, 0x27, 0xF8, 0xDD, 0x92, 0x2C, 0xFC, 0xAD, 0xC2, 0x36, 0xF8, 0xFB, 0x69, 0x22, 0x77, 0x34, 0x70, 0x89, 0xFF, 0x68, 0xF8, 0x6D, 0xA7, 0xFC, 0x76, 0x80, 0x5F, 0xB1, 0xD3, 0x09, 0x58, 0xC7, 0x38, 0x96, 0xAC, 0x18, 0x3B, 0x06, 0xB1, 0x34, 0x00, 0x5F, 0xEC, 0x77, 0xC6, 0xF3, 0xB0, 0xC7, 0x28, 0xFD, 0xAE, 0xC0, 0xBB, 0x28, 0xB9, 0x6E, 0xC0, 0x25, 0x8E, 0x6E, 0x88, 0xA3, 0x79, 0xFC, 0xDD, 0x4C, 0xFE, 0xAE, 0x73, 0x5D, 0xEC, 0x4B, 0x9F, 0x88, 0xEF, 0xDD, 0xA1, 0x76, 0x07, 0xA1, 0x4F, 0x54, 0x4B, 0xF0, 0xDF, 0x74, 0x92, 0xFD, 0xEA, 0x6A, 0xBF, 0x06, 0x6C, 0xD6, 0xD4, 0xE7, 0x64, 0xC8, 0xC8, 0xBA, 0xE3, 0xC0, 0x44, 0xE6, 0x75, 0xC7, 0x41, 0xE0, 0xC9, 0x5A, 0xDD, 0x09, 0xD0, 0x1D, 0xA4, 0x64, 0x06, 0xC3, 0x77, 0xF2, 0xBE, 0x00, 0xE4, 0x06, 0x2B, 0xBD, 0x13, 0xF1, 0xDD, 0xE2, 0x21, 0xFA, 0x7C, 0x85, 0xD8, 0x92, 0xE7, 0x2B, 0xC8, 0x9D, 0x84, 0x5A, 0x0C, 0x8D, 0xEB, 0x63, 0x12, 0xFF, 0x07, 0xA2, 0x62, 0xD3, 0xE3 -}; diff --git a/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.cso.inl b/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.cso.inl deleted file mode 100644 index 7ffcd82be..000000000 --- a/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.cso.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_3_64_fp16.comp.cso */ -const int internal_shaders_output_convolution_concat_64_3_64_fp16_comp_cso_size = 6552; -const unsigned char internal_shaders_output_convolution_concat_64_3_64_fp16_comp_cso[6552] = { - 0x78, 0xDA, 0xED, 0x7A, 0x7B, 0x54, 0x53, 0x57, 0xDA, 0xF7, 0x39, 0xC9, 0xE1, 0xE4, 0x4A, 0x38, 0x21, 0x80, 0x09, 0x17, 0x49, 0xB8, 0x89, 0x9A, 0xEA, 0xE1, 0x22, 0x17, 0x15, 0xCD, 0x05, 0x01, 0x11, 0x6D, 0xBC, 0x74, 0x8A, 0x96, 0x19, 0x4F, 0x22, 0x37, 0x15, 0x30, 0x5C, 0x44, 0x14, 0x6A, 0x73, 0x83, 0xA0, 0x86, 0x1A, 0x05, 0x15, 0x45, 0xDB, 0xE0, 0xAD, 0x8C, 0xAF, 0x3A, 0xF1, 0xD2, 0x56, 0x7D, 0x1D, 0x9B, 0x04, 0x4A, 0x11, 0xA3, 0xA2, 0x63, 0xFD, 0x32, 0xCA, 0x28, 0x54, 0x4A, 0xF1, 0x3A, 0x68, 0xAD, 0xA3, 0xD5, 0xE9, 0xBC, 0xFB, 0x40, 0x62, 0x1D, 0xBF, 0x59, 0xEB, 0x5B, 0xEF, 0xFA, 0xFE, 0x79, 0xDF, 0xB5, 0x26, 0x6B, 0xED, 0xB3, 0xB3, 0xF7, 0xFE, 0x3D, 0xCF, 0x7E, 0x6E, 0xFB, 0xD9, 0x4F, 0x56, 0x4E, 0x6A, 0xB6, 0x4C, 0x3E, 0x3D, 0x30, 0xEF, 0xE5, 0x5F, 0x96, 0x95, 0x26, 0xBF, 0x1F, 0x3A, 0xA5, 0xA3, 0xCC, 0x75, 0xB8, 0x07, 0x86, 0x20, 0xE8, 0x64, 0x04, 0x04, 0xD1, 0x40, 0x3F, 0x1D, 0xB4, 0x2C, 0xD0, 0x72, 0x40, 0x2B, 0x02, 0x2D, 0x17, 0x2C, 0x56, 0xB0, 0x20, 0xC8, 0x0C, 0xDA, 0xC2, 0xB4, 0xD9, 0x38, 0x1D, 0x22, 0x3F, 0xC8, 0xC8, 0x73, 0xF6, 0xC2, 0xF4, 0x98, 0xD1, 0x31, 0x04, 0x91, 0xFD, 0xBB, 0x6F, 0x8D, 0x15, 0x0B, 0x7F, 0x83, 0x0F, 0x83, 0x1E, 0x87, 0xFE, 0xF5, 0xE7, 0x1F, 0xE0, 0xE3, 0xF5, 0xC6, 0x18, 0x03, 0x0D, 0x76, 0xD3, 0x92, 0xB2, 0xF0, 0x41, 0xA3, 0xBC, 0x45, 0xE3, 0xED, 0xEE, 0x61, 0x77, 0x4F, 0x75, 0x37, 0xCE, 0x1B, 0x63, 0x8F, 0x84, 0xC8, 0x1B, 0xF4, 0x88, 0xBB, 0xA7, 0xB8, 0x1B, 0xEB, 0xAD, 0x79, 0x9A, 0xBB, 0xBD, 0x3D, 0x4F, 0x77, 0x37, 0xD6, 0x1B, 0xB8, 0x37, 0x3F, 0x6F, 0xE3, 0xC9, 0xCF, 0xC2, 0x45, 0xD2, 0x45, 0x74, 0x26, 0x04, 0xA9, 0x20, 0x2F, 0x48, 0x07, 0x36, 0x4B, 0xCD, 0x9E, 0x9D, 0x45, 0x81, 0x47, 0xF5, 0x1B, 0x66, 0x40, 0x90, 0x4C, 0x6E, 0xBB, 0x25, 0x62, 0x43, 0xD0, 0x5A, 0xB0, 0xC6, 0xD2, 0x09, 0x47, 0xE4, 0xE1, 0x91, 0xBC, 0xB5, 0xE1, 0x5B, 0xA4, 0x5D, 0xC8, 0x6C, 0x14, 0x8B, 0x4D, 0xDE, 0x0A, 0x1B, 0xD8, 0x91, 0x5E, 0x74, 0xC1, 0x58, 0x64, 0x93, 0x4A, 0xC3, 0x9F, 0x45, 0x91, 0x6D, 0x65, 0xC9, 0x3A, 0xB0, 0x58, 0xBF, 0x24, 0x3A, 0x7F, 0x0E, 0x33, 0x56, 0x55, 0x9F, 0x61, 0xF6, 0x13, 0xCA, 0xD3, 0xEA, 0x0F, 0x40, 0x82, 0x58, 0xD9, 0x40, 0x06, 0xC7, 0xCC, 0x0D, 0xEF, 0x50, 0x48, 0xE7, 0x6B, 0x4D, 0xFD, 0xFA, 0xEF, 0x37, 0x22, 0x31, 0x69, 0xE8, 0x7C, 0xFE, 0xA8, 0xDC, 0x41, 0xA6, 0x3E, 0xD2, 0xCC, 0x34, 0x09, 0xA5, 0xCD, 0xDB, 0x30, 0x4C, 0x7E, 0xA5, 0x0A, 0x8B, 0xF1, 0x3A, 0xF2, 0x4B, 0x28, 0xC4, 0x68, 0x83, 0x66, 0xF3, 0x47, 0x6D, 0xC6, 0xD3, 0x11, 0x32, 0x61, 0x16, 0x1D, 0x25, 0xE5, 0xDF, 0x20, 0x84, 0xA0, 0x35, 0xA0, 0x8F, 0x0D, 0xAB, 0x67, 0x08, 0x73, 0x6B, 0x11, 0x5E, 0xF8, 0x7E, 0x03, 0x78, 0xDC, 0x31, 0xB4, 0x9A, 0xFD, 0x7C, 0xB3, 0x4C, 0x26, 0x96, 0xA1, 0x23, 0x0B, 0x73, 0xD9, 0xE9, 0x12, 0x06, 0xC4, 0x1C, 0xA4, 0xDB, 0x2C, 0xEC, 0x76, 0x1C, 0x8B, 0x61, 0x2A, 0x98, 0xCB, 0x70, 0xB6, 0xFE, 0x63, 0x19, 0x5F, 0xAF, 0x54, 0xC4, 0xA6, 0x6B, 0x7A, 0xCA, 0x2E, 0xAB, 0x5F, 0xF0, 0x9E, 0x61, 0x5B, 0x43, 0x29, 0x17, 0xAD, 0x58, 0x34, 0xD1, 0x4D, 0x61, 0x5F, 0xC4, 0xF9, 0x75, 0x4A, 0x31, 0x35, 0xB9, 0x16, 0x74, 0xC2, 0xA1, 0x83, 0xFD, 0x4F, 0xC6, 0x3D, 0x10, 0x45, 0x7C, 0x14, 0xB9, 0x7F, 0x5B, 0xF3, 0xAB, 0xBD, 0xD7, 0xE7, 0x2B, 0xF9, 0x75, 0x31, 0x4D, 0xF2, 0xC0, 0x5D, 0xCA, 0x6C, 0x74, 0x57, 0x3E, 0xD4, 0xAD, 0xF0, 0xF6, 0x5F, 0x9C, 0xE8, 0xBD, 0x63, 0xA6, 0xD2, 0x47, 0xF4, 0x62, 0xA2, 0xE8, 0x48, 0xC7, 0xC0, 0x98, 0x2F, 0x1B, 0x36, 0x1E, 0x3A, 0x74, 0xA8, 0x15, 0x77, 0xF5, 0xC4, 0xBF, 0xF7, 0xDE, 0x7B, 0xED, 0xF8, 0xA2, 0xA6, 0x90, 0x29, 0x39, 0xBF, 0x18, 0x52, 0x0C, 0x03, 0xE5, 0x41, 0xEF, 0x1D, 0xEE, 0x18, 0x08, 0xFF, 0xB2, 0xA1, 0x1E, 0x30, 0x91, 0x15, 0xC9, 0xE3, 0xB0, 0x35, 0xD7, 0x46, 0x37, 0xBF, 0x5C, 0xBC, 0xE8, 0x98, 0x6F, 0xE3, 0xD2, 0xDE, 0x84, 0x30, 0x40, 0xCA, 0xEC, 0xF7, 0xBE, 0x28, 0xB9, 0x1D, 0x2C, 0x55, 0x98, 0xF2, 0xB3, 0xEB, 0x44, 0x11, 0xA5, 0x42, 0x82, 0xAF, 0x6D, 0xCB, 0x5F, 0xA1, 0x2F, 0x25, 0x8C, 0xEA, 0x66, 0xE3, 0x5A, 0x35, 0x75, 0x49, 0x34, 0xAD, 0xC6, 0x62, 0x5C, 0x67, 0x36, 0x96, 0x99, 0xA9, 0x0B, 0xFA, 0xA8, 0xD5, 0xD1, 0xC6, 0x52, 0x8B, 0x71, 0x8D, 0x99, 0x36, 0x03, 0xA7, 0x55, 0x56, 0x19, 0xD5, 0x16, 0x5A, 0x02, 0x44, 0x9D, 0x3A, 0x4C, 0xC5, 0x87, 0xA9, 0x29, 0x3D, 0xFA, 0xCA, 0x0C, 0x5A, 0x55, 0xB3, 0x71, 0xA9, 0xC5, 0x58, 0xA3, 0x31, 0x96, 0x49, 0xEC, 0x78, 0x23, 0xDF, 0x44, 0x9D, 0x66, 0x68, 0x9F, 0xEE, 0xD4, 0x07, 0xF5, 0xC8, 0x92, 0xFB, 0xA8, 0x29, 0xD7, 0xF4, 0xD3, 0x9B, 0xF4, 0xC1, 0x66, 0x4A, 0xA8, 0x4B, 0x9E, 0x6C, 0xA2, 0xA6, 0x9C, 0xD5, 0x4F, 0x1F, 0xD6, 0x26, 0x5B, 0xDB, 0xA7, 0x19, 0xA8, 0x29, 0x56, 0x98, 0xDF, 0xA3, 0x0D, 0xD5, 0x68, 0x43, 0x85, 0xAD, 0xF1, 0x77, 0xA7, 0x67, 0xED, 0x0A, 0xCB, 0x6C, 0x7E, 0xE5, 0xDD, 0x42, 0x2F, 0xE6, 0x87, 0xC9, 0xB6, 0x26, 0x1C, 0x8A, 0xAE, 0xA7, 0x7B, 0x51, 0x0F, 0x7C, 0x36, 0x7B, 0x61, 0x2A, 0xA3, 0xF1, 0x2B, 0x47, 0x50, 0x02, 0xF7, 0x06, 0x9E, 0x6A, 0x88, 0x28, 0x5E, 0x34, 0x1F, 0xE3, 0x32, 0xD1, 0x25, 0x46, 0x2E, 0xD0, 0x52, 0xDA, 0x56, 0xC7, 0x35, 0xF4, 0x07, 0x2E, 0xDF, 0x18, 0xAD, 0x7C, 0xB2, 0x50, 0x48, 0xE1, 0x33, 0xC6, 0x1F, 0x99, 0xC6, 0x6E, 0x57, 0x78, 0xFF, 0xB5, 0xBA, 0xE1, 0xA6, 0xB0, 0x96, 0x17, 0x33, 0x1E, 0x83, 0x4D, 0x06, 0x4A, 0xF3, 0x77, 0x2D, 0xFB, 0xC7, 0xEF, 0x35, 0x9C, 0x2F, 0x80, 0x07, 0x17, 0xD7, 0xD7, 0xEF, 0xD1, 0x6C, 0x90, 0xD8, 0x25, 0x3F, 0x06, 0xC3, 0xD1, 0xA4, 0xBF, 0xFD, 0xCA, 0x6C, 0xC6, 0x0A, 0xC2, 0x98, 0x50, 0x68, 0x5C, 0x5B, 0x48, 0x05, 0xDF, 0xBD, 0x8F, 0x2A, 0x38, 0xC5, 0x3D, 0x9C, 0x75, 0xE0, 0x09, 0xF9, 0xAC, 0xC3, 0x69, 0x65, 0x16, 0x5A, 0xB9, 0x90, 0x56, 0x6C, 0xE6, 0x94, 0x7A, 0xBE, 0x54, 0x59, 0x68, 0x55, 0x3D, 0xE8, 0x5D, 0x8C, 0x56, 0x69, 0xA1, 0x95, 0x12, 0xE4, 0x0C, 0x98, 0x27, 0x91, 0x60, 0x92, 0xA0, 0x55, 0x58, 0x68, 0x95, 0x12, 0x5A, 0x31, 0xC1, 0x01, 0x4B, 0xEB, 0x00, 0xA6, 0x07, 0x1D, 0x7C, 0xCD, 0x84, 0xE0, 0x80, 0xA5, 0x75, 0x00, 0xD3, 0x83, 0x3E, 0xD2, 0x8C, 0xAC, 0x8E, 0xCC, 0x93, 0x33, 0xF8, 0x00, 0x43, 0xF3, 0xFA, 0xE0, 0x10, 0x5D, 0x72, 0x08, 0xC6, 0xDC, 0x03, 0x9B, 0xD9, 0x08, 0x51, 0x84, 0xEE, 0x81, 0x46, 0x74, 0x19, 0x46, 0x24, 0x1E, 0x9C, 0xFC, 0x13, 0x84, 0xFE, 0x9A, 0xAA, 0x6E, 0x3A, 0x07, 0x7B, 0x7D, 0xCC, 0xD9, 0x6B, 0x85, 0xC2, 0xD7, 0x03, 0xFE, 0x93, 0x2C, 0x09, 0xC4, 0x76, 0x0F, 0xF0, 0x81, 0x63, 0x1A, 0x88, 0xFE, 0x7A, 0xA3, 0x46, 0x18, 0xC6, 0x7F, 0xDD, 0x88, 0x4A, 0x21, 0x7E, 0xDD, 0x88, 0x86, 0xD8, 0x5E, 0x6F, 0x34, 0x36, 0x06, 0xFA, 0x75, 0x49, 0x0C, 0x44, 0x13, 0x90, 0xE7, 0x62, 0x6C, 0x33, 0x5F, 0xC0, 0xCD, 0x32, 0x9B, 0x18, 0x51, 0xE9, 0x9D, 0x88, 0x3C, 0x30, 0xD3, 0x42, 0x4F, 0x83, 0x36, 0xB6, 0x62, 0x99, 0x7B, 0xC5, 0xDD, 0xAD, 0x6C, 0xE6, 0x5E, 0x88, 0x9A, 0xD9, 0x2A, 0x61, 0x1E, 0x54, 0x33, 0xDB, 0xCC, 0xCC, 0x43, 0x56, 0xE6, 0xE1, 0x3E, 0xA6, 0xC2, 0x22, 0xA4, 0x66, 0xB6, 0x0D, 0x6F, 0x4C, 0x69, 0xCD, 0xF5, 0xDA, 0xB8, 0x2F, 0x7A, 0xA3, 0xC9, 0xC1, 0x85, 0x0E, 0xB1, 0x82, 0x31, 0x4C, 0x7B, 0x4D, 0x00, 0xA9, 0x0A, 0x20, 0xFA, 0x27, 0xB0, 0xA5, 0x0A, 0xD5, 0x0C, 0x08, 0xA0, 0xBD, 0x60, 0xB0, 0x07, 0xE4, 0x8A, 0xB5, 0xE0, 0x5C, 0x0E, 0x80, 0xBD, 0x02, 0xA9, 0x59, 0xE6, 0x34, 0x0A, 0x2F, 0x75, 0x33, 0x7B, 0xD5, 0x83, 0x87, 0x73, 0xD9, 0x11, 0x9D, 0xDF, 0x77, 0xCE, 0x4A, 0x8B, 0x4A, 0xEB, 0xAC, 0x45, 0x51, 0xE4, 0x00, 0xBB, 0x2E, 0xBF, 0xD3, 0x14, 0x25, 0x4E, 0x8B, 0xCA, 0x93, 0x63, 0x59, 0x58, 0x5D, 0xBE, 0x0E, 0x4F, 0x0A, 0x32, 0x68, 0x9B, 0x85, 0xEC, 0xCB, 0xA8, 0x1D, 0x8F, 0x36, 0x5D, 0x9C, 0x8B, 0xA1, 0x85, 0xED, 0x9A, 0x88, 0x0E, 0x04, 0xF6, 0x1E, 0xD4, 0x9C, 0xFF, 0xF3, 0xFB, 0xBB, 0x6E, 0xBE, 0xBF, 0xE4, 0xE6, 0x4E, 0x27, 0xA2, 0xAC, 0x8F, 0xA2, 0xEB, 0x4F, 0x4A, 0xF1, 0xDD, 0xDE, 0x1B, 0x8E, 0xE1, 0x69, 0x71, 0x58, 0x67, 0x9C, 0x54, 0xA1, 0x4F, 0x10, 0x96, 0x3D, 0xDB, 0x36, 0x88, 0xBE, 0x9F, 0x3E, 0x26, 0x4E, 0xCA, 0x3F, 0xE8, 0x7D, 0x1E, 0x9B, 0x8D, 0xC6, 0x64, 0xA1, 0xB6, 0x81, 0x07, 0xF7, 0x8F, 0x8A, 0x1F, 0xB2, 0x1B, 0x4A, 0x4A, 0x74, 0xB8, 0x22, 0xC8, 0x37, 0xEC, 0x10, 0x7B, 0x65, 0x33, 0x9B, 0xD0, 0xE1, 0x8B, 0x52, 0x2F, 0x9D, 0xEB, 0xB8, 0xEA, 0x18, 0xEC, 0x1E, 0x04, 0xBC, 0x3E, 0x17, 0xD9, 0xF7, 0x3A, 0x7B, 0xEA, 0xCE, 0x43, 0x09, 0x18, 0xB6, 0xBA, 0x98, 0x87, 0x24, 0xA8, 0xA9, 0x51, 0x05, 0x4B, 0x57, 0xAD, 0xAE, 0x58, 0xAA, 0x5A, 0x9D, 0xCF, 0x33, 0xE0, 0xD9, 0x7A, 0xEF, 0x4D, 0x57, 0xD6, 0xD6, 0xC5, 0x64, 0xDD, 0xFE, 0x1B, 0x1C, 0x44, 0xC1, 0x9B, 0x85, 0x5D, 0xD2, 0x60, 0xEB, 0xEF, 0xCB, 0xE6, 0xC4, 0x55, 0x37, 0xAE, 0xD4, 0x33, 0x1B, 0x59, 0x2B, 0x5B, 0x5A, 0x84, 0xEC, 0xFF, 0x83, 0x76, 0x60, 0xFA, 0x18, 0xDC, 0xA4, 0x65, 0x6B, 0xBC, 0xA5, 0x82, 0x2C, 0x6C, 0x48, 0xC2, 0x69, 0xDE, 0xFD, 0xE1, 0xC5, 0xDA, 0xCF, 0xED, 0xC7, 0xB6, 0x9D, 0x2F, 0x96, 0x98, 0xE2, 0x24, 0x54, 0x6A, 0x10, 0x9B, 0x90, 0x9B, 0xD1, 0x20, 0xFA, 0x24, 0xB6, 0x53, 0xE2, 0x1D, 0x45, 0x57, 0x0F, 0xA3, 0x11, 0x03, 0xDD, 0x9D, 0x43, 0x51, 0x74, 0xEA, 0x17, 0xF6, 0x8C, 0x1B, 0x50, 0x9C, 0x38, 0x51, 0xD8, 0x38, 0x98, 0xFF, 0xB7, 0x6D, 0xD7, 0x2B, 0x9F, 0x4D, 0xD9, 0x71, 0xF0, 0xFD, 0x04, 0x29, 0xFF, 0xB8, 0x77, 0x1A, 0x85, 0x96, 0x1D, 0x9C, 0xCD, 0x69, 0x89, 0x4F, 0x3C, 0x35, 0xF5, 0xCC, 0x1F, 0x92, 0xA7, 0x9E, 0x8E, 0x3F, 0x7E, 0xBC, 0x99, 0xE1, 0xB0, 0x14, 0xE3, 0x5B, 0x93, 0x6D, 0x43, 0xB6, 0x15, 0xAE, 0xFD, 0xA7, 0xED, 0xDF, 0x5E, 0xF9, 0xF0, 0xE2, 0x95, 0xF3, 0x07, 0xB6, 0x6C, 0x3B, 0x0F, 0xEC, 0x58, 0xAC, 0xDF, 0xE2, 0x82, 0x2B, 0x69, 0xBF, 0x69, 0x1F, 0x3C, 0xF2, 0x31, 0xE7, 0xE8, 0xC7, 0x8F, 0x56, 0x7E, 0x3C, 0x6F, 0x52, 0xC3, 0xE1, 0x22, 0x1D, 0xAE, 0x0E, 0x32, 0x45, 0xF8, 0xE0, 0x29, 0xD6, 0xC0, 0xD8, 0x8A, 0x55, 0x25, 0x79, 0xC5, 0x4A, 0xF5, 0xD2, 0xE2, 0x55, 0xB9, 0x79, 0x3C, 0x43, 0xEB, 0x4D, 0x22, 0xA2, 0x46, 0xF3, 0x93, 0xF6, 0x5B, 0x7C, 0x76, 0xF9, 0x89, 0x97, 0x53, 0x59, 0x2B, 0x57, 0xB2, 0x80, 0x3E, 0xB7, 0xD0, 0xF0, 0x17, 0x54, 0xB6, 0x9F, 0xD8, 0xF8, 0xF5, 0x98, 0x1C, 0x3E, 0x69, 0xF5, 0xE7, 0x09, 0xFC, 0x0D, 0xD1, 0xC4, 0x3E, 0x62, 0x4A, 0xEA, 0xAD, 0x7B, 0x43, 0xE7, 0xBA, 0xAE, 0xDE, 0x00, 0xA6, 0xA3, 0xF2, 0x8B, 0xF0, 0xAD, 0x0B, 0x6C, 0x59, 0xF6, 0x32, 0xEA, 0xD8, 0xE5, 0x25, 0x4B, 0x73, 0x97, 0x17, 0x97, 0xF3, 0x0C, 0x22, 0x76, 0x02, 0x9F, 0x31, 0x81, 0xF8, 0x3D, 0x71, 0xDA, 0x5E, 0x57, 0xCB, 0xBE, 0x25, 0xE1, 0xDC, 0x83, 0x7C, 0x9E, 0xD9, 0x7C, 0x64, 0x5A, 0xBF, 0x79, 0x52, 0xFF, 0x28, 0x7A, 0x29, 0x44, 0x03, 0xC6, 0xEF, 0x73, 0x0C, 0x38, 0x6E, 0x0C, 0x26, 0x60, 0xB3, 0x27, 0x12, 0x9D, 0xA8, 0x96, 0x9D, 0xA3, 0x94, 0x2B, 0xAD, 0xF6, 0x09, 0x56, 0xC7, 0xC4, 0x2C, 0x0C, 0x21, 0xA8, 0x56, 0x25, 0x9E, 0x2B, 0x0D, 0x48, 0x40, 0x4E, 0x58, 0x95, 0x7C, 0x95, 0x36, 0x20, 0xE3, 0x64, 0xED, 0x81, 0xD3, 0x73, 0xB1, 0x7B, 0x1A, 0xEF, 0x04, 0x76, 0x29, 0x5E, 0x18, 0x44, 0xBF, 0x13, 0x10, 0x98, 0xE3, 0x52, 0x74, 0xE8, 0xDE, 0x81, 0x56, 0x9A, 0x59, 0x26, 0xC7, 0xC0, 0x80, 0xE3, 0xC9, 0x39, 0xD7, 0xAD, 0x4E, 0x87, 0xEB, 0x5C, 0xC7, 0x93, 0xA1, 0x11, 0x9F, 0xF2, 0x31, 0x66, 0x63, 0x23, 0xEB, 0xC2, 0x4B, 0x55, 0x75, 0x10, 0x6B, 0xD9, 0x4B, 0x55, 0x78, 0xCB, 0x3E, 0xA0, 0xD3, 0x32, 0x49, 0x6A, 0xD6, 0x24, 0x67, 0x31, 0xFB, 0x48, 0x11, 0x08, 0x07, 0x33, 0xEC, 0x1D, 0xF7, 0xC5, 0x97, 0xF8, 0x99, 0xD3, 0x0C, 0x87, 0x02, 0x15, 0x5F, 0xED, 0x1D, 0x1C, 0x22, 0xE9, 0x04, 0xE6, 0x8C, 0xF2, 0x7D, 0xA4, 0x3F, 0x0B, 0x24, 0x86, 0xA3, 0xEC, 0xBF, 0x6E, 0x7A, 0xF8, 0x8E, 0x09, 0x98, 0xCE, 0x02, 0x73, 0xCF, 0xC4, 0x9E, 0x9D, 0xFC, 0x65, 0xE2, 0xE9, 0x84, 0xA8, 0x8A, 0xBC, 0xAA, 0xA5, 0xE5, 0x15, 0xAB, 0xCA, 0x80, 0xE5, 0x44, 0xDE, 0xD9, 0xD7, 0x0E, 0x9C, 0xBE, 0x42, 0x46, 0xEA, 0x14, 0x97, 0xE4, 0x21, 0x65, 0xF2, 0x53, 0xDD, 0xE4, 0x57, 0x94, 0x24, 0x83, 0x3E, 0xC9, 0x44, 0x4D, 0x6E, 0xD2, 0x27, 0xEF, 0xA6, 0x4E, 0xDD, 0x2F, 0xDF, 0xC7, 0xB9, 0x6F, 0xE3, 0x3C, 0x54, 0xD4, 0x36, 0x5C, 0x3C, 0x7A, 0x31, 0xB2, 0xE1, 0xB0, 0xB3, 0xA1, 0x24, 0x13, 0x5B, 0x24, 0x6A, 0x2F, 0x3F, 0x36, 0xB1, 0xB1, 0x65, 0x4E, 0x75, 0x79, 0x8B, 0x2F, 0x36, 0xB7, 0x6B, 0x38, 0xE7, 0x81, 0xC3, 0xF5, 0xA0, 0x7B, 0xE0, 0x20, 0x92, 0x16, 0x12, 0x3B, 0x7D, 0x47, 0xF2, 0x49, 0xFC, 0x78, 0xEC, 0xE9, 0x83, 0x89, 0xC7, 0x63, 0xBF, 0x18, 0x2F, 0x5D, 0x50, 0xC7, 0xBE, 0x3C, 0xEB, 0x68, 0xD1, 0xA3, 0x23, 0xF3, 0x4A, 0x0E, 0x17, 0x95, 0x64, 0x5A, 0xD0, 0x6D, 0x00, 0x3E, 0xF4, 0xA4, 0xAF, 0x5B, 0xD7, 0xDB, 0x7B, 0x6B, 0xC8, 0x31, 0x74, 0xF5, 0x56, 0xEF, 0xE0, 0x41, 0xFA, 0x1F, 0x24, 0xAC, 0xD5, 0x60, 0xBE, 0xBB, 0x77, 0x68, 0xE0, 0x89, 0xE5, 0xD6, 0xD5, 0xDE, 0xA1, 0xC1, 0x83, 0xC8, 0xE9, 0x9E, 0x5A, 0xF6, 0xE5, 0xBC, 0x07, 0x47, 0x2E, 0x35, 0x1C, 0xCD, 0x2A, 0x29, 0xC9, 0xEC, 0xE1, 0x8C, 0x9C, 0xCB, 0xF9, 0xE0, 0x5C, 0xC6, 0xD1, 0x35, 0xC1, 0x1D, 0xFD, 0xC1, 0xF9, 0x7E, 0x70, 0x4A, 0xBD, 0x3C, 0xC9, 0xD0, 0x6E, 0x92, 0x69, 0x68, 0x6B, 0xAB, 0x68, 0xE5, 0xCD, 0xA5, 0xEC, 0x41, 0xC8, 0xE7, 0x21, 0xC6, 0x79, 0xAA, 0xE1, 0xC4, 0xB1, 0x65, 0x63, 0x1D, 0xF6, 0x90, 0x4B, 0xAD, 0xC1, 0xF9, 0xB8, 0xD7, 0x08, 0x4C, 0x1F, 0xE4, 0xA4, 0xA6, 0x74, 0xC9, 0x53, 0xC0, 0x75, 0xE0, 0xAC, 0x32, 0x55, 0xA8, 0x69, 0xD5, 0x74, 0xDA, 0xDA, 0x0C, 0xA3, 0x5A, 0x4D, 0x5B, 0xA7, 0xA6, 0x92, 0x57, 0x8C, 0xD0, 0x28, 0x70, 0x72, 0x39, 0x0F, 0xCC, 0x9C, 0x7E, 0xDC, 0xA7, 0x04, 0xF7, 0xB9, 0x33, 0xCC, 0x19, 0x56, 0x70, 0xE2, 0xB0, 0x8E, 0x90, 0x5B, 0xA2, 0x60, 0x97, 0x28, 0xC4, 0xA1, 0x1C, 0x9B, 0x8F, 0x6F, 0x98, 0x76, 0x56, 0x3F, 0xAD, 0x47, 0x9E, 0x7C, 0x92, 0x3A, 0x1D, 0xDC, 0x29, 0x06, 0xEA, 0x34, 0xE7, 0xB0, 0x5F, 0x25, 0x41, 0xAB, 0x2E, 0xA4, 0x25, 0x16, 0x1A, 0xCB, 0xC0, 0x53, 0x63, 0x54, 0x9B, 0x8D, 0x6A, 0x82, 0x56, 0x19, 0x4D, 0xAB, 0x7C, 0xEE, 0x05, 0xD8, 0xAE, 0xD1, 0x18, 0x97, 0xD2, 0x8D, 0xA5, 0x7C, 0x63, 0x19, 0xB8, 0xE6, 0x9A, 0xB5, 0xE2, 0x47, 0xC3, 0x9C, 0x47, 0x7D, 0x9C, 0x9F, 0x6C, 0x9C, 0x07, 0x38, 0x55, 0xD5, 0xD5, 0x1A, 0x3C, 0xD0, 0x1A, 0xEC, 0x1C, 0x79, 0xF6, 0x2A, 0x83, 0xBB, 0x45, 0xC1, 0x1D, 0xDA, 0x90, 0x6E, 0x25, 0x7A, 0xDD, 0x2C, 0x4F, 0xEE, 0x92, 0x27, 0x37, 0x8F, 0x3C, 0x4F, 0xB5, 0x27, 0x35, 0xC9, 0x93, 0xEA, 0xA9, 0xD3, 0x9A, 0xDA, 0x27, 0x83, 0x4D, 0x5F, 0xE9, 0xA6, 0x5D, 0xA3, 0x4E, 0xB3, 0xB6, 0xB3, 0x3B, 0x44, 0xB4, 0x1A, 0x35, 0x75, 0x5D, 0xB4, 0xB1, 0x52, 0x63, 0x14, 0x5C, 0x91, 0x73, 0x9E, 0xF7, 0xA1, 0x03, 0x42, 0xCE, 0x0F, 0x7D, 0xE8, 0x33, 0x8C, 0xF3, 0xC4, 0xC6, 0xE9, 0x37, 0xFB, 0xFC, 0x55, 0xE1, 0xF3, 0x14, 0xD7, 0x6B, 0xBB, 0xE0, 0xD0, 0x5E, 0x09, 0xB9, 0x85, 0x43, 0x19, 0x42, 0x7E, 0x21, 0xEB, 0xB7, 0x52, 0x90, 0xDD, 0x13, 0x41, 0x9F, 0x06, 0x79, 0xEF, 0xF8, 0xEB, 0xF4, 0xF5, 0x9A, 0x78, 0x89, 0xE1, 0xC5, 0xAC, 0x23, 0x2D, 0x70, 0x7C, 0xCE, 0xB9, 0x1F, 0x9F, 0xC3, 0x57, 0x21, 0xEE, 0x60, 0xF8, 0x97, 0xC5, 0xAC, 0x9B, 0xEA, 0x17, 0x97, 0xEE, 0xB0, 0xE0, 0xF7, 0xFC, 0x52, 0x17, 0x4D, 0xB5, 0x29, 0x7C, 0x51, 0x21, 0xB1, 0xBE, 0xF4, 0xE6, 0x41, 0x2B, 0x49, 0x72, 0x0E, 0x53, 0xCC, 0x92, 0xA6, 0x1E, 0xA0, 0xB2, 0x23, 0x95, 0x10, 0x85, 0x04, 0xB3, 0xAF, 0x8E, 0x80, 0xB9, 0x70, 0x56, 0x2A, 0x3D, 0xBE, 0x5D, 0x96, 0x2D, 0x19, 0x61, 0x95, 0x36, 0xA0, 0xD8, 0x9C, 0xF4, 0xBC, 0xAB, 0xF8, 0xA6, 0x7D, 0x0A, 0x39, 0xE4, 0x12, 0xE4, 0x55, 0x3A, 0xFF, 0x2E, 0xA4, 0x5F, 0x7A, 0xED, 0x8C, 0x3F, 0xD1, 0xFE, 0xFD, 0xB4, 0xCD, 0xA1, 0xF0, 0xF5, 0x34, 0x7F, 0x2F, 0xEE, 0xB1, 0x46, 0x1E, 0x77, 0xFD, 0xFC, 0xFB, 0xDB, 0x15, 0x23, 0xCC, 0x11, 0xFC, 0xB2, 0xAC, 0x29, 0x75, 0x96, 0x18, 0x6C, 0x97, 0x20, 0x24, 0x67, 0x7E, 0x49, 0x4D, 0xE5, 0x51, 0x52, 0x9B, 0x01, 0x15, 0x23, 0x97, 0xA4, 0x9A, 0x19, 0xC2, 0x85, 0xD9, 0xDF, 0x09, 0x13, 0x08, 0xC0, 0x7F, 0x73, 0xEF, 0x17, 0xA2, 0xE9, 0xE4, 0xE4, 0xBB, 0x53, 0x80, 0x16, 0x5F, 0x17, 0x07, 0x41, 0x76, 0x28, 0xC3, 0x5D, 0x8C, 0x66, 0x48, 0x17, 0x66, 0xF8, 0xB9, 0x2F, 0x91, 0x13, 0x2B, 0xA7, 0x68, 0x2A, 0x7E, 0xE9, 0x0B, 0x3A, 0xB5, 0x67, 0x99, 0xF9, 0x44, 0xA1, 0xF7, 0x59, 0xB2, 0x36, 0x0C, 0x16, 0x8C, 0xD6, 0x8A, 0xE9, 0xE8, 0x3F, 0xD7, 0x8A, 0x88, 0xE0, 0xD7, 0x5A, 0x71, 0x06, 0xFA, 0x3F, 0xB7, 0x56, 0xAC, 0xFE, 0x7F, 0xD5, 0x8A, 0xAF, 0xFE, 0x5D, 0x2B, 0xFE, 0xAF, 0xAD, 0x15, 0x23, 0x74, 0xD2, 0x4A, 0x26, 0xDF, 0x30, 0x4E, 0x3A, 0xEB, 0x67, 0x3F, 0x48, 0xB0, 0x08, 0xFE, 0x9F, 0x55, 0x3B, 0x42, 0xFF, 0x9B, 0x6A, 0x47, 0xEC, 0x5F, 0xD7, 0x8E, 0xDD, 0xAD, 0xFC, 0x34, 0x88, 0xD9, 0x1A, 0xD1, 0xBD, 0x77, 0xA4, 0x76, 0x64, 0x1A, 0xC8, 0xE2, 0x30, 0x1D, 0x62, 0x92, 0xE5, 0xA1, 0x4B, 0x00, 0x6D, 0x2D, 0x80, 0xEA, 0x3F, 0x81, 0x85, 0xAB, 0x51, 0x4D, 0x8F, 0x60, 0xB4, 0x2E, 0x5C, 0xFE, 0xFF, 0x51, 0x17, 0x2A, 0xFF, 0xA9, 0x2E, 0x24, 0x0B, 0xC1, 0x42, 0x08, 0x45, 0xC0, 0xB5, 0x1D, 0x4F, 0x16, 0x7D, 0x8E, 0x27, 0x45, 0x19, 0x01, 0x07, 0x17, 0xEF, 0xD6, 0x66, 0x5B, 0x18, 0xBA, 0xC0, 0x1A, 0x9E, 0x41, 0x7B, 0xC3, 0xCC, 0x5E, 0x70, 0x02, 0x6B, 0x3F, 0x09, 0x05, 0xF9, 0xCA, 0x56, 0x04, 0x2C, 0x6B, 0x0E, 0x20, 0x4B, 0x3F, 0x9E, 0xC1, 0x7E, 0xC3, 0x9C, 0xBD, 0xE0, 0x44, 0x0E, 0x39, 0x5F, 0x5F, 0x7F, 0xC8, 0xCA, 0xA0, 0x04, 0xA9, 0x41, 0x99, 0xD7, 0x95, 0x20, 0xDE, 0x74, 0x5D, 0x7C, 0x01, 0x2F, 0xBE, 0x89, 0x16, 0xD1, 0x4F, 0x31, 0x74, 0xC1, 0x15, 0x3C, 0x43, 0xFF, 0x0D, 0x8D, 0xF8, 0x77, 0x27, 0xC4, 0xED, 0xB4, 0x22, 0xBA, 0x8D, 0xD0, 0x49, 0x68, 0xB7, 0xD0, 0x5C, 0xAE, 0x3E, 0xFF, 0x58, 0x9D, 0x97, 0x0B, 0x33, 0xD9, 0xD1, 0xB0, 0xFB, 0x0E, 0x0D, 0x3B, 0x8A, 0x4E, 0x91, 0xEC, 0x7D, 0x47, 0x7C, 0xB1, 0x58, 0xA7, 0xA0, 0xDD, 0x44, 0x94, 0xB6, 0x04, 0xF6, 0x72, 0x3C, 0x27, 0xA8, 0xDE, 0xCB, 0x3B, 0x78, 0x8A, 0x4B, 0xD1, 0x6C, 0x17, 0x40, 0x79, 0x56, 0x34, 0xA2, 0xC7, 0xE1, 0x72, 0x3E, 0x3F, 0xFB, 0xF9, 0xE9, 0x03, 0xF6, 0x3F, 0x5E, 0xD9, 0x76, 0xFA, 0x8A, 0xD6, 0xD4, 0x5A, 0x7B, 0x3E, 0x66, 0x57, 0xE6, 0x4A, 0xFD, 0xB2, 0x89, 0x54, 0xC1, 0x3A, 0xC1, 0x92, 0xC5, 0x70, 0xAB, 0x2F, 0x93, 0x79, 0x03, 0x3B, 0x6B, 0x47, 0x5A, 0x39, 0x27, 0xBD, 0xF5, 0x41, 0x36, 0x69, 0x70, 0x11, 0xFF, 0x86, 0x84, 0xF3, 0x1D, 0xD1, 0x8E, 0xD3, 0xCA, 0x31, 0x9A, 0xD8, 0xE9, 0xBA, 0xE5, 0x18, 0x4A, 0x60, 0xAF, 0x16, 0xD2, 0x4A, 0xAD, 0x4A, 0x2B, 0x75, 0x5A, 0xBD, 0x7E, 0x42, 0x51, 0x51, 0x65, 0xF1, 0xA4, 0xE5, 0xB9, 0x79, 0x25, 0x15, 0x0B, 0x75, 0x16, 0xA6, 0xE0, 0x93, 0x4D, 0xBF, 0xDD, 0xD9, 0x9B, 0x73, 0xA3, 0xE5, 0x66, 0x93, 0xA6, 0x50, 0x56, 0xF7, 0x83, 0x6A, 0x4C, 0x67, 0xFE, 0xFB, 0x51, 0x89, 0x91, 0xF8, 0x3D, 0x73, 0xFF, 0x69, 0x67, 0x6B, 0x2D, 0xA8, 0x0E, 0xA7, 0xFC, 0x71, 0xCB, 0xB6, 0x63, 0x73, 0x19, 0x5B, 0x63, 0x73, 0xAB, 0x26, 0x95, 0xE5, 0x95, 0xAF, 0x5A, 0x5D, 0xB6, 0x2C, 0xAF, 0x7C, 0x21, 0x25, 0xB6, 0x4D, 0x5E, 0xF7, 0xC3, 0x82, 0xC1, 0xB4, 0x71, 0x3B, 0x68, 0x3F, 0x6D, 0x1F, 0x4C, 0x4B, 0x4C, 0x8C, 0xCC, 0xA6, 0x42, 0xFF, 0xAE, 0x15, 0xFE, 0x5D, 0x2B, 0xFC, 0xB7, 0x6A, 0x05, 0x25, 0xD0, 0x51, 0x8E, 0x80, 0xFC, 0x8A, 0xEC, 0xC7, 0x58, 0xA0, 0x17, 0x01, 0x7D, 0xE3, 0x9D, 0x90, 0xDF, 0xFB, 0x7F, 0xDE, 0x76, 0x40, 0xE2, 0xED, 0x77, 0x50, 0x72, 0xBA, 0x29, 0xE7, 0xF1, 0xB6, 0x4C, 0xA9, 0xFF, 0x2A, 0xC9, 0x0B, 0xB4, 0x49, 0xA6, 0x1D, 0xE7, 0xD7, 0x27, 0x11, 0x6C, 0x5B, 0x0A, 0x07, 0xFA, 0x11, 0x32, 0x6D, 0x94, 0x9F, 0x5A, 0x16, 0x73, 0x65, 0x01, 0x92, 0xA7, 0xA0, 0x84, 0x43, 0xB9, 0x26, 0xC8, 0x09, 0x29, 0xA6, 0x50, 0x71, 0x0A, 0x9E, 0x06, 0x9D, 0xF9, 0xC7, 0x9F, 0x57, 0x2E, 0x43, 0xC4, 0xF3, 0x36, 0xAD, 0xE7, 0x9B, 0xB8, 0xAE, 0x7B, 0xEB, 0x1D, 0xB7, 0xF8, 0xDA, 0x99, 0xB7, 0xD7, 0xBE, 0x6C, 0xE0, 0x5A, 0xCA, 0x2E, 0x39, 0x6E, 0xF3, 0x61, 0xFE, 0x8F, 0xF7, 0xFF, 0xCC, 0x5A, 0x86, 0xF4, 0x35, 0xDC, 0xAB, 0x49, 0x4C, 0xB3, 0xDC, 0x4E, 0x99, 0x5C, 0xBD, 0x0C, 0xF9, 0xF9, 0x83, 0x5D, 0xF7, 0x12, 0xD3, 0x20, 0x9D, 0x90, 0xFE, 0x11, 0x14, 0x8E, 0x32, 0x20, 0x1D, 0x21, 0x44, 0xD7, 0x0B, 0x51, 0xC5, 0xD8, 0x01, 0x69, 0xB0, 0x89, 0x1F, 0x01, 0xD1, 0x75, 0x5A, 0xFE, 0x2B, 0x3B, 0x5F, 0x52, 0xA9, 0xA0, 0x95, 0xE1, 0x2A, 0x33, 0x24, 0xA4, 0xA3, 0x2A, 0x88, 0x99, 0x8B, 0xBD, 0x90, 0x86, 0x3A, 0xED, 0xF5, 0x52, 0x8A, 0x46, 0xC8, 0xAF, 0x97, 0x46, 0x37, 0x69, 0x11, 0xE6, 0x47, 0x12, 0x9A, 0x87, 0xC1, 0x5E, 0x02, 0x5D, 0x18, 0x3A, 0x2C, 0x0D, 0xF1, 0x30, 0x30, 0x39, 0x04, 0xD9, 0xEB, 0x41, 0xEE, 0xF7, 0x30, 0x90, 0x30, 0x0B, 0x35, 0x7F, 0xB7, 0x87, 0xF6, 0xDA, 0xEB, 0xB5, 0x30, 0x60, 0x80, 0x59, 0x15, 0xA8, 0x05, 0x57, 0x11, 0xE4, 0x5A, 0xAA, 0xB8, 0x59, 0x3A, 0xDE, 0xC4, 0xE7, 0x03, 0x3A, 0x58, 0xC4, 0x2A, 0x50, 0x30, 0xC3, 0x51, 0x14, 0xF0, 0x94, 0x74, 0x39, 0x04, 0x26, 0x87, 0x1B, 0x7E, 0x42, 0x83, 0x7E, 0x86, 0xF3, 0x94, 0x34, 0x79, 0x38, 0x33, 0x8E, 0x5B, 0x89, 0xC7, 0xEF, 0xC5, 0x79, 0xDA, 0xD1, 0x41, 0xD5, 0x7F, 0x67, 0xD0, 0x4A, 0x93, 0xC7, 0x81, 0xC1, 0x3A, 0x3C, 0x7E, 0xDF, 0x3F, 0x0D, 0x88, 0xC6, 0x90, 0xDD, 0xB6, 0xB0, 0x9C, 0x24, 0xAD, 0x17, 0x85, 0x7E, 0xF8, 0x6A, 0x2D, 0x2F, 0xFB, 0x00, 0x6D, 0x1C, 0xBE, 0x62, 0xCC, 0x3C, 0x42, 0x0B, 0xE9, 0xB8, 0x7A, 0x2A, 0x24, 0xC5, 0xFB, 0x1C, 0xB0, 0x7F, 0xC2, 0x07, 0xFC, 0xB9, 0x74, 0x43, 0x7F, 0x5D, 0x78, 0x92, 0xFE, 0x8A, 0x41, 0xC9, 0x2F, 0x91, 0xE8, 0xE2, 0xDA, 0x44, 0xAE, 0xFE, 0xBA, 0x3B, 0x3E, 0x4E, 0x0B, 0x45, 0x59, 0x20, 0x48, 0x13, 0xD1, 0x27, 0xC4, 0x18, 0x5B, 0x22, 0x31, 0x74, 0x42, 0xDD, 0x22, 0x2C, 0x2B, 0x9C, 0x1F, 0xA3, 0x80, 0x30, 0x44, 0x7F, 0x3E, 0x44, 0x25, 0xF5, 0x46, 0x96, 0xB8, 0xF4, 0xE5, 0x80, 0x5C, 0x13, 0xD8, 0x2D, 0xBD, 0x17, 0x4C, 0xC9, 0x7E, 0x26, 0x44, 0x87, 0x30, 0x76, 0x10, 0x06, 0x8B, 0xA0, 0x3C, 0x8B, 0xBE, 0x69, 0x2A, 0x62, 0x7D, 0x60, 0x67, 0x5F, 0x17, 0xF1, 0x13, 0x84, 0x3A, 0x39, 0x94, 0xB9, 0xD6, 0x18, 0x32, 0x4A, 0x7B, 0x77, 0x6C, 0x85, 0x92, 0xA3, 0xFB, 0x9D, 0xD0, 0xAB, 0x8A, 0xA4, 0x55, 0xF5, 0x4A, 0x37, 0x8E, 0x05, 0xB4, 0x56, 0xF4, 0xB1, 0x9B, 0xF6, 0xA7, 0x0E, 0xFD, 0xB5, 0x14, 0x40, 0xDB, 0xEF, 0x3D, 0xE4, 0xA6, 0x5D, 0xB1, 0xD7, 0x43, 0xCB, 0x88, 0xE8, 0xD4, 0xFA, 0x50, 0xCA, 0x0B, 0x6B, 0x6B, 0x48, 0xDA, 0x43, 0x8F, 0xA4, 0x1B, 0x43, 0x01, 0xAD, 0x84, 0xF6, 0xB3, 0x9B, 0xB6, 0xF6, 0xAE, 0xFE, 0xDA, 0x4C, 0x40, 0x0B, 0xFB, 0xFC, 0xEC, 0xA6, 0xDD, 0xF8, 0xD2, 0x43, 0x3B, 0x3E, 0xD2, 0xD5, 0xEA, 0xA7, 0x5B, 0x63, 0xF5, 0xDA, 0x42, 0xD2, 0x3E, 0x91, 0xC8, 0xBA, 0x49, 0xDA, 0x1E, 0x5A, 0x38, 0x77, 0x94, 0xD6, 0x1F, 0x0D, 0x17, 0xF9, 0xFB, 0xC2, 0xE2, 0x6A, 0xBA, 0x57, 0x23, 0xBD, 0xCE, 0xBB, 0xBE, 0x0F, 0x83, 0xC2, 0xF5, 0xDB, 0x34, 0x76, 0xB5, 0xDC, 0xEA, 0x4B, 0xE0, 0x17, 0x70, 0xBA, 0x5D, 0x0C, 0xC7, 0x28, 0x62, 0x76, 0xD3, 0xC2, 0xC2, 0xE5, 0x5E, 0x11, 0xD2, 0xC8, 0x26, 0xC3, 0xCE, 0x90, 0xB3, 0x08, 0xFD, 0x1E, 0x47, 0xA5, 0x2A, 0x60, 0x6C, 0xD4, 0x6E, 0xD4, 0xA6, 0xD7, 0x97, 0x46, 0x67, 0xFA, 0xE4, 0xAB, 0x26, 0xE2, 0x16, 0x1D, 0x3C, 0xA1, 0x8D, 0x11, 0x58, 0x62, 0xAE, 0xDD, 0x09, 0x51, 0x7F, 0xA4, 0x9A, 0x21, 0xA9, 0x57, 0x92, 0x34, 0x60, 0x08, 0xA1, 0x1F, 0x0C, 0x2A, 0x09, 0x13, 0xA6, 0xB1, 0x39, 0x10, 0x62, 0xD7, 0xBC, 0x64, 0x34, 0x76, 0x79, 0x7D, 0x02, 0x64, 0x41, 0x82, 0x28, 0xDC, 0x45, 0x66, 0x89, 0x57, 0x4A, 0x69, 0x40, 0x86, 0xD0, 0x2A, 0x11, 0xCF, 0xC3, 0x55, 0x16, 0x32, 0x88, 0x16, 0x2E, 0xB1, 0x76, 0x24, 0x21, 0x93, 0x95, 0x3E, 0xAA, 0x98, 0x5D, 0x18, 0x14, 0x14, 0x5A, 0x21, 0x12, 0x1F, 0x54, 0x52, 0xC3, 0x30, 0xC4, 0xE6, 0xB0, 0x8B, 0x25, 0x44, 0xA6, 0x50, 0xC7, 0x8C, 0x68, 0xB3, 0x89, 0x2F, 0xE9, 0xBC, 0x91, 0x80, 0xC3, 0x5F, 0x33, 0xD2, 0xD8, 0x7E, 0x80, 0x2D, 0xB1, 0x75, 0xD3, 0x2E, 0xC2, 0x08, 0x8D, 0xFB, 0x45, 0xF9, 0x4E, 0x1A, 0x8F, 0x42, 0xDC, 0xD1, 0x27, 0xB5, 0x79, 0x25, 0x16, 0x49, 0x10, 0x1D, 0xD4, 0xF4, 0x43, 0x40, 0x2E, 0x9C, 0xA3, 0xB1, 0xB5, 0x49, 0x10, 0x7F, 0xB5, 0x02, 0xCE, 0xD9, 0xED, 0x95, 0x07, 0x51, 0x58, 0xF7, 0xBE, 0x43, 0xC2, 0x51, 0x26, 0x88, 0x4D, 0xFC, 0xF1, 0xD7, 0xEF, 0xBA, 0xE4, 0xC2, 0x80, 0xF1, 0xF3, 0xC7, 0xEC, 0x63, 0xC0, 0xD6, 0xC7, 0xCA, 0x90, 0x21, 0x07, 0x1B, 0x98, 0x41, 0x82, 0x69, 0x32, 0xA9, 0x67, 0x85, 0xAC, 0xA7, 0x14, 0x64, 0xD0, 0x2B, 0xAC, 0xCD, 0xC6, 0xB6, 0x50, 0xFE, 0x98, 0xC4, 0xBA, 0x05, 0x21, 0x01, 0xAF, 0x5E, 0xEF, 0x19, 0xDB, 0x70, 0x12, 0xDA, 0xA0, 0x79, 0x27, 0xFF, 0xBB, 0xC9, 0x23, 0x7B, 0x52, 0x53, 0x9E, 0x7B, 0x05, 0x03, 0xA3, 0x6A, 0x85, 0x50, 0x00, 0x6D, 0x1F, 0xAC, 0xEF, 0xAF, 0x23, 0xE2, 0x6D, 0xC4, 0x76, 0x7B, 0xB4, 0xAE, 0xC1, 0xE7, 0x67, 0x2C, 0xB0, 0x55, 0xAA, 0x15, 0x25, 0xCC, 0x78, 0xD0, 0x5E, 0x68, 0x42, 0xBD, 0xEA, 0x5C, 0xCF, 0x6D, 0x3E, 0x07, 0xE6, 0x07, 0xFA, 0xF1, 0x55, 0x77, 0xE4, 0x33, 0x77, 0x77, 0x2E, 0x57, 0x10, 0xF5, 0x0D, 0x3E, 0x61, 0x5B, 0x02, 0x8F, 0x8C, 0x80, 0x4C, 0x1D, 0x2B, 0xCE, 0x8E, 0x80, 0x24, 0xBE, 0x47, 0xB8, 0x41, 0x23, 0xA0, 0xD9, 0x67, 0x3B, 0x8B, 0x00, 0x68, 0xB1, 0x6E, 0x99, 0x45, 0xD5, 0x5C, 0x2B, 0x2F, 0x62, 0xB3, 0x9E, 0xC0, 0x88, 0xFF, 0xB5, 0xDA, 0x6C, 0x2B, 0x53, 0x68, 0x15, 0x26, 0x7A, 0x8C, 0xC7, 0xAB, 0x32, 0x75, 0xCE, 0x43, 0x0E, 0x5E, 0x09, 0x38, 0x4D, 0x1A, 0xEF, 0x19, 0x73, 0x2D, 0xAC, 0x67, 0xB2, 0xAD, 0xB6, 0xD7, 0xEB, 0x0B, 0xD7, 0x5A, 0xD0, 0x6C, 0xE4, 0x3F, 0x44, 0x63, 0xCE, 0x91, 0xEB, 0x69, 0xAC, 0x6A, 0xB0, 0x1E, 0x60, 0x25, 0xA6, 0x7B, 0xD6, 0x1B, 0xD7, 0x9D, 0x4C, 0x5B, 0x8C, 0x58, 0x4B, 0xC7, 0xDC, 0x21, 0xD7, 0xFD, 0x37, 0xD0, 0xC4, 0xD5, 0xC3, 0x1B, 0x1E, 0xD3, 0xA3, 0xF1, 0x8E, 0x7A, 0x98, 0x4C, 0x17, 0xC1, 0x3F, 0x4A, 0x83, 0x96, 0xF5, 0x01, 0xDB, 0xD1, 0x81, 0xED, 0xD4, 0x3D, 0xE9, 0xC5, 0xF5, 0x5A, 0x5F, 0x13, 0x5F, 0x08, 0x0E, 0xBC, 0x7D, 0x7E, 0xE8, 0x17, 0x5C, 0x34, 0x0D, 0x2F, 0x92, 0xF8, 0x69, 0xA1, 0x6B, 0xB5, 0x63, 0xAD, 0x0F, 0x94, 0xE2, 0xAB, 0xE1, 0x16, 0x1B, 0xE6, 0xC6, 0x0E, 0x18, 0x4B, 0x76, 0xC3, 0xFE, 0x6E, 0x6C, 0x6B, 0xE8, 0x7F, 0x2A, 0x51, 0x05, 0xAE, 0xD2, 0x90, 0x7B, 0x7E, 0xB3, 0x7E, 0x38, 0x4D, 0x80, 0xDB, 0xAD, 0xF0, 0x7C, 0x84, 0xA2, 0xF8, 0x6D, 0xB5, 0xED, 0x38, 0xED, 0xF3, 0xAA, 0xCD, 0x1A, 0x8A, 0xDC, 0x8D, 0x7D, 0x1C, 0xDA, 0x57, 0x8A, 0x2E, 0x71, 0x63, 0x69, 0xF5, 0x06, 0xA3, 0x20, 0xDB, 0xEE, 0x16, 0x46, 0x14, 0x36, 0x36, 0x4F, 0xE8, 0xD5, 0x8E, 0xA6, 0x72, 0xE9, 0x92, 0x06, 0x7B, 0x8D, 0xED, 0xB8, 0xF1, 0xCB, 0xB6, 0x37, 0x28, 0xE7, 0x87, 0x0D, 0x1E, 0x43, 0x09, 0xCC, 0x3D, 0x52, 0x86, 0xFD, 0xD0, 0x8A, 0xE6, 0x78, 0xF6, 0xDC, 0x60, 0x49, 0x0F, 0x24, 0x46, 0xF7, 0x24, 0x96, 0xF7, 0x85, 0xE2, 0xFC, 0x12, 0xFA, 0x53, 0x2A, 0x3B, 0x5F, 0x60, 0x0E, 0xB7, 0xAE, 0x85, 0xB8, 0x7C, 0x76, 0x22, 0x72, 0x0E, 0x46, 0x4F, 0xB0, 0x19, 0x5C, 0xA7, 0x6F, 0x34, 0xD5, 0xBF, 0xFD, 0x4C, 0x3D, 0xFC, 0x8F, 0x88, 0x13, 0xC8, 0x05, 0xC9, 0xD7, 0x7D, 0x33, 0x33, 0xAB, 0x6B, 0x22, 0x87, 0x69, 0xDF, 0xF6, 0x84, 0xE6, 0xCB, 0x3F, 0xD0, 0xD8, 0x74, 0x30, 0x32, 0x66, 0x51, 0xE5, 0xAA, 0xF9, 0x3B, 0x19, 0x47, 0xE1, 0x50, 0xDE, 0xEF, 0xA8, 0x33, 0xC2, 0x51, 0x1A, 0xD0, 0x77, 0xF8, 0x74, 0xFD, 0x87, 0xFB, 0xD1, 0x4D, 0xA6, 0x28, 0xC4, 0x56, 0xA8, 0xC3, 0xB2, 0x45, 0x5D, 0xDF, 0x18, 0x64, 0x60, 0xC9, 0x07, 0x2C, 0x99, 0xBF, 0xCD, 0xF8, 0xD0, 0xD6, 0xB9, 0x92, 0x0E, 0x57, 0x69, 0xD2, 0xD7, 0x0F, 0xA4, 0x7F, 0xF4, 0xAA, 0xB3, 0x50, 0x06, 0x99, 0xA2, 0xE8, 0xF6, 0x42, 0x87, 0xD0, 0x14, 0x85, 0xB5, 0x5F, 0x37, 0x5E, 0x31, 0x73, 0x05, 0x02, 0x70, 0x8E, 0x55, 0xD0, 0x17, 0x33, 0xCC, 0x9D, 0xA6, 0xDE, 0x2E, 0x2B, 0xCC, 0xF5, 0xA3, 0x5A, 0x7F, 0x6A, 0x8D, 0x2F, 0x1C, 0x48, 0x03, 0xC1, 0x69, 0xE1, 0x6B, 0x8E, 0xF8, 0x1C, 0x9C, 0x1F, 0x1E, 0x13, 0x0B, 0x42, 0xFC, 0x6B, 0x48, 0xFC, 0x61, 0x92, 0x77, 0xD0, 0xEF, 0xA3, 0xDB, 0x3A, 0xD5, 0xA9, 0xE6, 0xB1, 0xDD, 0x89, 0x17, 0x7A, 0x70, 0x2D, 0xE3, 0xAE, 0xE8, 0xD3, 0xC5, 0x94, 0xC2, 0x24, 0x55, 0x86, 0xCF, 0xF7, 0x2D, 0x79, 0x55, 0xBB, 0x89, 0x0E, 0x1B, 0x24, 0xC1, 0xD8, 0xE2, 0xD8, 0xF1, 0x5C, 0x07, 0xE5, 0x27, 0xF3, 0xE5, 0xD1, 0x64, 0x9C, 0x9D, 0x2F, 0x0B, 0xD3, 0x7A, 0xDD, 0x17, 0x85, 0xB2, 0xAE, 0x53, 0x67, 0x9C, 0x40, 0xCC, 0x91, 0xF7, 0xE1, 0x4F, 0xB9, 0x54, 0x32, 0x49, 0x5A, 0xAF, 0xE5, 0xCE, 0xA2, 0xB0, 0x5C, 0xF2, 0x19, 0x01, 0x56, 0x5A, 0x4D, 0x3E, 0xC3, 0xA2, 0xFD, 0xB8, 0x5B, 0xE5, 0x97, 0x5E, 0x35, 0x09, 0x2F, 0xB9, 0xD3, 0x5E, 0xD2, 0x7C, 0x5E, 0x30, 0x1A, 0xE6, 0x6E, 0x7D, 0xFE, 0x78, 0x7E, 0x53, 0x5B, 0xFA, 0x3A, 0x75, 0xCB, 0xFA, 0xA1, 0x6F, 0x4C, 0xBB, 0xCF, 0x37, 0x0C, 0x7C, 0xF3, 0x96, 0x3E, 0xB4, 0x5B, 0x04, 0x2F, 0xC1, 0xA3, 0xCF, 0xD3, 0xB4, 0x96, 0x8E, 0xF3, 0x6E, 0x7D, 0xEC, 0x89, 0xBD, 0x11, 0xF3, 0x3C, 0xFA, 0x7C, 0xF5, 0x38, 0x6A, 0xA5, 0x47, 0x1F, 0xC8, 0x27, 0x69, 0x2D, 0x95, 0x79, 0x28, 0x26, 0x98, 0x6B, 0xAA, 0x7F, 0x72, 0x31, 0x36, 0x63, 0x3E, 0xE1, 0xA8, 0xEF, 0x2A, 0xD8, 0x6E, 0x09, 0xFC, 0x98, 0x9F, 0x96, 0xFA, 0x22, 0x5F, 0xD0, 0x36, 0x9E, 0x1F, 0x83, 0x83, 0xEC, 0x46, 0xBD, 0xF0, 0xEE, 0x7A, 0x83, 0x55, 0x93, 0x3A, 0x10, 0x37, 0x7A, 0x01, 0x05, 0xB4, 0x3D, 0xCF, 0x20, 0xA4, 0x1B, 0xBA, 0xBE, 0xD1, 0xF9, 0x6A, 0x2F, 0x8B, 0xA5, 0x79, 0xB3, 0x37, 0xD8, 0x0A, 0xDC, 0x9A, 0x2F, 0x18, 0xDF, 0x68, 0xA3, 0xF0, 0xB6, 0x6C, 0xF6, 0x8A, 0xA2, 0x7C, 0xBA, 0x58, 0xB7, 0xC2, 0xB2, 0xEF, 0x78, 0x58, 0x9E, 0x6F, 0x1B, 0xCB, 0x74, 0xF3, 0xB9, 0x24, 0xD4, 0xE2, 0xCB, 0x04, 0x41, 0x24, 0xA4, 0xDB, 0xEA, 0xED, 0x54, 0x60, 0x96, 0xDC, 0xDF, 0x6F, 0x8D, 0x8A, 0x88, 0x0D, 0x03, 0xB7, 0x66, 0xBC, 0x2C, 0xBC, 0x78, 0xC1, 0x84, 0xD2, 0xD8, 0x70, 0x90, 0x1B, 0xF0, 0x5D, 0x42, 0x64, 0x1F, 0x43, 0x8F, 0xEF, 0x92, 0xB0, 0x3F, 0x08, 0xBD, 0xD7, 0xBE, 0x28, 0x2B, 0xCF, 0xA5, 0xA1, 0x6F, 0x84, 0x5D, 0x3F, 0x13, 0xA1, 0x9F, 0x1D, 0x9F, 0x00, 0xE8, 0x15, 0x6C, 0xDB, 0x75, 0xE3, 0x4B, 0xC9, 0xB6, 0xF7, 0x3C, 0xAA, 0xF6, 0xA5, 0x1F, 0x6A, 0xEA, 0x1E, 0x55, 0xF5, 0xA9, 0x68, 0xE6, 0xA2, 0x48, 0xFF, 0x11, 0x17, 0xF5, 0x84, 0x03, 0x17, 0xA9, 0x17, 0x6B, 0x19, 0x29, 0x61, 0xC0, 0x45, 0xC5, 0x49, 0xAA, 0x21, 0x2E, 0x70, 0x51, 0x97, 0xD5, 0xE3, 0xA2, 0x9C, 0xF3, 0x3C, 0x07, 0x25, 0x74, 0x8B, 0xC7, 0x45, 0x67, 0x74, 0xE3, 0xB4, 0x5E, 0x33, 0xC3, 0x42, 0x59, 0xEB, 0x11, 0xE0, 0xA2, 0x5D, 0x91, 0x33, 0x29, 0x1E, 0x17, 0xD5, 0x7C, 0xFF, 0x2E, 0x85, 0x65, 0x4B, 0x9D, 0x11, 0xA0, 0x61, 0x00, 0x17, 0x9D, 0x04, 0x2E, 0x3A, 0xEE, 0x97, 0xD5, 0x45, 0xBA, 0x48, 0xBE, 0x69, 0xA8, 0x7B, 0xD2, 0x3F, 0xB9, 0xA8, 0xE1, 0x02, 0xB0, 0xCC, 0x66, 0x9B, 0x63, 0xE2, 0xA9, 0x0D, 0x2D, 0xBB, 0x37, 0xFE, 0xE1, 0x70, 0x66, 0x8B, 0x3B, 0x32, 0x4D, 0x51, 0x6C, 0x47, 0x21, 0x25, 0xA6, 0xE8, 0x43, 0x35, 0x57, 0x0D, 0xEF, 0x00, 0x79, 0x36, 0x1A, 0x25, 0xEE, 0xB7, 0x6F, 0x32, 0xCC, 0x39, 0x0D, 0xE8, 0xA5, 0x31, 0xD0, 0x07, 0xA1, 0x44, 0x6A, 0x4E, 0xB7, 0x47, 0x55, 0x2C, 0xFC, 0xCE, 0x93, 0x89, 0xA3, 0xAA, 0x5E, 0xA5, 0x09, 0x44, 0x3B, 0x4A, 0x2D, 0x96, 0xC0, 0x76, 0xAE, 0x7D, 0x4F, 0xF4, 0x6D, 0x31, 0xF5, 0x4B, 0xAF, 0xA8, 0xDE, 0x0D, 0x40, 0x90, 0x73, 0xFD, 0xF5, 0xFD, 0xF3, 0x9A, 0x56, 0x6D, 0xB7, 0xDF, 0xD7, 0xB9, 0x05, 0x1D, 0xC8, 0xFB, 0x0D, 0x9D, 0x35, 0x9C, 0x3A, 0x63, 0xB4, 0x1A, 0x20, 0xAE, 0x6C, 0x3A, 0x8C, 0x04, 0x0C, 0x6C, 0xA8, 0x11, 0x77, 0xF1, 0x9E, 0x3B, 0x7D, 0x6B, 0xB6, 0x0F, 0x30, 0x6A, 0xD2, 0xD8, 0x6C, 0x90, 0x50, 0x6D, 0x8E, 0x1D, 0x39, 0x0C, 0x71, 0x0F, 0xEF, 0x45, 0xB6, 0x65, 0xDC, 0xF0, 0xCE, 0xC8, 0xE7, 0xE8, 0xD4, 0x09, 0x2B, 0x17, 0x4E, 0xB5, 0xFF, 0xA7, 0xED, 0x54, 0x83, 0x4F, 0xBE, 0x6C, 0xF2, 0x4F, 0xF8, 0x48, 0x42, 0x6F, 0x4E, 0x19, 0x60, 0xB1, 0xEB, 0x82, 0x74, 0x35, 0xB0, 0x7E, 0x31, 0x8A, 0x67, 0x83, 0xE4, 0x5A, 0x54, 0x36, 0xF9, 0x6F, 0x32, 0x32, 0x6F, 0x9E, 0x9C, 0x7D, 0x6E, 0x80, 0x45, 0xE6, 0xCD, 0xBE, 0xA8, 0x97, 0xC7, 0x27, 0x93, 0x79, 0xB3, 0xBD, 0xE5, 0xE9, 0x9C, 0xAF, 0x46, 0x92, 0x6B, 0xC5, 0x93, 0xC9, 0xE1, 0x72, 0x12, 0x74, 0x6D, 0x76, 0x57, 0x13, 0x9B, 0x04, 0x11, 0xE3, 0xC2, 0xCB, 0x63, 0x47, 0x40, 0x7B, 0x9A, 0xB2, 0xBA, 0x47, 0x92, 0x2B, 0xCE, 0x6F, 0xE3, 0xAF, 0x10, 0xB1, 0x73, 0xD8, 0x6C, 0x71, 0x15, 0x0F, 0x5B, 0x64, 0x9D, 0xA4, 0x12, 0x97, 0x4E, 0xC2, 0xDB, 0x24, 0x10, 0x8B, 0x18, 0xF4, 0x5C, 0x18, 0x7F, 0x31, 0x9D, 0xEB, 0xCA, 0xEC, 0x99, 0x3C, 0x40, 0x89, 0x03, 0x41, 0x41, 0xC4, 0x1C, 0x03, 0xEB, 0x7D, 0x10, 0x6B, 0xC5, 0xEB, 0xF5, 0xC7, 0xCE, 0xAF, 0x7A, 0x33, 0x85, 0xB1, 0x77, 0x17, 0x8C, 0xAC, 0x27, 0x3C, 0x06, 0xEB, 0x1A, 0x98, 0x55, 0xF1, 0x7A, 0xBD, 0xD6, 0xFB, 0xFC, 0x70, 0xA6, 0x3A, 0xF6, 0xD1, 0x5E, 0x72, 0x5D, 0xB1, 0xE0, 0x12, 0xC8, 0x5A, 0x4B, 0xAE, 0xEC, 0xFC, 0x35, 0x6B, 0xB5, 0x26, 0x4C, 0x94, 0xA3, 0xF3, 0x3C, 0x79, 0xEA, 0x86, 0xD5, 0xC9, 0x8F, 0xF6, 0xE4, 0xBB, 0xA2, 0x3F, 0xC5, 0xAA, 0x08, 0x64, 0x34, 0xDF, 0x29, 0x67, 0x52, 0x2F, 0x8C, 0xAD, 0xF0, 0x2A, 0xA2, 0x30, 0xD9, 0x31, 0xEE, 0xDC, 0xD8, 0xDB, 0xC1, 0x0E, 0x54, 0x78, 0xB0, 0xA5, 0xE1, 0x71, 0x05, 0x90, 0x97, 0x3B, 0xF9, 0x76, 0x5D, 0x74, 0x36, 0xC3, 0x3C, 0xE0, 0xD1, 0x59, 0x42, 0xE8, 0xFB, 0x2D, 0xDE, 0xE0, 0xB2, 0x1F, 0x73, 0x82, 0xF1, 0x6B, 0x52, 0xAF, 0x2C, 0x8F, 0x2B, 0xB4, 0x78, 0xB0, 0xBD, 0xDE, 0x97, 0x76, 0x6B, 0x3D, 0x89, 0x5A, 0x9B, 0x98, 0xBC, 0x0C, 0x5D, 0x30, 0x9A, 0xD4, 0xFD, 0x04, 0x6D, 0x80, 0x12, 0x1F, 0xF3, 0xC5, 0x1B, 0x94, 0x35, 0x7F, 0x8A, 0x2B, 0x82, 0x50, 0xCF, 0x9E, 0x1F, 0xDE, 0x89, 0x5B, 0x69, 0xF3, 0xF0, 0x79, 0x7E, 0xF1, 0x72, 0x1B, 0x1C, 0x30, 0xBA, 0xE7, 0x41, 0x74, 0x35, 0x15, 0xDC, 0x87, 0xC2, 0x12, 0x70, 0x1F, 0x4A, 0xD9, 0x0E, 0xA1, 0xF5, 0xCC, 0xA9, 0x20, 0x32, 0xC7, 0x96, 0x51, 0x41, 0x8E, 0x5D, 0x66, 0x41, 0x4E, 0x20, 0xB9, 0xB8, 0x22, 0xA6, 0x89, 0x12, 0xD8, 0x76, 0x93, 0xEF, 0xF4, 0x6D, 0xB2, 0x4B, 0xBE, 0xB6, 0x95, 0xE4, 0x0E, 0xD3, 0x0A, 0x14, 0xBA, 0xBF, 0x64, 0x30, 0x40, 0x6D, 0x62, 0xD9, 0x71, 0x76, 0x64, 0x53, 0x3B, 0x79, 0x24, 0x22, 0xDA, 0x4E, 0xC4, 0xC1, 0x4E, 0xC0, 0x58, 0x2E, 0x84, 0x56, 0x3F, 0x68, 0xB8, 0xC6, 0x05, 0x37, 0x46, 0xCD, 0xE3, 0x96, 0x11, 0x0B, 0x06, 0x03, 0xA1, 0xA5, 0x57, 0xA7, 0x12, 0xBC, 0x6B, 0x4E, 0x2B, 0x1C, 0x83, 0x50, 0x70, 0x95, 0x9A, 0x34, 0x4D, 0xF0, 0xBD, 0xB3, 0x0D, 0x5D, 0xE6, 0x4B, 0x20, 0x2F, 0x65, 0x13, 0xE3, 0xC2, 0xDA, 0x7E, 0xF8, 0xAD, 0x85, 0x02, 0x4F, 0x48, 0xDA, 0x33, 0x71, 0x0D, 0x23, 0xA4, 0x4D, 0xA2, 0x63, 0xA2, 0x56, 0xDB, 0x6A, 0x60, 0xF1, 0x3E, 0x12, 0x7A, 0xE9, 0xA1, 0xAB, 0xC1, 0x89, 0x54, 0x53, 0xFF, 0xEE, 0xBC, 0xFC, 0xCA, 0xE4, 0x3A, 0x75, 0x69, 0x74, 0x4F, 0xF5, 0xF1, 0xC6, 0x44, 0x71, 0xF9, 0xD4, 0x7D, 0x0C, 0x29, 0xDE, 0x0B, 0x4D, 0x80, 0x03, 0x9D, 0xB1, 0xE0, 0x27, 0x2F, 0x32, 0x9A, 0xEA, 0x6D, 0xDF, 0x72, 0x6E, 0x9F, 0xCD, 0x7A, 0x00, 0x0E, 0x94, 0xC6, 0x6B, 0x7F, 0x98, 0x6E, 0x05, 0xA5, 0x8D, 0xA8, 0x3C, 0xBA, 0x1D, 0x12, 0xDB, 0xF6, 0xF0, 0x4C, 0xFC, 0x24, 0xB2, 0x86, 0xE6, 0xCD, 0xB0, 0xB4, 0xC7, 0x49, 0xEF, 0x2E, 0x5A, 0xDE, 0x98, 0xB0, 0xBC, 0x3D, 0xE1, 0x54, 0xDC, 0x1C, 0x35, 0xFA, 0xEC, 0x7B, 0x0E, 0x19, 0xC4, 0x37, 0xC8, 0x20, 0x8E, 0x8F, 0xD6, 0xDB, 0x3A, 0x88, 0x35, 0x04, 0xDE, 0x8B, 0x3D, 0xE0, 0xF0, 0x9D, 0xB1, 0xFB, 0x61, 0x01, 0x82, 0xC6, 0x9E, 0xA2, 0xBA, 0x0B, 0x56, 0x4D, 0xB7, 0xB1, 0x84, 0x72, 0x43, 0x50, 0x82, 0xED, 0x84, 0xBC, 0xF3, 0x05, 0xD7, 0x08, 0x3F, 0xDD, 0x62, 0xDD, 0x14, 0x10, 0xA8, 0x83, 0x61, 0x7E, 0x59, 0x59, 0xDE, 0xEE, 0xB2, 0x2A, 0xFC, 0xD3, 0x6F, 0x1F, 0xEF, 0xEC, 0x15, 0xCC, 0xA5, 0x7B, 0x88, 0xAE, 0x7D, 0x56, 0x91, 0x1F, 0xC9, 0x2F, 0x51, 0xEC, 0xD4, 0x80, 0x5B, 0xCD, 0x25, 0x24, 0x89, 0x12, 0x00, 0xD1, 0xFA, 0xEF, 0x7C, 0x8A, 0x4C, 0x1E, 0xA2, 0x39, 0xA1, 0x2E, 0x41, 0xD0, 0x6D, 0x40, 0x04, 0x55, 0xEF, 0xFC, 0x11, 0xB6, 0x8F, 0xAA, 0x2A, 0x19, 0x3E, 0x31, 0x55, 0x0B, 0x44, 0x89, 0x83, 0x05, 0xCE, 0xD8, 0x53, 0xF6, 0x50, 0xE0, 0x9C, 0x55, 0xC0, 0x39, 0x03, 0xF2, 0x50, 0xF3, 0xCE, 0x20, 0xE0, 0xB3, 0x21, 0xD2, 0x67, 0x6A, 0x09, 0x4D, 0x2B, 0x7A, 0xE8, 0x91, 0xB0, 0xEF, 0x3B, 0xDA, 0x9A, 0xEB, 0x07, 0x3F, 0x04, 0x55, 0x90, 0x4D, 0x27, 0x45, 0xFC, 0x4F, 0x5D, 0x5E, 0x2C, 0xD4, 0xDA, 0x74, 0x2F, 0x92, 0xC1, 0x4F, 0x04, 0x32, 0x9F, 0x26, 0xBD, 0x3A, 0x31, 0x6D, 0x0D, 0x4F, 0xF3, 0xEE, 0x5D, 0x33, 0xE7, 0xAE, 0xF9, 0xD2, 0x5D, 0xE7, 0x65, 0x75, 0x3B, 0x75, 0x26, 0xA8, 0x2D, 0x31, 0x5A, 0x19, 0x96, 0xFD, 0xDE, 0xCC, 0x71, 0xFC, 0x18, 0x35, 0x99, 0xCB, 0xBF, 0xF9, 0x68, 0xDD, 0xB8, 0x55, 0x94, 0xC7, 0xC9, 0x21, 0x7F, 0x8A, 0x09, 0xF9, 0xD3, 0xEC, 0x3D, 0x3F, 0xEF, 0x8C, 0x34, 0xEB, 0xDD, 0xFC, 0x9F, 0xD0, 0x6A, 0x06, 0x3B, 0x01, 0x7F, 0x9D, 0x85, 0x32, 0xAC, 0xED, 0x47, 0x27, 0x40, 0xFA, 0xC5, 0x75, 0xC9, 0x16, 0xBD, 0xED, 0xD0, 0x2B, 0x8F, 0xD4, 0xEA, 0x5F, 0x16, 0xCE, 0xA8, 0xDA, 0x37, 0x93, 0x3C, 0x72, 0x76, 0x50, 0x21, 0x3E, 0xFB, 0x41, 0xFC, 0x5C, 0x42, 0xC0, 0xF4, 0x3D, 0x20, 0xAB, 0xC2, 0x20, 0xAB, 0xEE, 0xF6, 0x93, 0x85, 0x5E, 0x65, 0xDC, 0x48, 0xAF, 0x54, 0x8D, 0xAB, 0x54, 0x19, 0x2B, 0x25, 0x85, 0xDB, 0x35, 0x1C, 0x8F, 0xE5, 0x5A, 0x7F, 0x7A, 0xDC, 0xF2, 0x0A, 0x18, 0x41, 0xC3, 0xBC, 0x4E, 0xAB, 0x0B, 0x3A, 0x0E, 0x01, 0x7B, 0xDD, 0x13, 0xFA, 0x50, 0xA8, 0x7A, 0x5F, 0x8A, 0xB6, 0x38, 0x12, 0xF1, 0xE8, 0xB8, 0x28, 0x7A, 0x7D, 0xC6, 0x37, 0x06, 0x52, 0x47, 0x8A, 0x0C, 0x09, 0xC0, 0x84, 0x6D, 0x50, 0xED, 0x25, 0x4A, 0x02, 0xA4, 0xF5, 0x7A, 0xA7, 0x02, 0x24, 0x3A, 0x1A, 0x80, 0xA8, 0x8B, 0xDA, 0xD6, 0xAB, 0xC6, 0xF5, 0x7C, 0x7A, 0xFB, 0x71, 0xC8, 0xED, 0xC7, 0x7B, 0x86, 0x97, 0xB7, 0xF6, 0xD7, 0xC5, 0x2B, 0x44, 0x78, 0x73, 0x9E, 0x55, 0x3F, 0x8D, 0x3E, 0x41, 0xD9, 0x7A, 0x02, 0xE2, 0x48, 0x08, 0x29, 0xDB, 0x23, 0x53, 0x70, 0x48, 0xF7, 0xA7, 0x37, 0x18, 0xAF, 0x0A, 0x6A, 0x3A, 0xD2, 0x6B, 0x3A, 0x3E, 0xAB, 0x51, 0x15, 0x6E, 0xEF, 0xF3, 0xC8, 0xF4, 0x1F, 0xA2, 0x5F, 0xD6, 0x86, 0xF8, 0x07, 0x02, 0x6F, 0x32, 0x9F, 0x03, 0x99, 0xFA, 0x84, 0x40, 0x61, 0x74, 0x7A, 0x97, 0xDE, 0xF6, 0x9D, 0xA5, 0x4E, 0xE2, 0x8E, 0xE9, 0xDD, 0x9C, 0x5A, 0xEC, 0xA1, 0xAB, 0x87, 0x8C, 0x69, 0xBC, 0xDE, 0xD6, 0x06, 0x21, 0xFE, 0x7D, 0x3D, 0x8B, 0x6D, 0x34, 0xA1, 0xD5, 0x62, 0xF4, 0xC4, 0xF2, 0xC7, 0x82, 0x6D, 0x8A, 0xE7, 0xC8, 0x84, 0xA7, 0x33, 0x1E, 0xDD, 0x99, 0xF1, 0x88, 0x37, 0x33, 0x25, 0x7E, 0x8E, 0x99, 0xD6, 0xEE, 0xBD, 0xD6, 0x22, 0x07, 0xC6, 0xB7, 0xD0, 0xAA, 0x31, 0xBF, 0x90, 0xE1, 0x9E, 0xF7, 0x08, 0x39, 0x21, 0x8D, 0xD6, 0xD8, 0x28, 0x31, 0x53, 0x3D, 0xEE, 0x5A, 0xB9, 0x5F, 0x36, 0xC8, 0x3B, 0x8B, 0x91, 0x27, 0xC0, 0xB9, 0xF9, 0xEF, 0xF5, 0x57, 0xC4, 0xF6, 0xB1, 0xA3, 0x27, 0x0B, 0x2E, 0x48, 0x7B, 0x07, 0x99, 0x31, 0x2D, 0x7E, 0x17, 0x86, 0xF8, 0x9F, 0xC4, 0xD8, 0x89, 0x06, 0x19, 0x84, 0x76, 0xD2, 0x0A, 0x10, 0xDD, 0x62, 0x74, 0xC6, 0x10, 0xD5, 0x9E, 0xD6, 0x6F, 0xF2, 0x08, 0x17, 0x1C, 0x74, 0xD1, 0xFC, 0xC2, 0x72, 0xC5, 0x2D, 0xDC, 0x46, 0x20, 0x5C, 0xDB, 0x95, 0xC5, 0x7D, 0xA0, 0x54, 0xED, 0x6B, 0xF0, 0x08, 0xC7, 0x19, 0xFB, 0x97, 0x9E, 0x57, 0xC8, 0x74, 0x3F, 0x99, 0x10, 0x91, 0x09, 0xE3, 0x65, 0xAB, 0xE2, 0xE7, 0x80, 0x1F, 0x25, 0xA3, 0x07, 0xEA, 0xE2, 0x16, 0xCE, 0xE7, 0x3E, 0x81, 0x0D, 0xE0, 0x86, 0x72, 0x87, 0xE4, 0xDA, 0x54, 0xF9, 0x21, 0xB0, 0x1F, 0x4E, 0x86, 0xE4, 0x59, 0x2D, 0x19, 0x92, 0x1F, 0x11, 0x7F, 0x90, 0xA4, 0x0B, 0xF9, 0x31, 0x49, 0x64, 0xE4, 0x70, 0x36, 0xAF, 0xCF, 0x58, 0x7F, 0xA3, 0x30, 0x5E, 0x44, 0x1F, 0xB5, 0x1F, 0xF4, 0x64, 0x5F, 0xF0, 0xD4, 0x16, 0xE2, 0x94, 0x96, 0xDE, 0x45, 0x6C, 0x6F, 0xF5, 0x96, 0x88, 0x9A, 0x23, 0xE9, 0x5E, 0x17, 0x6A, 0xA7, 0x53, 0xC0, 0xAF, 0x1A, 0x1B, 0xAB, 0x10, 0xBF, 0x60, 0x45, 0xF7, 0x62, 0x4E, 0x5F, 0x13, 0x05, 0xED, 0x80, 0xDE, 0x05, 0xBF, 0xDF, 0x3F, 0x40, 0x93, 0xE9, 0x83, 0xC4, 0x05, 0x82, 0x66, 0x0F, 0x2E, 0x12, 0xFC, 0x2C, 0x6C, 0xD6, 0xBF, 0x23, 0x8F, 0x46, 0xCA, 0xAD, 0x79, 0x92, 0x5A, 0x82, 0xF3, 0x05, 0xFB, 0x30, 0xE6, 0xB4, 0x6F, 0x57, 0x06, 0xE8, 0x92, 0x5D, 0xB1, 0xBD, 0x32, 0x9C, 0xF6, 0x01, 0x5A, 0x4D, 0x82, 0x21, 0x5F, 0x12, 0xFC, 0x9B, 0x30, 0x00, 0xD6, 0xCF, 0x25, 0xC1, 0xAE, 0x0D, 0x24, 0x38, 0x85, 0x0B, 0xC0, 0xFD, 0xE3, 0x48, 0xB0, 0x61, 0x16, 0x00, 0xD7, 0x1D, 0x23, 0xC1, 0x8A, 0x00, 0x12, 0x7C, 0x89, 0x04, 0xCB, 0x97, 0x90, 0xE0, 0xE1, 0x4D, 0x24, 0x78, 0x2F, 0x09, 0x6E, 0x8D, 0x27, 0xC1, 0xFB, 0xD3, 0x48, 0xCE, 0xD7, 0x47, 0x38, 0x07, 0x91, 0xE0, 0xFC, 0x70, 0x00, 0x6E, 0x2F, 0x26, 0xC1, 0x43, 0x9B, 0x6D, 0x00, 0x1C, 0xEB, 0x0B, 0xC0, 0xA2, 0x2C, 0xCA, 0x34, 0x57, 0xAC, 0x6B, 0x36, 0xC9, 0x79, 0x01, 0xE3, 0x01, 0x71, 0xC1, 0x32, 0x91, 0x04, 0x5F, 0x8D, 0xB4, 0x02, 0x31, 0xBE, 0x22, 0xC1, 0xFC, 0x9D, 0x24, 0xE7, 0x48, 0x1E, 0x29, 0x46, 0xEE, 0x08, 0xE7, 0x2C, 0x12, 0xBC, 0x8D, 0x01, 0x38, 0xF7, 0xC4, 0x92, 0xE0, 0xDF, 0x45, 0x91, 0x62, 0x38, 0x49, 0x70, 0x52, 0x0B, 0x09, 0x5E, 0x49, 0x82, 0xED, 0xC5, 0x24, 0xB8, 0x6B, 0x2E, 0x09, 0x3E, 0x43, 0x82, 0xCD, 0x89, 0x24, 0xF8, 0x39, 0x09, 0xA6, 0x0E, 0x91, 0x60, 0xF5, 0x1E, 0x12, 0x6C, 0x25, 0xC1, 0xDA, 0x4A, 0x12, 0xEC, 0x9A, 0x87, 0xFF, 0xFA, 0xA6, 0x0D, 0xFC, 0x46, 0x4F, 0xFE, 0xE9, 0x50, 0xB0, 0xB4, 0x5C, 0x59, 0xAC, 0x2E, 0xCA, 0x2B, 0x7B, 0xEB, 0x5D, 0x1C, 0xEA, 0x1B, 0xEF, 0xFF, 0xC0, 0x23, 0xB8, 0xE5, 0x25, 0x4B, 0x97, 0x17, 0x17, 0xC4, 0xBE, 0x85, 0x7B, 0xF3, 0xBD, 0x20, 0x0F, 0x4E, 0xBD, 0xBA, 0x22, 0xE6, 0xED, 0xF7, 0x93, 0x28, 0x6F, 0xBC, 0xEF, 0x33, 0x8A, 0x5B, 0x93, 0xB7, 0xBC, 0xA0, 0xB0, 0xA2, 0xFC, 0x2D, 0x1C, 0xED, 0xFF, 0xC2, 0xA9, 0x96, 0x2B, 0xCB, 0xF3, 0xDE, 0x86, 0xBD, 0x7E, 0xAF, 0xE9, 0x57, 0x9C, 0xFB, 0x1F, 0xF2, 0x7F, 0xF1, 0x6E, 0x14, 0xFD, 0x0D, 0xDC, 0x7F, 0x01, 0x9D, 0x8E, 0xD3, 0x1E -}; diff --git a/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.spv.inl b/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.spv.inl deleted file mode 100644 index 642474e0b..000000000 --- a/internal/shaders/output/convolution_concat_64_3_64_fp16.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_3_64_fp16.comp.spv */ -const int internal_shaders_output_convolution_concat_64_3_64_fp16_comp_spv_size = 4701; -const unsigned char internal_shaders_output_convolution_concat_64_3_64_fp16_comp_spv[4701] = { - 0x78, 0xDA, 0x75, 0x5B, 0x09, 0x98, 0x55, 0xD5, 0x91, 0x7E, 0xE7, 0xDC, 0xA6, 0x9B, 0xA5, 0x35, 0xA2, 0x42, 0xB3, 0xC8, 0x2E, 0x8B, 0x2C, 0x82, 0x08, 0x0D, 0xDA, 0x20, 0x9B, 0x0D, 0xA8, 0x30, 0x66, 0x81, 0x06, 0x34, 0x0A, 0x62, 0x47, 0x01, 0x01, 0x93, 0x11, 0x30, 0x83, 0xA8, 0xA0, 0x51, 0x98, 0xA8, 0x71, 0xC1, 0x44, 0x4C, 0x24, 0x24, 0x01, 0x94, 0x45, 0x10, 0x22, 0x34, 0x6B, 0x33, 0xAC, 0x19, 0x65, 0x73, 0xC5, 0xCF, 0x80, 0x11, 0x62, 0x40, 0x24, 0x0A, 0x71, 0xC6, 0x25, 0x28, 0xA0, 0x73, 0xEA, 0xD6, 0x5F, 0xFD, 0xFE, 0x77, 0xC2, 0xF0, 0x7D, 0x97, 0xFB, 0xEA, 0xAF, 0xAA, 0xFF, 0x54, 0xD5, 0x59, 0xEE, 0x79, 0xE7, 0xDD, 0x4E, 0x7C, 0x8B, 0x82, 0x4C, 0xE2, 0x32, 0xB5, 0x32, 0xD5, 0x33, 0xA5, 0x79, 0x99, 0xF4, 0x5F, 0xED, 0x8C, 0xCF, 0x38, 0xDC, 0x6B, 0xE0, 0xFE, 0xBD, 0xDA, 0x99, 0x60, 0x93, 0x9F, 0xE2, 0x03, 0x06, 0xFD, 0x60, 0xD0, 0xA5, 0x77, 0x4D, 0x2A, 0xBF, 0xB4, 0x4B, 0xD7, 0x4E, 0x62, 0x7F, 0x6E, 0x26, 0x49, 0xFD, 0x44, 0xF7, 0x9D, 0x4C, 0x41, 0xA6, 0x5A, 0xB8, 0x0B, 0xD5, 0x84, 0x5B, 0xC6, 0x4E, 0x14, 0x7C, 0x58, 0xB8, 0x6E, 0x0C, 0xD7, 0x79, 0xC1, 0x3F, 0x2F, 0xE5, 0x93, 0xCF, 0x6A, 0x5F, 0x3D, 0x5C, 0x03, 0x83, 0x47, 0x1F, 0x6D, 0x3A, 0xD3, 0x02, 0x77, 0xC3, 0x1C, 0xB0, 0xF3, 0x08, 0xF3, 0xC0, 0xEA, 0x11, 0x96, 0x00, 0xBB, 0x88, 0xB0, 0x3C, 0x60, 0x4D, 0x09, 0xAB, 0x06, 0xEC, 0x62, 0xC2, 0xF2, 0x81, 0xB5, 0x21, 0xAC, 0x00, 0x58, 0x7B, 0xC2, 0xAA, 0x03, 0xEB, 0x44, 0x58, 0x0D, 0x60, 0xDD, 0x81, 0xF5, 0x8D, 0xF2, 0x18, 0x10, 0x22, 0xEB, 0x8B, 0x98, 0x07, 0x84, 0x88, 0xA4, 0x16, 0xB5, 0xC2, 0xD5, 0x00, 0xF2, 0x8D, 0x90, 0x1B, 0x42, 0x5E, 0x84, 0x78, 0x7C, 0xCA, 0x97, 0x97, 0x59, 0x0C, 0x9E, 0x0B, 0x22, 0xD9, 0x72, 0x5F, 0x7C, 0x96, 0xF6, 0x16, 0x53, 0x7B, 0x4B, 0xC3, 0xBD, 0x79, 0x95, 0x4E, 0xE5, 0x66, 0xC8, 0x45, 0xE4, 0x83, 0x51, 0x7B, 0x87, 0xA2, 0xF6, 0x0E, 0x45, 0xED, 0x1D, 0x3A, 0x4B, 0x7B, 0x87, 0xA8, 0xBD, 0x0F, 0xA2, 0xF6, 0x3E, 0x40, 0x7B, 0xA6, 0xEF, 0xE1, 0x72, 0xDB, 0xEB, 0xE9, 0x72, 0xDB, 0x33, 0xD9, 0xDA, 0x33, 0x99, 0xDB, 0x13, 0xCC, 0xF8, 0x7A, 0xB9, 0xDC, 0xF6, 0x44, 0x6E, 0x86, 0xFE, 0x13, 0xF9, 0x58, 0xA4, 0x3F, 0x06, 0x7D, 0x1E, 0xE4, 0xE3, 0x91, 0xFE, 0x38, 0xF4, 0x09, 0xE4, 0xBD, 0x3E, 0x37, 0xDE, 0xD7, 0x7C, 0x6E, 0xBC, 0x26, 0xD7, 0x47, 0xBC, 0x26, 0x73, 0xBC, 0x82, 0x59, 0xBC, 0x6F, 0xF8, 0xDC, 0xF6, 0x44, 0x6E, 0x56, 0x55, 0x73, 0x9F, 0xDA, 0x35, 0x0B, 0x3E, 0x09, 0xDA, 0xAC, 0x1B, 0x3E, 0xE5, 0x63, 0x0C, 0x37, 0x0D, 0xF6, 0x05, 0xC8, 0x2D, 0x3F, 0xB5, 0xCB, 0x4B, 0xFB, 0x31, 0x1F, 0x58, 0x9D, 0x20, 0x17, 0xC2, 0xD6, 0xC1, 0xFE, 0x1C, 0xE8, 0x0A, 0x53, 0xFB, 0xFC, 0x30, 0x57, 0xF5, 0xF3, 0x39, 0x74, 0xB5, 0x0B, 0x76, 0xF9, 0xA9, 0x7F, 0x26, 0xB3, 0xF9, 0xCC, 0x5B, 0x5D, 0x2F, 0x0C, 0x2D, 0xD7, 0x25, 0xBC, 0x51, 0xB8, 0x96, 0x5C, 0x3F, 0xFF, 0x2A, 0x93, 0x25, 0xFE, 0xB2, 0xE3, 0x49, 0x4F, 0x93, 0x5B, 0x85, 0xEB, 0xF0, 0xB2, 0x37, 0x7B, 0x99, 0x2C, 0xF3, 0xE8, 0xBE, 0xF7, 0xDF, 0xAB, 0xB2, 0x6F, 0x17, 0xAE, 0x1F, 0x6F, 0xEF, 0xBD, 0xC1, 0x64, 0x99, 0x3F, 0x47, 0xFA, 0x97, 0x56, 0xE9, 0x3B, 0x87, 0xEB, 0x50, 0xF3, 0x3D, 0x25, 0x26, 0x17, 0x87, 0xEB, 0xA9, 0x85, 0xF7, 0xA7, 0x7C, 0x12, 0x6B, 0x49, 0xB8, 0x7A, 0x23, 0xBF, 0x9E, 0xC8, 0x4F, 0xFE, 0x15, 0x05, 0xF9, 0xAA, 0x70, 0xEF, 0x89, 0xFE, 0x14, 0xB9, 0x17, 0x8D, 0x67, 0x91, 0x7B, 0x43, 0x2F, 0x72, 0xE3, 0xC0, 0x26, 0x73, 0x56, 0x7C, 0x7A, 0xA1, 0x0E, 0x7C, 0xE5, 0xE3, 0xDE, 0x1B, 0x57, 0x63, 0xCC, 0xDD, 0x3E, 0xA8, 0x65, 0x3F, 0xCC, 0xF7, 0xBE, 0x69, 0x4C, 0x2A, 0x5F, 0x0D, 0xCC, 0x62, 0x2D, 0x45, 0x6C, 0x26, 0xF7, 0x47, 0x6C, 0xE2, 0x3F, 0x00, 0xB6, 0x85, 0x88, 0xED, 0xFB, 0xF8, 0x9C, 0x40, 0x1E, 0x8A, 0x58, 0x13, 0xD8, 0x97, 0xA1, 0x1F, 0x87, 0xA2, 0xBD, 0x32, 0xAC, 0xA5, 0x8E, 0xE4, 0x1B, 0x21, 0x5B, 0x7B, 0x23, 0x51, 0x9F, 0x76, 0xA8, 0xD5, 0xA8, 0x28, 0x9E, 0x72, 0xD4, 0xC2, 0xF4, 0xE3, 0xC8, 0x5F, 0xE4, 0x3B, 0x49, 0x2F, 0xF6, 0x3F, 0x45, 0xCC, 0x12, 0xCF, 0x7F, 0xE0, 0x73, 0x4F, 0x8C, 0xCB, 0xB9, 0x58, 0x97, 0xCD, 0xF7, 0xB7, 0xC8, 0xF5, 0xA2, 0xF0, 0xFF, 0xBC, 0x70, 0x9F, 0x0B, 0x4C, 0xE4, 0xDF, 0x85, 0xFB, 0x3C, 0xF0, 0x0B, 0xD7, 0xEF, 0x31, 0x2E, 0x7F, 0x97, 0x8E, 0xAF, 0x24, 0x5D, 0xF7, 0xE6, 0xA2, 0xE6, 0xB2, 0x7E, 0x2D, 0x82, 0xDD, 0x12, 0xD4, 0x68, 0x31, 0x72, 0x16, 0x79, 0x29, 0x30, 0xD1, 0xBF, 0x84, 0xCF, 0x73, 0x21, 0xFF, 0x11, 0xBC, 0x73, 0x29, 0x87, 0x8A, 0xA8, 0x46, 0x5B, 0x64, 0x9C, 0x23, 0xAE, 0x03, 0xB0, 0xB5, 0xB8, 0xDE, 0x83, 0xFF, 0x01, 0xC4, 0x75, 0x90, 0xE2, 0x92, 0x75, 0xEE, 0x20, 0xEC, 0xFE, 0x8A, 0x76, 0x0F, 0x21, 0x2E, 0x91, 0x3F, 0x00, 0x66, 0xED, 0x7C, 0x14, 0xAE, 0x6F, 0xC3, 0x3F, 0xE1, 0x91, 0x75, 0xCF, 0x78, 0x64, 0xFD, 0x12, 0x59, 0x78, 0xAE, 0x72, 0xEA, 0x23, 0x58, 0x09, 0xE4, 0x5E, 0x2E, 0x97, 0xA7, 0x9F, 0xD3, 0x31, 0x61, 0xF2, 0x4D, 0x41, 0x9E, 0xEE, 0xB2, 0xF3, 0x73, 0xBF, 0xAE, 0x91, 0xBD, 0xDA, 0x87, 0xF5, 0x47, 0xC6, 0xF5, 0x01, 0xA7, 0xD8, 0x7E, 0xB4, 0xF1, 0x17, 0xA7, 0xFD, 0xD6, 0x2B, 0x5D, 0xA7, 0x6A, 0x64, 0x8E, 0x62, 0x0D, 0xC6, 0xD2, 0x5A, 0xF5, 0xCF, 0x64, 0xF1, 0xF9, 0x08, 0xC2, 0x51, 0xC4, 0x25, 0xF2, 0x31, 0x60, 0x0D, 0xC2, 0x08, 0xF9, 0x18, 0xDC, 0x9F, 0x00, 0xFB, 0x18, 0x76, 0x22, 0x1F, 0x07, 0xD6, 0x30, 0x44, 0xFD, 0x0F, 0xA7, 0x1C, 0x16, 0xEB, 0xFF, 0xBA, 0xEC, 0xDC, 0xFD, 0x0C, 0x79, 0xFA, 0xF4, 0x39, 0x5B, 0x2D, 0x95, 0x3F, 0x77, 0x5A, 0xB7, 0x8F, 0x60, 0xF3, 0x05, 0x62, 0xCD, 0x23, 0x9B, 0xC4, 0xAB, 0xBE, 0x94, 0xB0, 0xDA, 0xC0, 0x2A, 0x08, 0x6B, 0x02, 0xAC, 0x9C, 0x6A, 0xD7, 0x3D, 0x60, 0xBD, 0xBD, 0xCA, 0xD2, 0x1F, 0xDB, 0xB0, 0x5E, 0x4B, 0x1F, 0xC9, 0x5A, 0x6F, 0x7D, 0x24, 0x6B, 0xB6, 0xC8, 0x92, 0xE3, 0xEB, 0x5E, 0xE3, 0x14, 0xAC, 0x04, 0xF2, 0x1B, 0x3E, 0xEA, 0x6B, 0xAF, 0xCF, 0x54, 0x93, 0xFB, 0x84, 0x80, 0x7F, 0xEC, 0xB3, 0x72, 0xDF, 0x20, 0x7F, 0x97, 0xE4, 0x7E, 0x41, 0x1E, 0xE5, 0xB3, 0x75, 0xB9, 0x3A, 0xC8, 0x85, 0x3F, 0xF8, 0x6B, 0xBF, 0xE2, 0x10, 0xBB, 0x47, 0xBE, 0x19, 0xAC, 0x05, 0x27, 0x03, 0x52, 0x0D, 0xE3, 0x4C, 0xD6, 0xEB, 0xC7, 0x30, 0x46, 0x4D, 0xFE, 0x25, 0xC9, 0x32, 0xAF, 0xFE, 0x10, 0xC9, 0x0B, 0x23, 0xFB, 0xF5, 0x91, 0xFC, 0x2A, 0xC9, 0x32, 0xFE, 0xFF, 0x12, 0xE9, 0x8F, 0x44, 0xFA, 0x53, 0x91, 0x7C, 0x8E, 0xCB, 0x95, 0x9B, 0xB8, 0x5C, 0xFF, 0xCB, 0x23, 0xF9, 0xD6, 0x48, 0x5E, 0x17, 0xC9, 0x5B, 0x22, 0xBE, 0x23, 0x24, 0xCB, 0xFD, 0x64, 0xA4, 0x3F, 0x13, 0xE9, 0xF3, 0x7D, 0xAE, 0xBE, 0x96, 0xCF, 0xD5, 0x5F, 0x18, 0xE9, 0xEB, 0x47, 0xFA, 0xE6, 0x3E, 0x37, 0x9E, 0x4B, 0x22, 0x79, 0x58, 0x24, 0x2F, 0x8B, 0xE4, 0xD5, 0x91, 0x5C, 0x90, 0xE4, 0xCA, 0x17, 0x44, 0x72, 0x8B, 0x48, 0xEE, 0x17, 0xC9, 0x57, 0x47, 0x72, 0x69, 0x24, 0x0F, 0x89, 0xE4, 0xA1, 0x91, 0x5C, 0x16, 0xC9, 0x63, 0x23, 0x79, 0x5C, 0x24, 0xDF, 0x11, 0xC9, 0xF7, 0x45, 0xF2, 0xFD, 0x91, 0x3C, 0x3D, 0x92, 0x1F, 0x8F, 0xE4, 0x27, 0x22, 0xF9, 0xC9, 0x48, 0x5E, 0x10, 0xC9, 0x0B, 0x23, 0xF9, 0xF9, 0x48, 0x5E, 0x1D, 0xC9, 0x15, 0x91, 0xBC, 0x26, 0x92, 0x77, 0x46, 0xF2, 0xAE, 0x48, 0xDE, 0x0D, 0xF9, 0x9F, 0x61, 0xB6, 0x35, 0xC0, 0xC4, 0x3B, 0x15, 0x3E, 0xCB, 0xB3, 0xB3, 0x61, 0x9E, 0xCE, 0x3F, 0xB9, 0xF7, 0xC4, 0x33, 0x7A, 0x38, 0x9E, 0xC3, 0xD3, 0xF0, 0x0C, 0x1F, 0x01, 0xCC, 0xF4, 0x3F, 0xC4, 0x73, 0xD9, 0xF4, 0x37, 0x01, 0xFB, 0x5E, 0x98, 0xC5, 0x32, 0xF7, 0x47, 0xC3, 0x47, 0xFE, 0xFD, 0x0C, 0xD8, 0xAD, 0x78, 0x76, 0x8F, 0x26, 0xBB, 0xDB, 0xE0, 0xCB, 0x76, 0xB7, 0x63, 0x3D, 0x13, 0xDD, 0x74, 0x60, 0x63, 0xE0, 0x7F, 0x3B, 0xF9, 0x8E, 0x47, 0x1B, 0x8E, 0x7C, 0x27, 0x00, 0x2F, 0x27, 0xBB, 0x9F, 0xC0, 0xCE, 0x93, 0xDD, 0xBF, 0x03, 0x1F, 0x49, 0x76, 0x93, 0x10, 0x0B, 0xDB, 0x4D, 0xC6, 0xFE, 0x66, 0x12, 0xC5, 0x32, 0x05, 0xFE, 0x93, 0xD3, 0x7D, 0x53, 0x41, 0xBA, 0x67, 0x98, 0x8A, 0x7D, 0x52, 0x29, 0xF6, 0x13, 0xA3, 0x50, 0x2B, 0xD9, 0x33, 0xDC, 0x03, 0xFD, 0x34, 0xAC, 0x8B, 0xD3, 0x80, 0xBD, 0x14, 0xF8, 0x64, 0x0F, 0x7A, 0x2F, 0xF2, 0x9B, 0x96, 0xEE, 0x09, 0xF2, 0x52, 0xEC, 0x3E, 0xE0, 0xD2, 0x5F, 0xD3, 0x51, 0x9F, 0xAF, 0x83, 0x4E, 0xF0, 0xFB, 0xD3, 0x58, 0xB4, 0xCF, 0xEE, 0xA7, 0x18, 0x1E, 0x88, 0x62, 0x18, 0x47, 0x31, 0x3C, 0x08, 0xBD, 0xC5, 0xF0, 0x33, 0x60, 0x16, 0xC3, 0x43, 0xA8, 0x9D, 0xE0, 0x5F, 0x05, 0x5E, 0xE3, 0x97, 0xFB, 0x17, 0x81, 0x5F, 0x6C, 0x1E, 0x46, 0x4C, 0x32, 0x4E, 0x1E, 0x42, 0x1C, 0xE6, 0x3F, 0x0B, 0x75, 0x91, 0x7D, 0xEC, 0xF3, 0xC0, 0xFE, 0x13, 0x3E, 0xB3, 0x90, 0xC7, 0x23, 0x94, 0x87, 0xE8, 0x7E, 0x1E, 0xAE, 0x47, 0xD0, 0xCE, 0xCF, 0xD1, 0x6E, 0x03, 0x8C, 0xC5, 0x47, 0xD2, 0x3D, 0x6C, 0x92, 0x3E, 0x07, 0x4A, 0xA1, 0xFB, 0x05, 0x6C, 0x7F, 0x81, 0xBC, 0x24, 0x8F, 0xD9, 0x78, 0x56, 0xAC, 0x44, 0x9B, 0x4F, 0x03, 0x93, 0xFE, 0xFF, 0x32, 0xD8, 0x3C, 0x21, 0x73, 0x91, 0xDA, 0x15, 0xFD, 0xE3, 0x32, 0x5F, 0xC1, 0xF5, 0x38, 0xDA, 0xF9, 0x25, 0xB5, 0xF3, 0x2B, 0xE8, 0x7E, 0x45, 0xED, 0xFC, 0x06, 0xCF, 0x20, 0x6B, 0xE7, 0x39, 0x60, 0xFD, 0xD1, 0xCE, 0x9C, 0x70, 0x7F, 0x86, 0xDA, 0x79, 0x0E, 0xF2, 0x1C, 0x70, 0x3D, 0x43, 0x5C, 0xF3, 0x11, 0xB3, 0xC9, 0x0B, 0xC0, 0x6D, 0xE3, 0x6B, 0x39, 0x6A, 0xB9, 0x20, 0xED, 0xDB, 0xFC, 0x74, 0xFF, 0xB7, 0x02, 0x7B, 0xC2, 0x52, 0xE8, 0x7B, 0xE2, 0xD9, 0xBE, 0x12, 0x3A, 0xB1, 0x93, 0x7D, 0xE1, 0xCB, 0x78, 0x16, 0xCE, 0x87, 0xBF, 0xE4, 0xF6, 0x32, 0xEC, 0xCC, 0x66, 0x15, 0x9E, 0x9F, 0x6C, 0xB3, 0x0A, 0x36, 0x16, 0xD3, 0xEA, 0x28, 0xA6, 0x35, 0xC0, 0x2A, 0xA8, 0x5E, 0x6B, 0xA2, 0x7A, 0xCD, 0x81, 0xFC, 0x24, 0xE4, 0x27, 0x89, 0x6F, 0x2D, 0x72, 0x36, 0xBE, 0x75, 0xC0, 0x2A, 0xA8, 0x9F, 0xD7, 0x45, 0xFD, 0xFC, 0x04, 0x74, 0xEB, 0xA9, 0x6F, 0x36, 0x40, 0xB7, 0x81, 0xB8, 0x37, 0xE3, 0x79, 0x6F, 0x7D, 0xB3, 0x15, 0xD8, 0x16, 0xF4, 0x4D, 0x65, 0xB8, 0x6F, 0xA2, 0xBE, 0x11, 0xFD, 0xC6, 0x70, 0x55, 0x82, 0x6B, 0x23, 0x71, 0x6D, 0x07, 0xD7, 0x4C, 0xC4, 0xB9, 0x03, 0x58, 0x49, 0x3A, 0x56, 0x15, 0x7B, 0x85, 0x30, 0x89, 0xEF, 0x55, 0x8A, 0x6F, 0x27, 0x38, 0x77, 0x12, 0xE7, 0x6B, 0xD8, 0x7F, 0x58, 0x7C, 0xAF, 0x03, 0xB3, 0x31, 0xBA, 0x3B, 0xDC, 0xF7, 0x50, 0x7C, 0xA2, 0xDF, 0x25, 0x6B, 0x36, 0xB8, 0x76, 0x51, 0xDD, 0xDE, 0xC6, 0x5A, 0xB1, 0x83, 0xF8, 0xF7, 0x81, 0xDF, 0x6C, 0xDE, 0x81, 0xDD, 0x3E, 0xC2, 0xDE, 0x05, 0x5E, 0x41, 0xB9, 0xFD, 0x19, 0x78, 0x79, 0xBA, 0x36, 0x28, 0xB6, 0x1F, 0xB8, 0xD8, 0x2D, 0x41, 0xBC, 0x87, 0xB1, 0x36, 0x94, 0x62, 0x1E, 0x1F, 0xA5, 0x58, 0x45, 0xF7, 0x61, 0xB8, 0x8E, 0x21, 0xD6, 0x63, 0xC4, 0xF5, 0x31, 0xFC, 0xB8, 0xCD, 0x4F, 0x80, 0x97, 0xA3, 0x76, 0x47, 0x80, 0x49, 0xED, 0x8E, 0x82, 0xE3, 0x43, 0xD2, 0x7D, 0x14, 0xE9, 0x8E, 0x52, 0xDE, 0xC7, 0xB1, 0x6F, 0xB3, 0x1C, 0x4F, 0x00, 0xAB, 0xC0, 0x58, 0x97, 0xEF, 0xA2, 0xFF, 0xA0, 0x35, 0xB1, 0x9C, 0x7C, 0x3F, 0x85, 0xCE, 0xD6, 0xF9, 0xFF, 0x81, 0xFF, 0xA7, 0xC4, 0xF7, 0x19, 0xF0, 0xFD, 0x84, 0x7D, 0x0E, 0xBC, 0x82, 0x7C, 0xBF, 0xC0, 0x58, 0xF8, 0x9C, 0xEC, 0xFE, 0x09, 0xFC, 0x15, 0x9A, 0xC3, 0x27, 0xF1, 0xFD, 0xA9, 0x14, 0x7A, 0x9B, 0xC3, 0x5F, 0x41, 0xD7, 0x27, 0xF8, 0xFE, 0x31, 0xAD, 0xAB, 0xEE, 0x4F, 0xF7, 0xA1, 0x0E, 0x5F, 0xC3, 0xC6, 0x62, 0x3F, 0x8D, 0xFE, 0xB6, 0x9A, 0x7E, 0x8B, 0x3A, 0x97, 0x53, 0xFB, 0xF2, 0x50, 0xFC, 0x36, 0x8A, 0x33, 0x71, 0x8A, 0x73, 0x8E, 0xD5, 0x9C, 0xE2, 0x9C, 0x63, 0xBE, 0x53, 0x9C, 0x7D, 0x0B, 0x9C, 0xE6, 0x28, 0x3A, 0xB3, 0xAB, 0xE1, 0x14, 0xE7, 0x1C, 0x6B, 0xBA, 0x6C, 0x8E, 0xA2, 0xB7, 0x1C, 0x6B, 0x39, 0xD5, 0x59, 0x8E, 0x85, 0x4E, 0xF7, 0xD8, 0xA7, 0x91, 0xA3, 0xC8, 0xB5, 0x88, 0xFB, 0x3C, 0xF7, 0xAF, 0x63, 0xA7, 0xB6, 0x53, 0x9C, 0xF3, 0x3C, 0xDF, 0x29, 0xCE, 0xB1, 0xD6, 0x71, 0x8A, 0x73, 0x9E, 0x45, 0x4E, 0x71, 0xCE, 0xB3, 0x9E, 0x53, 0x9C, 0x7D, 0xEB, 0x23, 0xCF, 0x7A, 0x14, 0x4B, 0x43, 0xA7, 0x38, 0xE7, 0x79, 0x11, 0xE5, 0xD9, 0x90, 0xF2, 0x6C, 0xE4, 0x54, 0x67, 0x79, 0x36, 0x76, 0xFA, 0xDD, 0xC1, 0xF2, 0x14, 0xB9, 0x11, 0x71, 0x37, 0x77, 0xD9, 0xBE, 0xB3, 0x3C, 0x5B, 0x38, 0xC5, 0x39, 0xCF, 0x8B, 0x9D, 0xE2, 0x1C, 0x6B, 0x6B, 0xA7, 0x38, 0xE7, 0x79, 0x89, 0x53, 0x9C, 0xF3, 0x6C, 0xEB, 0x14, 0x67, 0xDF, 0x76, 0xC8, 0xB3, 0x2D, 0xC5, 0xD2, 0xC1, 0x29, 0xCE, 0x79, 0x5E, 0x4A, 0x79, 0x76, 0xA0, 0x3C, 0x3B, 0x3A, 0xD5, 0x59, 0x9E, 0x9D, 0x9C, 0x7E, 0x27, 0xB2, 0x3C, 0x45, 0x16, 0x1B, 0x99, 0xBB, 0x7B, 0x30, 0x77, 0xF7, 0xD0, 0x18, 0xBE, 0xCC, 0xE5, 0xAE, 0x59, 0x9D, 0x9D, 0x62, 0x15, 0xB4, 0xA6, 0x76, 0x76, 0xB9, 0x6B, 0xEA, 0x6E, 0xE8, 0xE4, 0xBB, 0x96, 0xAD, 0xB7, 0x5D, 0x9C, 0xEA, 0xBA, 0xB8, 0x2C, 0xF7, 0x15, 0x4E, 0xBF, 0x8F, 0xD9, 0x7A, 0x7B, 0xA5, 0x53, 0xCC, 0x9E, 0xD5, 0xC5, 0xE1, 0x73, 0x37, 0x97, 0x5D, 0xC3, 0x44, 0xDF, 0x35, 0x5C, 0xC5, 0xE0, 0xEA, 0x4A, 0x5C, 0x7D, 0xC0, 0x65, 0x71, 0xF6, 0x75, 0xFA, 0x6C, 0x16, 0xDC, 0x6A, 0xD9, 0xDF, 0x29, 0xDE, 0x27, 0x2F, 0xEB, 0x37, 0xD0, 0xE9, 0x73, 0xC4, 0xFC, 0xAE, 0x71, 0x6A, 0x37, 0xD0, 0x65, 0x6B, 0x7B, 0x2D, 0xCE, 0x41, 0x4A, 0xA1, 0xB7, 0xDA, 0x5E, 0xE7, 0x54, 0x67, 0xBE, 0xDF, 0x87, 0xEF, 0x16, 0xE2, 0x1B, 0xE2, 0x14, 0x67, 0xBE, 0xA1, 0xC4, 0x37, 0x84, 0xF8, 0xCA, 0x9C, 0xEA, 0xCC, 0xF7, 0x66, 0xF0, 0xDD, 0x44, 0xD8, 0x28, 0xA7, 0x38, 0xF3, 0xDD, 0x42, 0x7C, 0xA3, 0x88, 0x6F, 0xB4, 0x53, 0x9D, 0xF4, 0xC5, 0xAD, 0xD4, 0x17, 0xE5, 0xA8, 0x5F, 0x39, 0xD5, 0x6F, 0xAC, 0xD3, 0xEF, 0xC2, 0xD6, 0x17, 0xE3, 0x9C, 0x62, 0xF6, 0xEC, 0xBB, 0x2D, 0x7C, 0xFE, 0x11, 0xF5, 0xC5, 0x38, 0xC8, 0xB7, 0x81, 0xEB, 0x47, 0xC4, 0x75, 0x07, 0xB8, 0x4C, 0x1E, 0x8F, 0xBE, 0xB1, 0x31, 0x38, 0xD1, 0xE9, 0xBA, 0x79, 0x07, 0xC5, 0x7A, 0xA7, 0x53, 0xDC, 0xF6, 0x3E, 0x77, 0x39, 0xDD, 0xFB, 0x88, 0xCD, 0x78, 0xB2, 0x9B, 0xE4, 0x54, 0x57, 0x98, 0xA9, 0x9E, 0xCA, 0x93, 0x9D, 0x7E, 0xAF, 0xE8, 0x0C, 0x0E, 0xE9, 0x93, 0x49, 0xC8, 0x59, 0xEC, 0x26, 0x53, 0xBB, 0x53, 0xB1, 0x96, 0x71, 0xBB, 0xF7, 0x38, 0xC5, 0x4D, 0x9E, 0x1E, 0xF1, 0xCF, 0x20, 0x7E, 0xB1, 0x2D, 0xC3, 0x79, 0x97, 0xF1, 0xCF, 0x20, 0xFE, 0x87, 0xB1, 0x86, 0x30, 0xFF, 0x4C, 0xA7, 0xB8, 0xC9, 0x8F, 0x46, 0xFC, 0x8F, 0x11, 0xBF, 0xD8, 0x4A, 0x9F, 0x3D, 0x4A, 0xFC, 0x8F, 0x91, 0xEF, 0x6C, 0xC4, 0x6A, 0x35, 0x7A, 0xC6, 0xE9, 0x1E, 0x32, 0xAE, 0xD1, 0x1C, 0xA7, 0x3A, 0x6B, 0xE3, 0x59, 0x6A, 0x63, 0x36, 0x6A, 0x34, 0x07, 0x6D, 0x88, 0xDD, 0xB3, 0xE4, 0x3B, 0x2F, 0x8A, 0x77, 0x41, 0xC4, 0xB5, 0x90, 0xB8, 0xE6, 0xA1, 0x1E, 0x0B, 0x88, 0x6B, 0x21, 0xD5, 0x63, 0x09, 0xD6, 0x1A, 0xAE, 0xC7, 0x52, 0xA7, 0xB8, 0xC9, 0x2B, 0x22, 0xFE, 0x95, 0xC4, 0xBF, 0x14, 0xF5, 0x58, 0x41, 0xFC, 0x2B, 0x69, 0x5C, 0xBD, 0x8C, 0x71, 0x66, 0x73, 0x63, 0x95, 0x53, 0xCC, 0xD6, 0x26, 0xD1, 0xAD, 0x72, 0xB9, 0x63, 0xFE, 0x36, 0xC8, 0xDD, 0x20, 0x77, 0x23, 0xBE, 0xD5, 0xD1, 0x1A, 0x52, 0xE1, 0x14, 0xAB, 0xA0, 0xF5, 0xAC, 0xC2, 0xE5, 0xAE, 0x67, 0xC5, 0x90, 0x37, 0x61, 0xED, 0xDB, 0x44, 0x6B, 0xE7, 0x9A, 0x68, 0x6D, 0x59, 0xEB, 0x14, 0xAB, 0xA0, 0xFD, 0xF2, 0x5A, 0x97, 0xBB, 0x5F, 0xAE, 0x84, 0x6E, 0x1D, 0xCD, 0xD7, 0xF5, 0x68, 0x6B, 0x3D, 0xC5, 0xFA, 0x5F, 0x4E, 0xCF, 0xAA, 0x6C, 0xBE, 0x6E, 0x76, 0x8A, 0xFD, 0x14, 0xF3, 0x75, 0x63, 0xF8, 0x5C, 0x49, 0xF3, 0x55, 0xF4, 0x1B, 0xC2, 0xB5, 0x11, 0x5C, 0x1B, 0x50, 0xD3, 0x2D, 0xD4, 0xCE, 0x56, 0xE8, 0xB6, 0x52, 0x3B, 0xFF, 0xED, 0xF4, 0x0C, 0xCC, 0xDA, 0x79, 0xC5, 0x29, 0x66, 0xEB, 0xC2, 0xF6, 0xF0, 0x79, 0x07, 0xB5, 0x23, 0xFA, 0x6D, 0xE1, 0xDA, 0x0E, 0xAE, 0x6D, 0xC4, 0xB5, 0x13, 0x31, 0xDB, 0xF3, 0x73, 0x97, 0x53, 0x4C, 0xCE, 0x94, 0x6D, 0xCF, 0xBE, 0x97, 0x30, 0xF3, 0x7B, 0x13, 0x31, 0x58, 0x1D, 0xDF, 0x72, 0xBA, 0xB7, 0x7E, 0x93, 0xB0, 0x7D, 0x4E, 0x71, 0xE1, 0xBC, 0x13, 0xE7, 0x98, 0xEF, 0x38, 0xC5, 0x4D, 0x7E, 0x17, 0xCF, 0xF0, 0xEF, 0xE2, 0x6C, 0xFA, 0xCF, 0x4E, 0x6D, 0x04, 0x9F, 0x01, 0xEC, 0x3D, 0xA7, 0xF8, 0x01, 0xCC, 0x33, 0x39, 0xAF, 0x7E, 0xDF, 0x65, 0xF7, 0xA6, 0x15, 0xE8, 0x5F, 0xB1, 0x3D, 0x08, 0xDD, 0x43, 0xF0, 0x3D, 0xE4, 0xD4, 0xFF, 0x20, 0xD5, 0xEB, 0x03, 0xA7, 0x39, 0x49, 0x3E, 0xB2, 0x27, 0x3F, 0x4C, 0xB5, 0x12, 0xDD, 0xDF, 0xC2, 0x75, 0x18, 0xB5, 0xFA, 0x1B, 0xE5, 0xFC, 0x21, 0x72, 0x16, 0x59, 0xCE, 0xAC, 0xFF, 0x8E, 0x33, 0x6F, 0x91, 0xE5, 0x7C, 0xFB, 0x04, 0xCE, 0xB6, 0xCB, 0x42, 0x3B, 0x72, 0xAE, 0xFD, 0x29, 0x6C, 0x04, 0x1F, 0x1E, 0xE6, 0x92, 0x9C, 0x55, 0x7F, 0x09, 0x5C, 0xE2, 0xAA, 0x89, 0xF3, 0x6E, 0x39, 0xD3, 0x1E, 0x1C, 0x7C, 0xA4, 0x1E, 0x5F, 0xC1, 0x66, 0x2F, 0xC6, 0x82, 0x9C, 0x65, 0x0A, 0x76, 0x05, 0xF4, 0x5F, 0xC3, 0x4F, 0xF0, 0xBB, 0x30, 0x5F, 0x4F, 0x39, 0xC5, 0x6D, 0x8E, 0x9F, 0x76, 0x7A, 0x26, 0xFA, 0x21, 0x38, 0x44, 0x3E, 0x45, 0x79, 0x7C, 0x83, 0x3C, 0x2C, 0x4E, 0xE7, 0xFF, 0x35, 0xCE, 0x3C, 0xAF, 0x38, 0xC7, 0x29, 0xE7, 0xEA, 0x16, 0x67, 0x81, 0x57, 0x1B, 0x8B, 0x33, 0x3D, 0x53, 0xF5, 0xD9, 0x38, 0xAB, 0x7B, 0xF5, 0x13, 0xDC, 0xE2, 0xAC, 0xE1, 0x15, 0xB7, 0x38, 0x6B, 0x7A, 0x3D, 0x9B, 0xFD, 0x06, 0x1C, 0x22, 0x8B, 0x8D, 0xC5, 0x59, 0xE8, 0x73, 0xE3, 0xFC, 0xCE, 0x59, 0xE2, 0x3C, 0xDF, 0x2B, 0xCE, 0x71, 0xD6, 0xA6, 0x38, 0xEB, 0x78, 0xB5, 0xB1, 0x38, 0xE5, 0x6C, 0xB7, 0x0E, 0xC5, 0x59, 0x17, 0x71, 0x5E, 0x48, 0x71, 0x16, 0x79, 0xC5, 0x2D, 0xCE, 0x7A, 0x5E, 0xCF, 0x88, 0x25, 0x1E, 0xE1, 0x10, 0xB9, 0x88, 0xE2, 0x6C, 0x10, 0xC5, 0xD9, 0xE8, 0x2C, 0x71, 0x36, 0xF5, 0x8A, 0x73, 0x9C, 0x4D, 0x28, 0xCE, 0x16, 0x5E, 0x6D, 0x2C, 0x4E, 0x39, 0x63, 0x6E, 0x41, 0x71, 0x5E, 0x8C, 0x38, 0x9B, 0x53, 0x9C, 0x2D, 0xBD, 0xE2, 0x16, 0x67, 0x2B, 0xAF, 0x67, 0xD5, 0x0D, 0x10, 0xA7, 0xC8, 0x62, 0x23, 0xEB, 0x88, 0x8D, 0xE7, 0xC3, 0x58, 0xDB, 0x76, 0x40, 0xDE, 0x41, 0xE3, 0xA2, 0xB5, 0xCF, 0x9D, 0xD3, 0x6D, 0xBC, 0x62, 0xB6, 0x36, 0x8A, 0xAE, 0x8D, 0xCF, 0x5D, 0x97, 0xB6, 0x23, 0x5E, 0x39, 0x03, 0xB7, 0x35, 0xAB, 0xAD, 0x57, 0x5D, 0x5B, 0xAA, 0x51, 0x47, 0xAF, 0xE7, 0xE4, 0x36, 0x07, 0x3B, 0x79, 0xC5, 0x6C, 0x5F, 0xD9, 0x3E, 0x7C, 0xEE, 0xE0, 0xB3, 0xF3, 0x50, 0xF4, 0xED, 0xC2, 0xD5, 0x1E, 0x5C, 0xED, 0x88, 0xEB, 0x72, 0x70, 0x59, 0x9C, 0x5D, 0xBC, 0xEE, 0x2B, 0x05, 0xB7, 0x7D, 0x65, 0xB1, 0x57, 0x5C, 0xF6, 0x95, 0x66, 0x77, 0x85, 0x57, 0xBC, 0x3B, 0x71, 0x5D, 0xE9, 0x75, 0xFD, 0x33, 0x9B, 0x12, 0xAF, 0x76, 0x57, 0xFA, 0xEC, 0x5E, 0xAE, 0x87, 0xCF, 0xEE, 0xE5, 0x4A, 0x7C, 0xF6, 0x39, 0xD9, 0xD3, 0xAB, 0xCE, 0x7C, 0xFB, 0x83, 0xBF, 0x2F, 0xB5, 0x39, 0xD0, 0x2B, 0xCE, 0x7C, 0xD7, 0x10, 0xDF, 0x40, 0xE2, 0xBB, 0xD6, 0xAB, 0xAE, 0x6A, 0xEF, 0x0A, 0xBE, 0x7E, 0xC4, 0x37, 0xC4, 0x2B, 0xCE, 0x7C, 0x43, 0x89, 0x6F, 0x08, 0xF1, 0x95, 0x79, 0xD5, 0x49, 0xFF, 0x0C, 0xA3, 0xFE, 0x19, 0x8E, 0x9A, 0x0E, 0xA7, 0x3A, 0xDC, 0xE4, 0xF5, 0x77, 0x0B, 0xEB, 0x9F, 0x9B, 0xBD, 0x62, 0xF6, 0x4C, 0xB9, 0x21, 0x7C, 0x1E, 0x41, 0xFD, 0x73, 0x33, 0xE4, 0x1B, 0xC0, 0x35, 0x82, 0xB8, 0x46, 0x82, 0xCB, 0xE4, 0x51, 0xE8, 0x2F, 0x1B, 0xA7, 0xA3, 0xBD, 0xAE, 0x4F, 0x23, 0x29, 0xD6, 0x5B, 0xBD, 0xE2, 0xB6, 0x8F, 0xBA, 0xDD, 0xEB, 0x5E, 0x53, 0x6C, 0x46, 0x91, 0xDD, 0x18, 0xAF, 0x3A, 0xDB, 0x9B, 0x8C, 0xF5, 0xD9, 0xBD, 0x89, 0x70, 0x48, 0x9F, 0x8C, 0x41, 0xCE, 0x62, 0x37, 0x96, 0xDA, 0x9D, 0x88, 0xF5, 0x86, 0xDB, 0xBD, 0xD3, 0x2B, 0x5E, 0xB5, 0x97, 0x8D, 0xF8, 0x27, 0x13, 0xBF, 0xD8, 0x4A, 0x1F, 0x4D, 0x22, 0xFE, 0xC9, 0xC4, 0x3F, 0x15, 0xEB, 0x04, 0xF3, 0xDF, 0xE3, 0x15, 0xAF, 0xDA, 0xCB, 0x46, 0xFC, 0x33, 0x88, 0x5F, 0x6C, 0xA5, 0xCF, 0xA6, 0x13, 0xFF, 0x0C, 0xF2, 0x9D, 0x89, 0x58, 0xAD, 0x46, 0x8F, 0x78, 0xDD, 0x6B, 0xC6, 0x35, 0x7A, 0xD4, 0xAB, 0xAE, 0x6A, 0x3F, 0x4B, 0x6D, 0xCC, 0x44, 0x8D, 0x1E, 0x45, 0x1B, 0x62, 0xF7, 0x18, 0xF9, 0xCE, 0x8E, 0xE2, 0x9D, 0x13, 0x71, 0x3D, 0x4B, 0x5C, 0xB3, 0x51, 0x8F, 0x39, 0xC4, 0xF5, 0x2C, 0xD5, 0xE3, 0xB7, 0x58, 0x8F, 0xB8, 0x1E, 0xF3, 0xBC, 0xE2, 0x55, 0x7B, 0xD9, 0x88, 0x7F, 0x21, 0xF1, 0xCF, 0x43, 0x3D, 0x16, 0x10, 0xFF, 0x42, 0x1A, 0x57, 0x2F, 0x60, 0x9C, 0xD9, 0xDC, 0x58, 0xE4, 0x15, 0xB3, 0xF5, 0x4A, 0x74, 0x8B, 0x7C, 0xEE, 0x98, 0xBF, 0x01, 0x72, 0x07, 0xC8, 0x1D, 0x88, 0x6F, 0x71, 0xB4, 0xAE, 0x2C, 0xF1, 0x8A, 0x19, 0x9F, 0xE8, 0x96, 0xF8, 0xDC, 0x35, 0xAE, 0x3D, 0xE4, 0x4A, 0xAC, 0x87, 0x95, 0xB4, 0x9E, 0x2E, 0x8D, 0xD6, 0x96, 0x17, 0xBD, 0x62, 0x15, 0xB4, 0x9F, 0x7C, 0xD1, 0xE7, 0xEE, 0x27, 0x37, 0x62, 0x3D, 0x5D, 0x46, 0xF3, 0x75, 0x39, 0xDA, 0x5A, 0x4E, 0xB1, 0xBE, 0xEC, 0xF5, 0x77, 0x45, 0x9B, 0xAF, 0xAB, 0xBC, 0x62, 0x36, 0x5F, 0x57, 0x88, 0x8E, 0xE6, 0xAB, 0xE8, 0x5F, 0x0A, 0xD7, 0x0A, 0x70, 0xBD, 0x84, 0x9A, 0xAE, 0xA6, 0x76, 0x2A, 0xA0, 0xAB, 0xA0, 0x76, 0x36, 0x78, 0xFD, 0xBD, 0xD2, 0xDA, 0xD9, 0xE8, 0x15, 0xB3, 0x75, 0x7B, 0xAD, 0xE4, 0x48, 0xED, 0x88, 0x7E, 0x4D, 0xB8, 0xD6, 0x82, 0x6B, 0x0D, 0x71, 0x55, 0x22, 0x66, 0x93, 0x37, 0x81, 0xDB, 0xC6, 0xF3, 0x16, 0xCC, 0x79, 0xB1, 0xDB, 0x44, 0x63, 0x64, 0xAB, 0x57, 0x5D, 0x61, 0xA6, 0x20, 0x95, 0xB7, 0x63, 0x8C, 0xB4, 0x81, 0x6E, 0x1B, 0x72, 0x11, 0x9B, 0xED, 0xC4, 0xB7, 0x13, 0xF3, 0x23, 0xE6, 0xDB, 0xE5, 0x55, 0x67, 0x7C, 0xBB, 0x89, 0x6F, 0x17, 0xF1, 0x89, 0xCD, 0x6E, 0x1A, 0x0F, 0x6F, 0xF9, 0xEC, 0xB9, 0x9A, 0x9D, 0x91, 0xBE, 0xED, 0xB3, 0xFB, 0xD0, 0xFE, 0x7C, 0xAE, 0xEC, 0x55, 0x67, 0xCF, 0xA3, 0x77, 0xBC, 0xFA, 0xEF, 0x23, 0xBE, 0x77, 0xBD, 0xE2, 0x63, 0xE8, 0xFB, 0xC8, 0x7E, 0xAF, 0x78, 0x25, 0xD9, 0x1D, 0xF0, 0x8A, 0xF3, 0x19, 0xD4, 0x7B, 0x5E, 0xCF, 0xA0, 0x0E, 0x90, 0xDD, 0xFB, 0x5E, 0xF1, 0x29, 0xC4, 0x77, 0xC8, 0x2B, 0xCE, 0xF9, 0x1F, 0x46, 0x3D, 0xED, 0xF9, 0x71, 0x04, 0xEF, 0x2B, 0x94, 0xC2, 0x3E, 0x3D, 0x3F, 0xF6, 0x6A, 0x67, 0xBF, 0x8F, 0x1D, 0xA3, 0x3C, 0xE5, 0x5D, 0x06, 0xFE, 0x7D, 0xEC, 0xEF, 0x5E, 0xF5, 0xF6, 0xFB, 0xD8, 0xC7, 0x5E, 0x31, 0x1B, 0x33, 0x9F, 0x20, 0x77, 0xC1, 0x65, 0xBF, 0x7D, 0x82, 0xC6, 0x8B, 0xE8, 0x8E, 0x87, 0xEB, 0x04, 0xC6, 0xCB, 0x71, 0xCA, 0xE7, 0x53, 0x9F, 0x3D, 0xDF, 0xB3, 0xBC, 0x3F, 0xF3, 0x8A, 0x73, 0x1D, 0xBF, 0xF0, 0x8A, 0x8F, 0xA1, 0xFA, 0x7F, 0x89, 0xB1, 0x56, 0x75, 0xA6, 0xEC, 0xD5, 0xEE, 0x4B, 0xC2, 0x4E, 0x7A, 0xC5, 0xB9, 0xAE, 0x5F, 0xA1, 0xAE, 0x27, 0xC9, 0xEE, 0x94, 0x57, 0x7C, 0x0A, 0x9F, 0x23, 0x63, 0xEC, 0x9A, 0xCD, 0x19, 0xAF, 0x76, 0xA7, 0x69, 0xFC, 0xC9, 0xCB, 0x19, 0x0B, 0x11, 0xCB, 0x69, 0xAA, 0xBF, 0x4B, 0x54, 0x67, 0xF5, 0xF7, 0x49, 0xB6, 0xFE, 0x67, 0x50, 0x7F, 0xC1, 0xC4, 0x4E, 0xE6, 0xA5, 0xD5, 0xE6, 0x04, 0xD6, 0x8A, 0x75, 0x90, 0xD7, 0xD1, 0x5C, 0x4A, 0x92, 0xDC, 0x78, 0xF2, 0x12, 0xC5, 0x6C, 0xAD, 0x11, 0x5D, 0x5E, 0x92, 0x3B, 0xCF, 0xD7, 0x82, 0x6F, 0x25, 0xE4, 0x95, 0xC4, 0x57, 0x2D, 0xC9, 0xAD, 0x5F, 0x7E, 0xA2, 0x98, 0xF1, 0x89, 0x2E, 0x3F, 0xC9, 0x5D, 0x9F, 0x56, 0x20, 0x76, 0x79, 0x9F, 0x61, 0x0A, 0xD6, 0x94, 0x1A, 0x89, 0xEA, 0xE4, 0x6E, 0xDC, 0xE7, 0x26, 0xFA, 0xCE, 0x43, 0xD5, 0x79, 0x35, 0xEC, 0xFB, 0x67, 0x74, 0x4E, 0xA6, 0xE7, 0xD5, 0x89, 0xCE, 0xC9, 0xD6, 0xD0, 0x97, 0xD0, 0x6F, 0x40, 0xE7, 0x27, 0xCA, 0x21, 0x36, 0xB2, 0x06, 0xD5, 0x0A, 0xF7, 0xC2, 0x24, 0x3B, 0xA6, 0x44, 0x5F, 0x33, 0x5C, 0xB5, 0xD0, 0xB6, 0x7C, 0x96, 0xB8, 0xE4, 0xBD, 0x8A, 0x09, 0x88, 0xAB, 0x0E, 0x74, 0x75, 0x28, 0xAE, 0x06, 0x89, 0xBE, 0x7B, 0x31, 0x0D, 0xE3, 0xBA, 0x61, 0xA2, 0x98, 0xC5, 0xD9, 0x28, 0xC9, 0x8E, 0x47, 0xB3, 0x69, 0x9C, 0x28, 0x6E, 0xF3, 0xA4, 0x49, 0xF2, 0xFF, 0xCF, 0x93, 0xA6, 0x89, 0xEA, 0x25, 0x47, 0x91, 0x9B, 0x21, 0xC7, 0x56, 0xE0, 0x11, 0xFD, 0x0A, 0xE4, 0xD8, 0x3C, 0xD1, 0xF6, 0x9B, 0x21, 0xC7, 0xA2, 0x70, 0xAF, 0x47, 0x39, 0x8A, 0xBE, 0x6E, 0xB8, 0x8A, 0x90, 0x47, 0x5D, 0xE4, 0x28, 0xEF, 0x8A, 0x8C, 0x41, 0x8E, 0x2D, 0xA1, 0x6B, 0x49, 0x39, 0xB6, 0x4D, 0xF4, 0x7D, 0x12, 0x8B, 0xBF, 0x5D, 0xA2, 0x58, 0xD5, 0x39, 0x36, 0xFC, 0x39, 0xC7, 0x4B, 0x13, 0xC5, 0x2D, 0xC7, 0x8E, 0x51, 0x8E, 0xFC, 0x7B, 0x7D, 0xA7, 0x44, 0xF5, 0x96, 0xE3, 0x65, 0x94, 0xA3, 0xF0, 0x74, 0xA2, 0x1C, 0x3B, 0x27, 0xDA, 0xFE, 0x65, 0xC8, 0xB1, 0x75, 0xB8, 0xB7, 0xA1, 0x1C, 0x45, 0xDF, 0x2A, 0x5C, 0xAD, 0x91, 0x47, 0x2B, 0xCA, 0xA3, 0x2B, 0xF2, 0x30, 0xB9, 0x18, 0x7D, 0x67, 0xBF, 0xBB, 0x5D, 0x99, 0xA8, 0x8D, 0xFD, 0xEE, 0xD6, 0x83, 0x78, 0x45, 0x57, 0x12, 0xAE, 0x1E, 0xE0, 0x2D, 0xA1, 0xFC, 0xFB, 0x26, 0xCA, 0x65, 0xE3, 0xBC, 0x1F, 0x78, 0xE4, 0xB3, 0xBC, 0x67, 0xD3, 0x97, 0xDA, 0xEC, 0x8F, 0x71, 0x2C, 0x3A, 0x79, 0xE7, 0x46, 0xE4, 0x2B, 0x30, 0x7E, 0x07, 0x84, 0xCF, 0xE7, 0xE3, 0x5D, 0x1D, 0xF1, 0x2B, 0xA5, 0xF9, 0x3E, 0x90, 0xE6, 0xFB, 0x00, 0xF8, 0x0B, 0x26, 0xCF, 0x1D, 0x8B, 0xFF, 0x3A, 0xC4, 0x61, 0xF1, 0x0F, 0xA6, 0xF8, 0x45, 0x37, 0x28, 0x5C, 0x83, 0x11, 0xFF, 0x20, 0x70, 0x0C, 0xA1, 0x58, 0x87, 0xC2, 0xDF, 0x62, 0x1D, 0x46, 0xB1, 0xCA, 0xFB, 0x3E, 0xC3, 0x28, 0xD6, 0xE1, 0x88, 0x55, 0xFC, 0xC5, 0xAF, 0x8C, 0x62, 0x1D, 0x41, 0xB1, 0x0E, 0x87, 0xFF, 0x08, 0xC4, 0x2A, 0x63, 0xCC, 0x62, 0x18, 0x4C, 0x63, 0xEA, 0x87, 0x68, 0x5B, 0x7E, 0xCB, 0x14, 0x79, 0x24, 0xC6, 0xF6, 0x38, 0xFA, 0x5D, 0x74, 0x54, 0xA2, 0x76, 0xA2, 0x93, 0xFC, 0x46, 0x53, 0x7E, 0xA2, 0xBB, 0x25, 0x5C, 0xA3, 0xC1, 0x7D, 0x0B, 0xF5, 0xCF, 0x18, 0x70, 0xDB, 0x6F, 0xA0, 0x63, 0x29, 0x67, 0x79, 0x4F, 0x69, 0x0C, 0xE5, 0x3C, 0x9E, 0x72, 0x96, 0x77, 0x96, 0xC6, 0x53, 0xCE, 0x13, 0x90, 0xB3, 0xF8, 0x8B, 0xDF, 0x1D, 0x94, 0xF3, 0x44, 0xCA, 0x79, 0x02, 0xFC, 0x27, 0x52, 0xCE, 0x16, 0xD7, 0x68, 0xAC, 0x7F, 0x36, 0x8E, 0x7A, 0x50, 0x0D, 0x7E, 0x82, 0xB8, 0xAC, 0x06, 0x93, 0x30, 0xF6, 0xB9, 0x06, 0x93, 0x13, 0xB5, 0x9B, 0x84, 0x1A, 0xDC, 0x4D, 0x35, 0x10, 0xDD, 0x94, 0x70, 0xDD, 0x0D, 0xEE, 0x29, 0x54, 0x83, 0xA9, 0xE0, 0xE6, 0xDF, 0xB8, 0xEE, 0x8D, 0xC6, 0xAD, 0xBC, 0x93, 0x35, 0x15, 0xB1, 0xCB, 0xFB, 0x58, 0xF7, 0x52, 0x5D, 0x66, 0x50, 0x5D, 0xE4, 0xDD, 0xAC, 0x19, 0x54, 0x97, 0x07, 0x50, 0x17, 0xF1, 0x17, 0xBF, 0xE9, 0x54, 0x97, 0x07, 0xA9, 0x2E, 0x0F, 0xC0, 0xFF, 0xC1, 0x68, 0xDC, 0x3E, 0x1C, 0x8D, 0xDB, 0x59, 0x94, 0x93, 0xE8, 0x66, 0x86, 0x6B, 0x16, 0x72, 0x9A, 0x09, 0x8E, 0xC7, 0x29, 0xD6, 0x27, 0xA2, 0x71, 0xFB, 0x14, 0xC5, 0x2A, 0xEF, 0x85, 0x3D, 0x45, 0xB1, 0xCE, 0x46, 0xAC, 0xE2, 0x2F, 0x7E, 0x4F, 0x52, 0xAC, 0x4F, 0x53, 0xAC, 0xB3, 0xE1, 0xFF, 0x34, 0xF5, 0xA1, 0xC5, 0x30, 0x8B, 0xFA, 0xEC, 0x99, 0x68, 0xDC, 0xFE, 0xFA, 0x2C, 0xE3, 0xF6, 0x37, 0x89, 0xDA, 0xFD, 0x1A, 0x7D, 0x36, 0x97, 0xF2, 0x13, 0xDD, 0x73, 0xE1, 0x9A, 0x0B, 0xEE, 0xE7, 0xA8, 0xCF, 0xE6, 0x47, 0xE3, 0x76, 0x01, 0xE5, 0x2C, 0xEF, 0xB3, 0xCD, 0xA7, 0x9C, 0x5F, 0xA0, 0x9C, 0xE5, 0xDD, 0xB6, 0x17, 0x28, 0xE7, 0x45, 0xC8, 0x59, 0xFC, 0xC5, 0xEF, 0x79, 0xCA, 0x79, 0x31, 0xE5, 0xBC, 0x08, 0xFE, 0x8B, 0x29, 0x67, 0x8B, 0x6B, 0x2E, 0xC6, 0xAD, 0x8D, 0xAD, 0xBB, 0x69, 0xDD, 0x7C, 0x31, 0xEA, 0xBF, 0xE5, 0x94, 0x9F, 0xE8, 0x96, 0x85, 0x6B, 0x39, 0xFC, 0x96, 0x51, 0x7E, 0x2B, 0x31, 0x26, 0xAB, 0xF6, 0x1B, 0x89, 0x62, 0xF2, 0xB9, 0x22, 0xEA, 0xD3, 0xB5, 0x94, 0x9F, 0xBC, 0x8B, 0xB7, 0x96, 0xF2, 0x5B, 0x87, 0xFC, 0xC4, 0x5F, 0xFC, 0xD6, 0x50, 0x7E, 0xEB, 0x29, 0xBF, 0x75, 0xF0, 0x5F, 0x4F, 0xF9, 0x59, 0x5C, 0xCB, 0xA9, 0x4F, 0x2B, 0xA3, 0x3E, 0xDD, 0x7C, 0x96, 0x3E, 0xDD, 0x92, 0xA8, 0xDD, 0x66, 0xF4, 0xE9, 0x36, 0xCA, 0x59, 0x74, 0x5B, 0xA5, 0x0D, 0x70, 0x6F, 0xA5, 0x9C, 0xFF, 0x44, 0x39, 0x1B, 0xF6, 0x6A, 0xD4, 0xCF, 0xF2, 0x6E, 0xE1, 0x9F, 0x10, 0xAB, 0xBC, 0x57, 0xF8, 0x2A, 0xD5, 0x61, 0x0F, 0xD5, 0x41, 0xDE, 0x31, 0xDC, 0x43, 0x75, 0xD8, 0x8B, 0x3A, 0x88, 0xBF, 0xF8, 0xED, 0xA6, 0x3A, 0xBC, 0x46, 0x75, 0xD8, 0x0B, 0xFF, 0xD7, 0xA8, 0x0E, 0x16, 0xEB, 0x36, 0xF4, 0x73, 0x1B, 0xC8, 0x6D, 0xA8, 0xED, 0xD7, 0xF1, 0xFC, 0xB4, 0xB8, 0xDF, 0x48, 0x14, 0xB3, 0xFE, 0x13, 0xDD, 0x1B, 0x49, 0xEE, 0x3E, 0xA2, 0x35, 0xE4, 0x7A, 0x90, 0xEB, 0x11, 0xDF, 0x9B, 0x78, 0xFE, 0x56, 0x7D, 0x57, 0x4A, 0x14, 0x33, 0x3E, 0xD1, 0xBD, 0x95, 0xE4, 0xEE, 0xBD, 0x8A, 0x20, 0x17, 0x42, 0x2E, 0x24, 0xBE, 0xB7, 0xA3, 0x3D, 0xE2, 0xBE, 0x44, 0x31, 0xE3, 0x13, 0xDD, 0xBE, 0x24, 0x77, 0x8F, 0x59, 0x2B, 0xC9, 0x7D, 0x0F, 0x4E, 0xEE, 0x67, 0xC2, 0xEE, 0xA3, 0x7B, 0xB8, 0x8A, 0x71, 0x8E, 0x5A, 0x13, 0xEF, 0xDF, 0xC8, 0xBB, 0xD8, 0xDD, 0x84, 0x07, 0x7F, 0xB3, 0x90, 0xFA, 0xD3, 0x3B, 0xBE, 0x4D, 0xF3, 0xB2, 0xEF, 0x7C, 0x36, 0x89, 0xDE, 0xF9, 0x6C, 0x0E, 0xFE, 0xE6, 0xF8, 0xCD, 0x5A, 0x78, 0x2F, 0x04, 0xCF, 0x46, 0x8C, 0xA9, 0x22, 0x60, 0x75, 0xC0, 0x51, 0x9F, 0xDE, 0xFB, 0x29, 0xC2, 0xDF, 0x2F, 0x35, 0x45, 0xBB, 0x4D, 0x33, 0x59, 0x9E, 0x66, 0x11, 0x4F, 0x0B, 0x60, 0xCD, 0xC1, 0xD3, 0x92, 0x78, 0xEC, 0xEF, 0xD4, 0x3A, 0x82, 0xA7, 0x23, 0xF1, 0x5C, 0x06, 0x9E, 0x19, 0xC8, 0xFB, 0x72, 0x60, 0x9D, 0xD3, 0x3D, 0x76, 0x7E, 0x8A, 0x75, 0xC1, 0xFB, 0x9F, 0x17, 0x41, 0x2F, 0x67, 0x30, 0xF9, 0x69, 0x5D, 0xB2, 0x67, 0x30, 0x9D, 0x60, 0x57, 0x9C, 0xD1, 0xDF, 0x54, 0xF2, 0xF1, 0xB7, 0x6C, 0xDD, 0xF0, 0x77, 0x3F, 0xD2, 0x17, 0x52, 0xAB, 0xEE, 0xD8, 0x73, 0x36, 0x41, 0x6D, 0x2E, 0xA6, 0x58, 0x5A, 0x57, 0xFD, 0x5D, 0x4B, 0x41, 0x2A, 0x5F, 0x02, 0xFE, 0x06, 0xD0, 0xB5, 0xA1, 0xB6, 0xDB, 0x53, 0xDB, 0xAD, 0x60, 0xDB, 0x8E, 0xDA, 0xEE, 0x00, 0x1B, 0x6E, 0xBB, 0x43, 0xD4, 0x76, 0xCB, 0xF4, 0xBD, 0x1E, 0xA7, 0x63, 0x94, 0xE2, 0x68, 0x88, 0x38, 0x8C, 0xAB, 0x31, 0x30, 0x79, 0xB7, 0xDE, 0xB8, 0x1A, 0x47, 0x5C, 0xF5, 0x89, 0xAB, 0x09, 0xF5, 0x77, 0xB3, 0x3C, 0x1D, 0x23, 0xDF, 0x04, 0xBC, 0x59, 0x9A, 0xBF, 0x8E, 0xB1, 0xF4, 0xBD, 0x1A, 0xF4, 0xD1, 0xB9, 0x18, 0x63, 0xE7, 0xA4, 0x7F, 0xF7, 0x98, 0xFD, 0x7C, 0x1E, 0x7D, 0xAE, 0x8D, 0xBE, 0xBB, 0x80, 0xBE, 0x5B, 0xF6, 0x80, 0x8D, 0x9D, 0x31, 0x0C, 0xCC, 0x9C, 0xFD, 0x8C, 0xE1, 0x1A, 0xE8, 0xEC, 0xBB, 0xEB, 0xB5, 0xF0, 0xBD, 0x86, 0x6C, 0xAE, 0x43, 0xDB, 0x36, 0x8F, 0x06, 0xC1, 0xEE, 0x3A, 0xF2, 0x1B, 0x8C, 0x77, 0xB0, 0x06, 0x91, 0xDF, 0xBF, 0x21, 0x36, 0xF3, 0xBB, 0x1E, 0x76, 0x82, 0x4B, 0xCE, 0xD7, 0x67, 0x34, 0xE7, 0xFF, 0x03, 0xC0, 0x16, 0xF9, 0xE4 -}; diff --git a/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.cso.inl b/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.cso.inl deleted file mode 100644 index ee0c013a2..000000000 --- a/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.cso.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_3_64_fp32.comp.cso */ -const int internal_shaders_output_convolution_concat_64_3_64_fp32_comp_cso_size = 6459; -const unsigned char internal_shaders_output_convolution_concat_64_3_64_fp32_comp_cso[6459] = { - 0x78, 0xDA, 0xED, 0x7A, 0x7B, 0x58, 0x13, 0xD7, 0xDA, 0xEF, 0x24, 0x99, 0x4C, 0x26, 0x61, 0x08, 0xE1, 0x6A, 0x20, 0x01, 0x26, 0xA0, 0x01, 0x11, 0xED, 0x70, 0x11, 0x01, 0x6F, 0xB9, 0x60, 0xB8, 0x88, 0x36, 0x2A, 0xB5, 0xD0, 0xDA, 0x9A, 0x20, 0x08, 0x28, 0x60, 0x44, 0xA4, 0x62, 0xA9, 0xCD, 0x0D, 0x12, 0x35, 0xD8, 0xA8, 0x68, 0xF1, 0x1E, 0x04, 0x7B, 0xB0, 0xEA, 0x6E, 0xBC, 0x54, 0xA5, 0xD5, 0xEE, 0x84, 0xA4, 0x16, 0x11, 0x29, 0xF8, 0xD9, 0x1E, 0xAA, 0x54, 0xA1, 0x45, 0x4A, 0xAD, 0xDD, 0x65, 0xAB, 0xB5, 0x78, 0xE9, 0xDE, 0x67, 0x0D, 0x09, 0xE8, 0xF1, 0x7C, 0xE7, 0x39, 0xE7, 0xFB, 0xFE, 0xFA, 0xBE, 0xE7, 0xD9, 0xF3, 0x3C, 0x6B, 0xD6, 0xAC, 0xB5, 0x7E, 0xEF, 0xBB, 0xDE, 0x79, 0xDF, 0xB5, 0x7E, 0xEB, 0x0D, 0x4C, 0x4A, 0xB6, 0x44, 0x7A, 0xF5, 0x61, 0xC7, 0x46, 0xED, 0xE7, 0x0B, 0xDF, 0xDE, 0x56, 0x97, 0x5E, 0x1A, 0xF5, 0x68, 0x32, 0x44, 0x81, 0x20, 0x48, 0x3D, 0x11, 0x82, 0x18, 0xA0, 0x9E, 0x05, 0x4A, 0x26, 0x28, 0xCB, 0x40, 0x29, 0x06, 0x25, 0x0F, 0x0C, 0xE6, 0x79, 0x80, 0x71, 0x50, 0x96, 0xC8, 0xD2, 0x09, 0x14, 0x7A, 0x7E, 0xA5, 0x2F, 0x49, 0x8D, 0x19, 0x6B, 0x93, 0xF5, 0xAB, 0x2F, 0xB5, 0xE5, 0x4B, 0x96, 0x12, 0xC3, 0xA0, 0x26, 0xA0, 0x7F, 0xFF, 0xFA, 0x27, 0xB8, 0xE8, 0x2F, 0xB4, 0x39, 0xA0, 0x50, 0xDC, 0xB2, 0xA4, 0x2D, 0x5C, 0x50, 0xA8, 0x2F, 0xC9, 0x78, 0xBA, 0x6B, 0x8A, 0xBB, 0xA6, 0xB9, 0x0B, 0xFB, 0x85, 0x36, 0x79, 0xC1, 0xEE, 0x42, 0x7D, 0xA1, 0x0D, 0xB9, 0xDB, 0x64, 0xF1, 0x78, 0xA9, 0x9F, 0xE1, 0x2E, 0x2F, 0xF7, 0xA3, 0xEE, 0xE2, 0xF1, 0x02, 0xEE, 0xC5, 0xEB, 0x65, 0x3C, 0x79, 0x2D, 0xC9, 0x12, 0x67, 0x8D, 0x30, 0x21, 0x48, 0x01, 0xD1, 0xA1, 0x4D, 0x60, 0xB2, 0x94, 0xEC, 0xF4, 0x4C, 0xD2, 0x60, 0xF2, 0xFD, 0xFA, 0x40, 0xBF, 0x44, 0x6A, 0xBB, 0x25, 0xC0, 0x20, 0x68, 0x3D, 0x18, 0xF3, 0xD0, 0xE2, 0xA3, 0xF6, 0xF8, 0x92, 0xBA, 0x35, 0xE1, 0xDB, 0xC5, 0x6D, 0x70, 0x3A, 0xC2, 0x89, 0x4D, 0xDA, 0x41, 0xD1, 0x63, 0x93, 0xE8, 0x68, 0x60, 0x08, 0xBC, 0x35, 0x57, 0xCD, 0x9D, 0x47, 0x95, 0xEC, 0xF0, 0x90, 0x38, 0x39, 0xB1, 0x7E, 0x89, 0x28, 0x77, 0x3E, 0x2B, 0x36, 0xD7, 0x98, 0x66, 0xF6, 0xC3, 0xA5, 0x32, 0xE3, 0x11, 0x28, 0x30, 0x56, 0x32, 0x90, 0xC6, 0x36, 0x7B, 0x87, 0x3B, 0xE5, 0xE2, 0x45, 0x1A, 0x53, 0xBF, 0xEE, 0xCE, 0x16, 0x38, 0x46, 0x86, 0x2C, 0xE2, 0xBA, 0xEC, 0xE6, 0x99, 0xFA, 0x48, 0x37, 0x33, 0x44, 0xD4, 0x66, 0xCF, 0x9A, 0x61, 0xF2, 0x91, 0x86, 0x53, 0xBE, 0x41, 0x72, 0x47, 0xC8, 0x47, 0x8A, 0x19, 0x4A, 0xE7, 0xBA, 0x7C, 0xE6, 0xAB, 0x55, 0x48, 0xF0, 0x4C, 0x14, 0x21, 0xED, 0xDF, 0x8C, 0x43, 0x50, 0x05, 0xA8, 0x63, 0xC3, 0x8C, 0x4C, 0x3C, 0xAF, 0x1A, 0xF6, 0x0D, 0x6F, 0xD2, 0x83, 0xDB, 0x8F, 0xFA, 0x06, 0xB3, 0x9F, 0x4F, 0xA6, 0xC9, 0xE4, 0xA1, 0x77, 0x66, 0x72, 0xAE, 0xDB, 0x51, 0x11, 0x13, 0x62, 0x0D, 0xA2, 0x36, 0x0B, 0xE6, 0x20, 0x38, 0x31, 0x34, 0x39, 0x6B, 0x05, 0x81, 0xE9, 0xB6, 0xC5, 0x72, 0x75, 0xE2, 0x74, 0x81, 0xC9, 0x4E, 0x14, 0x4E, 0x76, 0x12, 0x18, 0x6D, 0xFA, 0x0C, 0xCF, 0x0F, 0xE7, 0x2A, 0xBD, 0x04, 0x8F, 0xA7, 0x08, 0x4E, 0x38, 0x07, 0x26, 0x9C, 0xAB, 0x65, 0x39, 0x08, 0x93, 0x72, 0x1B, 0x24, 0x18, 0x3A, 0xD8, 0x7F, 0x3F, 0xE2, 0x9E, 0x60, 0xE2, 0x5C, 0x78, 0xAF, 0x52, 0x20, 0xE7, 0xF8, 0x0F, 0x06, 0x4E, 0xBC, 0x4C, 0x60, 0x2B, 0xB8, 0x88, 0xEE, 0xA3, 0xC6, 0x9A, 0x2B, 0x87, 0xAC, 0x06, 0x73, 0x55, 0x69, 0xE3, 0x96, 0x5D, 0xF5, 0x55, 0x03, 0x67, 0xBD, 0x63, 0x30, 0x87, 0xDC, 0xB8, 0xCA, 0x8C, 0x9C, 0xDA, 0x16, 0x34, 0xED, 0xFD, 0xD6, 0x10, 0xC9, 0xFD, 0x96, 0xDA, 0xA8, 0xA5, 0xB9, 0xF7, 0xB7, 0xDE, 0x94, 0xE9, 0x95, 0x5C, 0x99, 0xC0, 0x2A, 0x0E, 0x8A, 0xDC, 0x17, 0x8E, 0x6E, 0x11, 0x78, 0x76, 0x11, 0xC5, 0x4E, 0x7F, 0x3A, 0xB7, 0x49, 0xC9, 0xAD, 0x51, 0xAA, 0xDB, 0x3E, 0x2F, 0x3A, 0xFF, 0x8C, 0xF9, 0x2E, 0x7A, 0x79, 0x39, 0xB3, 0x68, 0x92, 0x30, 0xB4, 0xA5, 0x24, 0x0B, 0x18, 0x8A, 0x1D, 0x81, 0x18, 0x45, 0xDC, 0x48, 0x3E, 0xCA, 0x95, 0xE1, 0xA6, 0x3D, 0x37, 0x14, 0xFC, 0x1E, 0x01, 0x7F, 0x50, 0x19, 0xD2, 0xAB, 0x0E, 0x68, 0xA7, 0x84, 0x0E, 0x35, 0x84, 0x0C, 0x34, 0xF0, 0x07, 0xD4, 0x7E, 0x23, 0xB6, 0x90, 0x76, 0x25, 0x7F, 0xA8, 0x3F, 0x78, 0x40, 0xE3, 0xD5, 0xA1, 0x09, 0xBE, 0x25, 0xE0, 0x0F, 0x69, 0x3C, 0x6D, 0x6A, 0xF6, 0x33, 0x08, 0x7B, 0x26, 0xF2, 0x7A, 0x68, 0x09, 0xBE, 0x46, 0x09, 0x19, 0xEC, 0x9F, 0x30, 0x24, 0x08, 0xED, 0x6B, 0xE0, 0xCB, 0x89, 0x8E, 0x89, 0xC8, 0x8F, 0x36, 0x76, 0x3F, 0xE1, 0xF5, 0xA0, 0x0F, 0x39, 0x23, 0x67, 0x8F, 0x88, 0xBC, 0x7E, 0xC7, 0xBD, 0xEE, 0xE0, 0x8C, 0x26, 0x1B, 0xE3, 0x91, 0x9C, 0xFD, 0xA3, 0xC8, 0xEB, 0x37, 0xDC, 0xAB, 0x4A, 0xC1, 0xBE, 0x37, 0xCC, 0xEE, 0x17, 0x79, 0x15, 0x43, 0x48, 0x79, 0x1F, 0x43, 0xD1, 0xC7, 0x48, 0xC3, 0xE7, 0xC7, 0x7A, 0xED, 0xFC, 0xC8, 0xE8, 0x23, 0x7C, 0xDF, 0x21, 0x94, 0xF0, 0x6A, 0x8C, 0xE6, 0xA6, 0xDA, 0x28, 0x56, 0x98, 0xC4, 0x2E, 0x1A, 0x2A, 0xBA, 0xE6, 0xB7, 0xA8, 0x75, 0xE0, 0x93, 0xE1, 0x9A, 0x05, 0xFA, 0x04, 0xCC, 0x5B, 0x90, 0xCE, 0x7B, 0xCD, 0x2F, 0x45, 0xAF, 0xD5, 0x5C, 0x57, 0xC2, 0xB9, 0x5C, 0x19, 0xC7, 0xA4, 0x84, 0x95, 0xE7, 0x65, 0x7B, 0xC3, 0x32, 0xEA, 0x9F, 0xF9, 0x19, 0x21, 0x99, 0x84, 0x75, 0x93, 0xED, 0x20, 0xB8, 0xBA, 0x5F, 0xDE, 0xFE, 0x31, 0x21, 0xAD, 0x3F, 0x25, 0x93, 0x95, 0x02, 0x85, 0x37, 0xF4, 0x4D, 0x1A, 0x11, 0x16, 0x6D, 0x89, 0x54, 0xDE, 0xCF, 0x51, 0x57, 0x06, 0x84, 0xE5, 0x46, 0x28, 0xC2, 0xE4, 0x84, 0x79, 0x56, 0x2A, 0xC4, 0x22, 0x63, 0xED, 0x57, 0x66, 0x33, 0x94, 0x2B, 0x0C, 0x09, 0x85, 0x86, 0xCA, 0x42, 0x1A, 0x78, 0xF6, 0xFC, 0x44, 0xCE, 0x2E, 0xE9, 0x62, 0x6F, 0x04, 0x77, 0xC8, 0x6B, 0x23, 0xC1, 0x28, 0xB3, 0x30, 0xD6, 0xE1, 0x8C, 0x12, 0x33, 0x7B, 0xED, 0xD8, 0xC3, 0x86, 0xF1, 0x1E, 0x05, 0x83, 0x04, 0x74, 0x21, 0x3F, 0xBF, 0x00, 0xAB, 0x10, 0x31, 0x36, 0x2A, 0x18, 0xE5, 0x5D, 0xC8, 0x20, 0x87, 0x51, 0xE1, 0xEA, 0x54, 0xB0, 0xC1, 0xDD, 0x85, 0x1C, 0x04, 0x43, 0x16, 0x06, 0xC0, 0x94, 0xF4, 0x91, 0x7A, 0xDC, 0x1A, 0x46, 0x7B, 0xA4, 0x07, 0xA1, 0xE7, 0x84, 0x52, 0x33, 0x0B, 0xE6, 0x8C, 0xEF, 0x6B, 0xAC, 0x12, 0xC5, 0xC7, 0x37, 0x2F, 0xF7, 0x3E, 0x5F, 0x34, 0xBE, 0xC3, 0x88, 0x81, 0x74, 0xF5, 0xB8, 0x94, 0xA2, 0xED, 0x34, 0x44, 0xE1, 0xB8, 0x1B, 0x36, 0xF3, 0xFF, 0xA0, 0x50, 0x71, 0x77, 0x43, 0x2D, 0xF8, 0x1A, 0x86, 0xD5, 0x63, 0xBA, 0xA5, 0x21, 0x1E, 0xE8, 0xB8, 0xEE, 0x9A, 0x59, 0x81, 0x9C, 0x71, 0xDD, 0x58, 0x65, 0x22, 0x3E, 0xAE, 0x9B, 0x7B, 0x7F, 0x83, 0x08, 0xC2, 0xC6, 0x27, 0x62, 0xD2, 0x9E, 0x0F, 0xB5, 0x51, 0x29, 0x24, 0x1F, 0xC5, 0x86, 0xD4, 0x73, 0x03, 0xBD, 0x33, 0xCD, 0x26, 0xA6, 0x30, 0xF5, 0x12, 0x2C, 0x0D, 0xCA, 0x50, 0xC0, 0x16, 0x2E, 0xAB, 0x01, 0xCD, 0x38, 0x1C, 0xDD, 0xDE, 0x80, 0xB1, 0x0E, 0x43, 0xB4, 0x8C, 0x06, 0x11, 0xEB, 0x23, 0x15, 0xAB, 0xD9, 0xCC, 0xFA, 0xD8, 0xCA, 0x3A, 0xDE, 0xC7, 0x52, 0x59, 0x70, 0x5A, 0x46, 0x33, 0xD7, 0x3F, 0x63, 0xA9, 0x25, 0x71, 0xCB, 0xE1, 0xB6, 0x42, 0x1E, 0x05, 0xFF, 0x4C, 0x14, 0x79, 0x80, 0x62, 0x59, 0x8F, 0xA8, 0x6F, 0x05, 0x42, 0xDA, 0x02, 0x28, 0xF2, 0x20, 0xC5, 0x52, 0x89, 0xA8, 0x3B, 0x03, 0x81, 0xFE, 0x4A, 0x30, 0xC9, 0x8F, 0xA0, 0x0E, 0xA2, 0x65, 0x9A, 0x65, 0x54, 0xDF, 0x94, 0x0F, 0xB0, 0x35, 0xF7, 0x7E, 0x5D, 0x80, 0x4D, 0xBC, 0x74, 0xE7, 0xD2, 0x3C, 0x99, 0x50, 0x76, 0xA9, 0x1A, 0x41, 0xE0, 0x23, 0x58, 0xCD, 0xCA, 0x4B, 0x26, 0x61, 0xB4, 0x4C, 0x98, 0x2F, 0xE5, 0x64, 0x72, 0x6A, 0x56, 0x6A, 0x89, 0x44, 0x9E, 0x5E, 0xD3, 0x83, 0x73, 0xE0, 0xEA, 0x93, 0x2D, 0xCC, 0xD6, 0xE1, 0x62, 0x2E, 0x5B, 0x5F, 0x8F, 0xEF, 0xD7, 0xF0, 0x89, 0xA4, 0xA7, 0x19, 0xEB, 0x9E, 0x66, 0xAC, 0x9E, 0xB9, 0x73, 0x0F, 0x8E, 0x75, 0xC1, 0x4A, 0xA3, 0x10, 0xD5, 0x9D, 0x11, 0xE3, 0xFB, 0x3D, 0x99, 0x0D, 0xD1, 0x70, 0x5C, 0xBC, 0x33, 0x4E, 0x9C, 0x46, 0x4B, 0xC0, 0xCB, 0x1E, 0xED, 0x1A, 0x44, 0x5E, 0x4F, 0x9D, 0x10, 0x27, 0xE6, 0x7E, 0xE4, 0x79, 0x99, 0x93, 0x9E, 0x12, 0x97, 0x09, 0xDB, 0x06, 0xEE, 0xFD, 0xF2, 0x97, 0xE8, 0x5F, 0xB1, 0xDA, 0xD2, 0x52, 0x2D, 0x21, 0xE7, 0xED, 0x10, 0x7E, 0x8C, 0xAE, 0xAE, 0x47, 0x15, 0x5A, 0x22, 0x2B, 0xA5, 0xF3, 0x0B, 0xE7, 0xB5, 0xD6, 0xC1, 0xF6, 0x41, 0xA0, 0xEB, 0x53, 0x81, 0xFD, 0xB0, 0xA9, 0xAB, 0x66, 0x33, 0x94, 0xC0, 0xE1, 0xAC, 0x2F, 0xF1, 0xD5, 0x4F, 0x2F, 0xA4, 0x09, 0x0B, 0x96, 0xAF, 0x59, 0x5F, 0xBE, 0x3C, 0x77, 0xFD, 0x4A, 0x5F, 0xFD, 0x02, 0xCF, 0x84, 0xE8, 0x94, 0x9F, 0xBC, 0x9D, 0xC4, 0x7B, 0xB7, 0x19, 0xC5, 0xA8, 0x4D, 0xA1, 0xE5, 0x30, 0x54, 0xB6, 0x8F, 0xDA, 0xA7, 0x5E, 0xBD, 0xB7, 0xE0, 0x2F, 0x9E, 0x51, 0x99, 0xD3, 0x8E, 0x97, 0x00, 0xE5, 0xCB, 0x78, 0x1C, 0x09, 0x76, 0x49, 0x8D, 0x23, 0xB1, 0x50, 0x02, 0x9C, 0x4F, 0x88, 0xEB, 0x75, 0x89, 0x8A, 0xB2, 0x47, 0xD3, 0x27, 0x7C, 0x8B, 0x7C, 0xB5, 0x54, 0x78, 0x8E, 0x22, 0xE8, 0x84, 0x3C, 0xD1, 0x62, 0x5C, 0xED, 0x29, 0x0E, 0x2A, 0xC6, 0xCF, 0x13, 0x04, 0x6D, 0x7A, 0x3D, 0x7E, 0x41, 0xC3, 0x33, 0x9B, 0xA7, 0xF0, 0x1A, 0xF7, 0xE1, 0x58, 0x0F, 0x42, 0x2B, 0xA2, 0x99, 0xAC, 0xBD, 0xEA, 0xCC, 0xBD, 0xFB, 0xBE, 0x7F, 0xFD, 0x8D, 0x9B, 0xDF, 0xFD, 0xCF, 0x65, 0x7B, 0xDF, 0xFE, 0x0E, 0x56, 0xB6, 0x25, 0x70, 0x51, 0xBE, 0x62, 0xAD, 0x22, 0xA9, 0xF8, 0x5A, 0x6F, 0xDF, 0xDD, 0xA1, 0x2F, 0x06, 0x87, 0x06, 0xAE, 0xB5, 0xB5, 0xE7, 0x02, 0x9B, 0xCF, 0xDA, 0x45, 0x83, 0x50, 0x23, 0x6D, 0xAB, 0x72, 0x27, 0xF9, 0xD2, 0x7F, 0x4C, 0x4F, 0x8D, 0xF8, 0x50, 0xB6, 0x54, 0x08, 0xDE, 0xFD, 0xAC, 0x27, 0x92, 0xCB, 0xE8, 0x09, 0xCE, 0xC6, 0xF6, 0x9D, 0x4B, 0x4E, 0x3E, 0x9F, 0xFC, 0xD9, 0x27, 0x49, 0xC9, 0x2D, 0xF1, 0xA7, 0x4E, 0x31, 0x5B, 0x6D, 0x25, 0x60, 0xEB, 0xD8, 0x1E, 0xDA, 0x72, 0xDB, 0xBA, 0x2E, 0xB6, 0xEC, 0xFA, 0xB4, 0xDA, 0xFE, 0xDE, 0xA7, 0x17, 0xB7, 0xEF, 0x5A, 0xC0, 0xA9, 0x29, 0xD5, 0x69, 0x86, 0x29, 0xDF, 0x32, 0x02, 0x1C, 0x13, 0xAF, 0x5E, 0xFD, 0xDB, 0x2F, 0xD1, 0xC7, 0x4F, 0x4C, 0x2D, 0xD6, 0x12, 0x1B, 0x78, 0xD8, 0x80, 0x17, 0x21, 0xB7, 0xF2, 0x03, 0x96, 0xAB, 0x94, 0x79, 0xB1, 0xBE, 0xFA, 0xFE, 0x9B, 0x0A, 0xFC, 0xB0, 0xBA, 0x56, 0xFB, 0x25, 0xA7, 0xF2, 0x58, 0xE3, 0xD3, 0xB0, 0xF9, 0xAB, 0xF7, 0x01, 0xBB, 0x15, 0x56, 0xBB, 0x28, 0x83, 0x12, 0x47, 0xBF, 0xE2, 0xB9, 0xA1, 0xA9, 0xE5, 0xBD, 0xED, 0x47, 0x3E, 0xBD, 0x0A, 0xF4, 0x11, 0x3D, 0x0A, 0xBC, 0x59, 0x7D, 0x44, 0x7B, 0x07, 0xE1, 0x05, 0xC4, 0x6E, 0xA0, 0x25, 0x35, 0xD3, 0x66, 0xF5, 0xD0, 0xE6, 0xA2, 0xF4, 0xC5, 0x89, 0xF4, 0xD7, 0xEA, 0x71, 0x9B, 0x9D, 0xC7, 0x49, 0x7A, 0xAA, 0xF5, 0xD8, 0xE9, 0xB1, 0x7A, 0xDF, 0x4D, 0x11, 0x7E, 0x42, 0xED, 0xCD, 0x83, 0x63, 0x55, 0xD5, 0x9E, 0x74, 0x3B, 0x72, 0xCC, 0xC6, 0xFA, 0x84, 0x10, 0x73, 0xD4, 0x9E, 0xB6, 0x1A, 0x8D, 0x99, 0x9E, 0xD3, 0xC3, 0xE9, 0x68, 0xAD, 0x51, 0x1A, 0xE9, 0x6F, 0xE0, 0xDD, 0x01, 0xBB, 0x07, 0x13, 0xC4, 0x16, 0xDD, 0xF4, 0x1E, 0xC2, 0x69, 0xB7, 0x94, 0xE0, 0xC6, 0x37, 0x15, 0x2A, 0xA5, 0xD4, 0xDB, 0xE3, 0x2C, 0x74, 0x5C, 0x3C, 0x8D, 0x60, 0xED, 0xDC, 0xE9, 0x71, 0xE5, 0x69, 0xEE, 0xBB, 0x3C, 0x8F, 0x15, 0x4F, 0x7D, 0xAE, 0x34, 0x4E, 0x21, 0x0D, 0xCB, 0x15, 0x45, 0x66, 0x2E, 0x9C, 0x16, 0xFD, 0xDB, 0xD6, 0x5F, 0x4B, 0xA2, 0x4D, 0xBF, 0x6E, 0xAD, 0x2D, 0xDE, 0x06, 0x62, 0x64, 0xA2, 0x78, 0xC7, 0xB4, 0x10, 0xE7, 0x62, 0xCE, 0x9C, 0x02, 0xCB, 0x4B, 0x84, 0xC4, 0x77, 0xF4, 0xDC, 0x6A, 0x1D, 0x1A, 0xCC, 0x6E, 0x6A, 0xB9, 0xDA, 0x4D, 0xDA, 0x1D, 0x8B, 0x6F, 0x1F, 0x94, 0xCD, 0x98, 0x21, 0xE6, 0x76, 0xA8, 0xD1, 0xB7, 0x02, 0x6F, 0x4D, 0xB8, 0xF9, 0x26, 0x17, 0x84, 0x20, 0x91, 0x16, 0x56, 0x9E, 0xBF, 0x61, 0x79, 0xE9, 0x9A, 0xB2, 0x92, 0xCC, 0xA1, 0xF6, 0x61, 0x10, 0x82, 0x5B, 0x03, 0xED, 0x42, 0x94, 0x16, 0x64, 0x6D, 0x9E, 0xBF, 0xAE, 0x91, 0x9C, 0xAB, 0xC8, 0xAA, 0xB9, 0x41, 0x7F, 0x7B, 0x88, 0xBE, 0x7C, 0x84, 0xAE, 0x42, 0x0D, 0x59, 0x1C, 0xC3, 0x5A, 0xDC, 0x50, 0x46, 0x18, 0xD6, 0x89, 0x18, 0xC2, 0xE0, 0xEB, 0xCA, 0xE0, 0x9E, 0x06, 0x16, 0x6F, 0xDF, 0x5B, 0xFB, 0xE6, 0x07, 0xE5, 0xEC, 0xE1, 0x7D, 0x5F, 0x87, 0x37, 0x4B, 0x6A, 0x7E, 0xCA, 0x7D, 0x5D, 0x38, 0xE3, 0xC3, 0x47, 0x83, 0x09, 0x93, 0xF0, 0xBD, 0xE6, 0xFE, 0x96, 0x9E, 0xEA, 0x93, 0xDF, 0xED, 0xBA, 0xBC, 0x80, 0xB9, 0x25, 0x39, 0x6F, 0xC3, 0xB4, 0x75, 0x85, 0xCA, 0xBC, 0xFC, 0xB2, 0x05, 0x6B, 0xF2, 0xF2, 0x8B, 0x97, 0x50, 0x9B, 0xB0, 0xC0, 0x83, 0x5B, 0x97, 0x7D, 0xD7, 0xFB, 0xE6, 0x81, 0xDE, 0xEC, 0xEF, 0x7A, 0xEB, 0x44, 0x9E, 0x51, 0xDB, 0xFB, 0x5B, 0xBA, 0xEE, 0xD8, 0x77, 0xD1, 0x5B, 0x5A, 0x2E, 0x76, 0x57, 0x77, 0x1F, 0xB9, 0xD8, 0x72, 0x75, 0x81, 0xF7, 0xDB, 0x9A, 0x80, 0xBB, 0x40, 0x4D, 0x5D, 0x4B, 0xF7, 0xE5, 0x3B, 0xE2, 0x8B, 0x47, 0x5A, 0xC0, 0xCB, 0x30, 0xCB, 0x1A, 0x3C, 0x02, 0x0F, 0x5E, 0xE9, 0x79, 0xF3, 0x00, 0xEF, 0xAD, 0x3D, 0xBD, 0xBD, 0x75, 0xEA, 0x60, 0xD7, 0x9E, 0x5C, 0x04, 0xF6, 0x64, 0x1C, 0xAA, 0xE6, 0x3B, 0xFB, 0xF9, 0x2B, 0xFD, 0x28, 0xB3, 0x8D, 0xD2, 0x44, 0xBD, 0xC3, 0x24, 0x51, 0x33, 0x2A, 0x37, 0x30, 0xD6, 0xD5, 0xAF, 0xC5, 0x06, 0x21, 0xAF, 0x5F, 0x39, 0xEC, 0x87, 0x6A, 0x76, 0x1C, 0x26, 0x09, 0x69, 0xB5, 0x07, 0x77, 0x36, 0xF0, 0x57, 0x12, 0xF4, 0x51, 0x98, 0x8E, 0xD7, 0x41, 0x9B, 0xDD, 0x26, 0x9D, 0x6D, 0xA2, 0xCD, 0xEE, 0xD8, 0x60, 0x2A, 0x57, 0x31, 0xDE, 0x45, 0x19, 0x95, 0x69, 0x06, 0x95, 0x8A, 0xB1, 0x51, 0x45, 0xAB, 0xD8, 0x60, 0x50, 0xE1, 0x86, 0xC0, 0x0E, 0x6F, 0xF6, 0x3D, 0x33, 0x79, 0x80, 0x94, 0x12, 0x5E, 0x3F, 0x0E, 0xB3, 0x87, 0xE5, 0xEC, 0x38, 0x8E, 0x93, 0x3C, 0x76, 0x7A, 0x04, 0xC1, 0xAD, 0xCA, 0x90, 0x95, 0xC4, 0xE6, 0x99, 0x17, 0x74, 0x33, 0xBB, 0xA4, 0x49, 0x67, 0x68, 0xB3, 0x2E, 0xE8, 0x66, 0xE9, 0x69, 0x33, 0x3B, 0x86, 0xFD, 0x2A, 0x14, 0x8C, 0x77, 0x0B, 0x19, 0x33, 0x0A, 0x0D, 0x65, 0xE0, 0xAE, 0x36, 0xA8, 0xCC, 0x06, 0x95, 0x82, 0x51, 0x11, 0xC9, 0xA8, 0x18, 0xA1, 0x03, 0xB5, 0xEF, 0xA8, 0x0D, 0xCB, 0x51, 0xC3, 0x5A, 0xAE, 0xA1, 0xAC, 0xDE, 0x50, 0x59, 0xAF, 0x89, 0xFE, 0xDB, 0x30, 0xFB, 0x6F, 0x7D, 0xEC, 0xDF, 0x6D, 0xEC, 0x7B, 0x04, 0x2D, 0xB7, 0x0D, 0x9C, 0x72, 0x0D, 0xFC, 0x8E, 0xD1, 0x7B, 0xAF, 0x92, 0xDF, 0x2E, 0xE0, 0x3B, 0x35, 0xC1, 0xED, 0x4A, 0xE4, 0x5B, 0xB3, 0x34, 0xA9, 0x4D, 0x9A, 0x54, 0x3F, 0x7A, 0x3F, 0xEF, 0x48, 0xAC, 0x93, 0x26, 0x1A, 0x69, 0x33, 0xEB, 0x1C, 0xAF, 0x80, 0x49, 0x9F, 0x69, 0x67, 0x5E, 0xA7, 0xCD, 0xB4, 0x3A, 0x30, 0xA7, 0x80, 0x51, 0xA5, 0xA2, 0x6D, 0x8C, 0x34, 0x54, 0xA8, 0x0D, 0x81, 0xDD, 0x52, 0xF6, 0x48, 0x1F, 0x32, 0x80, 0xB3, 0x7F, 0xEA, 0x43, 0x1E, 0x71, 0xD8, 0xF7, 0xC1, 0x31, 0x68, 0xF6, 0xFA, 0x4D, 0xEE, 0xF5, 0x90, 0xD0, 0x69, 0xDA, 0x28, 0xA1, 0xBD, 0x22, 0x72, 0x8A, 0x56, 0x65, 0x30, 0xF9, 0x40, 0xF2, 0xEF, 0x5A, 0xC0, 0xCF, 0x09, 0xA0, 0x5E, 0x0A, 0x79, 0x7E, 0xF8, 0xDB, 0xAC, 0x4D, 0xEA, 0x78, 0x91, 0xFE, 0xF1, 0x97, 0x25, 0xFB, 0x28, 0xF1, 0xCB, 0xBE, 0x78, 0x30, 0x42, 0xB9, 0x06, 0x79, 0x0F, 0x86, 0x9F, 0x2B, 0xC1, 0xAE, 0xAB, 0x1E, 0x77, 0xFE, 0xC8, 0xC8, 0x5A, 0xC4, 0x59, 0xF4, 0x33, 0xA4, 0xFB, 0xA0, 0xF7, 0xEC, 0xD4, 0x2C, 0xC7, 0x9D, 0x99, 0x1F, 0x84, 0xCA, 0xE7, 0x89, 0x53, 0xEE, 0x0D, 0xA4, 0xE8, 0x41, 0xCF, 0xA4, 0x62, 0xB2, 0xE7, 0x15, 0xD8, 0x85, 0x91, 0xA6, 0x73, 0xD5, 0x6A, 0xA0, 0x87, 0xD7, 0x9A, 0x40, 0xEA, 0x91, 0x88, 0xFC, 0xE9, 0xDE, 0xBB, 0xD8, 0x44, 0x9D, 0x9E, 0x82, 0xD6, 0x03, 0xF0, 0xE4, 0xB4, 0x51, 0x70, 0x0A, 0x4C, 0x78, 0x0B, 0xBA, 0x30, 0x0F, 0x25, 0xA5, 0x9B, 0xD4, 0xCF, 0xDB, 0x2E, 0x9D, 0xFD, 0x43, 0x1F, 0x98, 0x8E, 0xF1, 0x0D, 0xD9, 0x9C, 0x0F, 0x3D, 0x88, 0x4E, 0x49, 0xCF, 0x72, 0xFE, 0x30, 0xE1, 0x5C, 0x09, 0xED, 0x1A, 0xD9, 0xF3, 0x6A, 0x4A, 0xBC, 0xC0, 0x65, 0x9E, 0x68, 0x54, 0xED, 0xBF, 0x79, 0x7B, 0xDB, 0x70, 0x76, 0x2E, 0x4D, 0xC6, 0xFE, 0x7D, 0xA4, 0xAD, 0x84, 0x67, 0x8F, 0x23, 0x3B, 0xB3, 0x68, 0x29, 0xF5, 0xCB, 0x7B, 0xCF, 0x52, 0x38, 0x98, 0x3A, 0xDE, 0x7D, 0x54, 0xA4, 0x89, 0x97, 0xA4, 0xF9, 0xB9, 0x9F, 0x3F, 0x2B, 0x7C, 0xE7, 0x7A, 0xF5, 0x8D, 0x98, 0xAF, 0x5E, 0xCF, 0x8D, 0xD9, 0x1C, 0xA9, 0x18, 0xDE, 0x48, 0xE6, 0x82, 0x23, 0x5C, 0x57, 0x6E, 0x38, 0x07, 0x79, 0x29, 0x37, 0xE4, 0x3E, 0xCF, 0x0D, 0xA7, 0x23, 0xFF, 0x75, 0x73, 0xC3, 0x8D, 0xFF, 0xAF, 0xDC, 0x70, 0xE4, 0x5F, 0xB9, 0xE1, 0x7F, 0xCB, 0xDC, 0x70, 0xB3, 0x42, 0x7E, 0x80, 0x8A, 0x7C, 0x9F, 0xAE, 0x90, 0xCF, 0xA1, 0x8B, 0x90, 0xD1, 0x9F, 0x5A, 0xFF, 0xA5, 0x72, 0x45, 0xE8, 0xBF, 0x4F, 0xAE, 0xC8, 0xF9, 0xBF, 0xE4, 0x8A, 0xFC, 0x2D, 0x0D, 0x9C, 0x2D, 0x96, 0x89, 0xED, 0x87, 0x47, 0x73, 0x45, 0x96, 0xFE, 0xAC, 0x37, 0x74, 0x18, 0x78, 0x5E, 0xFF, 0x6D, 0x20, 0xB4, 0xA5, 0x00, 0x2A, 0x04, 0x99, 0x60, 0xB9, 0x3B, 0x13, 0x74, 0x9D, 0x3B, 0x79, 0xFF, 0xB9, 0x5C, 0xB0, 0x1E, 0xC7, 0xBE, 0x46, 0x94, 0x44, 0xA4, 0x09, 0x1C, 0xCF, 0x48, 0xA1, 0x43, 0x3D, 0xD1, 0x09, 0xF7, 0x63, 0x36, 0xB5, 0xCD, 0x95, 0x02, 0xC6, 0x93, 0x89, 0x1E, 0xF5, 0xEF, 0xC5, 0x69, 0xC6, 0x6A, 0xC1, 0x5E, 0xBB, 0xC0, 0xC2, 0x94, 0x04, 0x55, 0xF9, 0xEA, 0x35, 0x37, 0xCC, 0x98, 0x8F, 0x34, 0xD1, 0x91, 0x02, 0xF1, 0x7C, 0x52, 0x73, 0xD1, 0x15, 0xAE, 0x74, 0xCF, 0x57, 0x6F, 0xBF, 0x61, 0xCE, 0xF6, 0x91, 0x2E, 0x23, 0xFB, 0x8D, 0xC6, 0x8F, 0xAD, 0xCC, 0xD6, 0x20, 0x95, 0xAF, 0x7E, 0xEA, 0x4D, 0x2B, 0x27, 0x48, 0xCA, 0x71, 0x9C, 0x29, 0xE1, 0x59, 0x05, 0x7D, 0x42, 0x74, 0x6D, 0x17, 0xC8, 0x03, 0x56, 0xD3, 0x24, 0x1B, 0x30, 0x31, 0x16, 0x6A, 0x15, 0x40, 0x3A, 0x66, 0x2B, 0x7F, 0x03, 0x99, 0xD9, 0x71, 0x5B, 0x83, 0x50, 0x85, 0x94, 0x40, 0x78, 0xC6, 0xE3, 0x1E, 0xB4, 0xD8, 0x7A, 0x1C, 0x85, 0x36, 0x9F, 0xB5, 0xC6, 0x9F, 0x63, 0x52, 0x83, 0x8B, 0x7D, 0xF5, 0x94, 0x9B, 0x44, 0x93, 0x5D, 0x55, 0x82, 0xA3, 0xF1, 0x85, 0xD7, 0x15, 0x52, 0x25, 0x52, 0x00, 0xD5, 0xD9, 0x83, 0xAC, 0xC4, 0x8A, 0x77, 0x3D, 0x1A, 0x7F, 0x7C, 0xF0, 0xED, 0xE0, 0x6E, 0xE4, 0x0F, 0xD9, 0xEB, 0x83, 0x32, 0x46, 0x6C, 0x4D, 0x80, 0xF0, 0xAB, 0xC2, 0xA8, 0x13, 0x9E, 0xDB, 0x4E, 0x60, 0x79, 0x43, 0xF9, 0x85, 0xF9, 0x74, 0x7D, 0x46, 0x64, 0x64, 0xA1, 0x74, 0x18, 0xF1, 0x85, 0x93, 0xBB, 0x12, 0xB0, 0x52, 0x88, 0xB1, 0xD6, 0xAA, 0x2C, 0xA4, 0x25, 0x19, 0x75, 0x9E, 0x0E, 0x7E, 0x87, 0x98, 0x9F, 0xA5, 0x5C, 0x71, 0x7A, 0xF5, 0xBA, 0xF4, 0xF0, 0x29, 0x20, 0xCF, 0xF0, 0x81, 0x5F, 0x6B, 0x1B, 0x5E, 0x76, 0xAF, 0x7D, 0x60, 0xF0, 0xDA, 0xAD, 0xDE, 0x8F, 0xE0, 0x14, 0xDF, 0xD8, 0x59, 0x13, 0x3E, 0x27, 0x12, 0x3E, 0x8F, 0x6D, 0x99, 0xAC, 0x59, 0x64, 0xC0, 0xBE, 0xCE, 0x67, 0x4F, 0x35, 0x1D, 0xCF, 0xFC, 0xCB, 0xCF, 0xB5, 0xC7, 0x4D, 0x25, 0x19, 0xE6, 0x3A, 0x81, 0x63, 0xDD, 0xF6, 0x29, 0xFB, 0xDE, 0x3D, 0xB6, 0x93, 0x07, 0xD2, 0x21, 0x1F, 0xB3, 0x38, 0x38, 0x76, 0xD6, 0x87, 0xB1, 0x33, 0x92, 0x5B, 0x66, 0x35, 0x9F, 0x8B, 0x9F, 0xF1, 0x59, 0xCB, 0x64, 0x7B, 0xD0, 0xBF, 0xF2, 0x81, 0x7F, 0xE5, 0x03, 0xFF, 0xDF, 0xF9, 0x80, 0x12, 0xBC, 0x9F, 0x18, 0xF0, 0x82, 0x2F, 0xDC, 0xC4, 0xF1, 0x00, 0x35, 0x49, 0x39, 0xF1, 0x1D, 0x90, 0xDF, 0xEB, 0xDF, 0xF9, 0xE7, 0x8A, 0x3C, 0xEB, 0x72, 0x45, 0x2D, 0x75, 0xCB, 0xFE, 0xBE, 0x2B, 0x43, 0xEC, 0xBF, 0x46, 0xF4, 0x18, 0xA9, 0x93, 0x68, 0x22, 0xFC, 0xFA, 0x44, 0x81, 0xBB, 0x96, 0x2B, 0xFD, 0x2C, 0x62, 0x8A, 0xD0, 0xAF, 0x50, 0x42, 0x89, 0xF0, 0xF3, 0x15, 0xCF, 0x93, 0x23, 0xE1, 0xD0, 0x24, 0xD1, 0x25, 0xAE, 0xE6, 0xC4, 0xDF, 0x22, 0xEE, 0xD5, 0x7A, 0x8F, 0x3C, 0x38, 0x70, 0xEE, 0x36, 0x97, 0x12, 0xF5, 0x53, 0xF4, 0xB3, 0x5A, 0x6F, 0x75, 0xCC, 0x5F, 0x0F, 0x5E, 0x24, 0x64, 0xD0, 0xAD, 0xE6, 0xCE, 0x77, 0x56, 0xC0, 0x4F, 0xBE, 0x7F, 0x70, 0x6A, 0x86, 0xCC, 0xF2, 0xD7, 0x23, 0x47, 0x37, 0xAD, 0x80, 0x71, 0x54, 0x3B, 0x3C, 0x43, 0x66, 0xFB, 0xE1, 0xCC, 0x90, 0xC1, 0xCE, 0xA5, 0x0C, 0xFD, 0xA3, 0xE0, 0x93, 0x5A, 0xA8, 0x03, 0x82, 0xC2, 0x11, 0x26, 0xA4, 0x55, 0xD8, 0xFE, 0x14, 0x73, 0xE3, 0xDF, 0xB5, 0x32, 0x54, 0x44, 0xAE, 0x19, 0xC2, 0x51, 0x84, 0x1F, 0x69, 0xB4, 0x2F, 0x61, 0x94, 0x73, 0x18, 0xEE, 0xE1, 0xEA, 0x56, 0xAE, 0xA8, 0xD2, 0xC6, 0x28, 0x73, 0x0F, 0xEF, 0x8F, 0x34, 0x8B, 0x1F, 0x92, 0x6C, 0xEC, 0x1E, 0xAE, 0x95, 0x04, 0xA6, 0xBD, 0x6F, 0x63, 0x94, 0x8F, 0x49, 0x4F, 0xAE, 0xA7, 0xD0, 0x59, 0x95, 0xF2, 0xB1, 0xE1, 0x5D, 0xAD, 0x81, 0xD9, 0x0D, 0x1C, 0x56, 0x05, 0x91, 0xAB, 0x20, 0x87, 0x9D, 0x53, 0xCC, 0x9A, 0x48, 0x13, 0x97, 0x0B, 0xA1, 0x5A, 0x0A, 0xC5, 0x23, 0x5F, 0xC4, 0x0A, 0x47, 0x10, 0x00, 0x13, 0x39, 0xB5, 0x81, 0xEA, 0x56, 0xA3, 0x86, 0xA2, 0xC6, 0xB9, 0x9C, 0x93, 0x0A, 0xE4, 0x88, 0x1B, 0xAE, 0x8F, 0xDE, 0xAF, 0x89, 0xEC, 0x48, 0xB9, 0x6E, 0xEF, 0x32, 0xB5, 0x66, 0xA6, 0x04, 0x63, 0x57, 0x41, 0xA3, 0x77, 0xB4, 0xE1, 0xFC, 0x0F, 0x35, 0x06, 0x5C, 0x0A, 0x42, 0x5E, 0x6E, 0xF4, 0x64, 0x31, 0x22, 0xAC, 0x43, 0x01, 0x0B, 0x15, 0x1A, 0x88, 0x7A, 0xAC, 0xAC, 0x1F, 0x5E, 0x7A, 0xC7, 0xCE, 0x34, 0x9D, 0xAA, 0xF6, 0xCD, 0xC6, 0xD5, 0x0A, 0x67, 0x1F, 0x24, 0xE2, 0x60, 0xD1, 0x6B, 0x13, 0xAB, 0x4F, 0x04, 0xC8, 0x7C, 0xA9, 0xCA, 0xF3, 0xFD, 0x68, 0xA7, 0x22, 0x1E, 0x64, 0x0D, 0x3C, 0x73, 0x1F, 0xB6, 0x0A, 0xAD, 0x38, 0xDF, 0x3F, 0x4C, 0x8B, 0x6B, 0x16, 0xF5, 0xE4, 0xD4, 0x2C, 0x42, 0xB5, 0x19, 0xB6, 0xFE, 0x95, 0x4C, 0xBD, 0x66, 0x8B, 0x60, 0x02, 0xFC, 0x0D, 0x2A, 0xC3, 0x38, 0x10, 0x6C, 0x07, 0x3F, 0xB4, 0x29, 0x01, 0xD7, 0x45, 0xF5, 0xD5, 0xDD, 0x7A, 0xA8, 0xB9, 0x81, 0xDF, 0x74, 0x4D, 0xA0, 0x7E, 0xCD, 0x2B, 0xD7, 0xC2, 0xB6, 0xD3, 0xFF, 0x64, 0xF3, 0x38, 0xE2, 0x18, 0x68, 0x7D, 0x93, 0x2E, 0x6B, 0x26, 0x6C, 0xBD, 0xDB, 0x8F, 0xF5, 0x0A, 0xCE, 0x5B, 0x6E, 0x2B, 0x69, 0x61, 0x69, 0x88, 0xA5, 0xBE, 0xA2, 0xC7, 0x9B, 0x06, 0x43, 0x62, 0x02, 0xD5, 0x55, 0xF6, 0x54, 0x27, 0xA3, 0x55, 0xCA, 0x78, 0x01, 0xD4, 0xAE, 0x61, 0x1C, 0xDD, 0x88, 0x2A, 0xBE, 0x91, 0xF2, 0xAE, 0x4B, 0x55, 0xE2, 0xBF, 0x3A, 0x90, 0x14, 0x39, 0x26, 0x4A, 0x7F, 0x88, 0xEF, 0xF2, 0xA2, 0x1C, 0xDF, 0x68, 0xD6, 0x55, 0xA1, 0xD3, 0x86, 0xDE, 0xE9, 0x51, 0xA3, 0x3B, 0x28, 0xCD, 0xAB, 0x43, 0x2A, 0x9C, 0x10, 0x05, 0xD8, 0xDD, 0x6A, 0x0B, 0xED, 0xA0, 0xF8, 0x69, 0xCB, 0xB9, 0x0B, 0x50, 0x75, 0xFB, 0x23, 0xF1, 0xAA, 0x50, 0x6A, 0xF6, 0xEF, 0x6A, 0x06, 0xEE, 0xBD, 0xAC, 0xEB, 0x37, 0x2B, 0xC5, 0xDB, 0x8F, 0x26, 0xFF, 0x7E, 0x6E, 0xDA, 0x9F, 0x52, 0xE8, 0x58, 0xC8, 0x13, 0xF5, 0x44, 0xAD, 0xC7, 0x93, 0xE0, 0x04, 0x5C, 0x9B, 0x07, 0x65, 0x60, 0xAD, 0xCA, 0x54, 0xB7, 0xF1, 0x8B, 0xC3, 0x42, 0x96, 0x0A, 0x2C, 0x06, 0x60, 0x7C, 0x64, 0x2C, 0xC1, 0x3C, 0xBA, 0x1D, 0x4C, 0xEF, 0x88, 0x3C, 0x9E, 0x32, 0x3E, 0x7D, 0x83, 0x26, 0x23, 0xED, 0x40, 0x0A, 0x50, 0x20, 0xEF, 0x9F, 0x34, 0xAE, 0xC0, 0xE4, 0x99, 0x47, 0x45, 0x1C, 0x9E, 0x9A, 0xF9, 0x6A, 0x7B, 0xB4, 0x03, 0x87, 0x4F, 0xC3, 0x4E, 0xD1, 0x97, 0xF2, 0x50, 0xE3, 0x1E, 0xCC, 0xFF, 0x38, 0xBC, 0xCB, 0xE6, 0xB3, 0x72, 0x13, 0xEE, 0x8B, 0x37, 0xCF, 0xB5, 0x6D, 0x3E, 0x30, 0x29, 0x12, 0x89, 0x42, 0x12, 0x05, 0xDF, 0x36, 0x44, 0x2E, 0xEA, 0xDA, 0x7C, 0xC2, 0xA6, 0x66, 0x21, 0xCD, 0x50, 0x44, 0xE1, 0x79, 0xF1, 0x84, 0x8D, 0x54, 0xAC, 0xC3, 0x6F, 0x21, 0x15, 0xF6, 0xBF, 0x07, 0xE7, 0x70, 0x02, 0xF0, 0xFA, 0x52, 0x74, 0xAB, 0x9A, 0x1B, 0x93, 0x08, 0x71, 0x60, 0x9A, 0xC7, 0xD4, 0x37, 0xC2, 0xF8, 0x97, 0x72, 0xE3, 0x05, 0x9C, 0x62, 0x34, 0x45, 0x2E, 0xA6, 0xFA, 0x9B, 0xBF, 0xCC, 0xC1, 0x35, 0x36, 0xEA, 0xA9, 0x44, 0xBB, 0x91, 0x42, 0x05, 0x2B, 0x47, 0x6F, 0x7F, 0xA3, 0xC3, 0x99, 0x0C, 0x27, 0xC4, 0xEC, 0xE5, 0x40, 0x4F, 0x43, 0x9C, 0xCA, 0xA9, 0x1F, 0xB9, 0xEC, 0x52, 0x42, 0x99, 0xC1, 0xBD, 0x54, 0xF8, 0x2C, 0x1C, 0xD6, 0xAC, 0xD0, 0xB2, 0x7A, 0x7F, 0x88, 0xEE, 0x13, 0x29, 0x34, 0x6F, 0xEE, 0x57, 0xB8, 0x3D, 0x65, 0x99, 0xB6, 0xF1, 0x70, 0x08, 0xD5, 0x4A, 0x7A, 0xEA, 0x3D, 0xAF, 0x5F, 0xE4, 0x13, 0xBE, 0x1F, 0x0D, 0x90, 0x9D, 0x80, 0xE8, 0xC8, 0x3A, 0x71, 0xC0, 0x00, 0x1D, 0xED, 0x60, 0xA5, 0xC8, 0x35, 0x0C, 0xFF, 0x81, 0x2F, 0x73, 0x54, 0x08, 0x6E, 0xC5, 0x5F, 0x59, 0x48, 0xE4, 0xAA, 0xC9, 0xD5, 0xA9, 0x84, 0x82, 0x0A, 0x29, 0x3E, 0xF6, 0x37, 0x4C, 0x42, 0xD8, 0xF6, 0x85, 0x61, 0x23, 0xE4, 0x19, 0xEF, 0x0A, 0x23, 0x17, 0xB1, 0xF4, 0xD8, 0x5E, 0x69, 0xA3, 0x5E, 0x83, 0x34, 0xD5, 0x62, 0x5C, 0xCB, 0xBA, 0x06, 0x45, 0xE1, 0xB5, 0xA7, 0x45, 0x6C, 0x91, 0x82, 0x52, 0x34, 0x3E, 0xAB, 0x62, 0xFA, 0x60, 0xEE, 0x24, 0xEA, 0xE7, 0xAE, 0x59, 0xFF, 0x69, 0x0D, 0x5A, 0xE7, 0xF2, 0x2C, 0x81, 0xA9, 0xBF, 0xD1, 0xAC, 0xB6, 0x29, 0xCE, 0x0B, 0xE4, 0x9E, 0x44, 0x7D, 0x3E, 0xB1, 0x45, 0x71, 0x5B, 0x97, 0x7E, 0xE1, 0xD2, 0x6A, 0xB9, 0xC2, 0xF4, 0x9E, 0x57, 0x84, 0x37, 0xEF, 0xA4, 0x58, 0x13, 0xF3, 0x68, 0xB6, 0xC5, 0x59, 0xDC, 0x81, 0xD0, 0x2F, 0xF5, 0xFC, 0x61, 0xF6, 0xF9, 0x74, 0x11, 0xCF, 0x8F, 0xBB, 0xE2, 0xB6, 0x6E, 0x7E, 0x2F, 0x52, 0x3A, 0x0A, 0x7A, 0x65, 0x3B, 0xEF, 0xB3, 0x51, 0x90, 0xCD, 0x59, 0x3A, 0x3C, 0x0A, 0xE2, 0xF8, 0x5E, 0xEC, 0x27, 0x41, 0xBB, 0xFB, 0xB8, 0xCD, 0xDC, 0xB2, 0xFE, 0x61, 0x9E, 0x43, 0xBB, 0x03, 0x12, 0xD3, 0x2D, 0x82, 0x80, 0x0B, 0x54, 0x34, 0x7A, 0xA4, 0xD6, 0xD7, 0xC4, 0xC5, 0xC1, 0x86, 0x14, 0x73, 0xEB, 0x0D, 0xAB, 0xF7, 0xCF, 0xE3, 0xF0, 0x1A, 0x99, 0x14, 0x95, 0xE6, 0xA4, 0xCC, 0xE3, 0x08, 0x45, 0xC7, 0x62, 0x5B, 0x2D, 0xB3, 0xC6, 0xDF, 0xD7, 0x16, 0x72, 0xA6, 0x3B, 0xC0, 0x5E, 0x42, 0xBE, 0x2F, 0xFD, 0xD2, 0xDE, 0x69, 0xFB, 0x11, 0x2C, 0xAA, 0xD0, 0xA6, 0xFD, 0x7D, 0xDC, 0xFF, 0x9A, 0xAA, 0xA1, 0x4B, 0xCB, 0xE0, 0x8B, 0xA4, 0xFF, 0x27, 0x70, 0xDF, 0xBC, 0x5E, 0x65, 0xFB, 0xD8, 0x70, 0xD6, 0xF2, 0x81, 0x9A, 0xBA, 0xC2, 0x35, 0x81, 0xDD, 0x3B, 0xEC, 0x07, 0x25, 0x22, 0x77, 0x6B, 0x33, 0x18, 0x4D, 0xA9, 0x81, 0xD1, 0x6E, 0x51, 0x7E, 0xB8, 0x24, 0x24, 0x4F, 0x01, 0x03, 0x07, 0x78, 0x63, 0xA2, 0xA2, 0xC7, 0x94, 0x63, 0x21, 0x03, 0x92, 0xB9, 0x54, 0x96, 0x29, 0xC6, 0x85, 0xFD, 0x6A, 0xB3, 0xC5, 0x10, 0x94, 0x3D, 0x86, 0x8D, 0xDC, 0x11, 0x52, 0xC4, 0xA1, 0x87, 0x23, 0x28, 0x60, 0x0E, 0x55, 0x93, 0x71, 0xA3, 0x85, 0xE2, 0x8B, 0xF1, 0x38, 0xF3, 0xC8, 0x80, 0x3D, 0x03, 0x92, 0xF7, 0xA9, 0x29, 0xCF, 0x25, 0x53, 0xB7, 0x9E, 0x37, 0x04, 0xA9, 0xC6, 0x24, 0xA7, 0xDD, 0x0F, 0x29, 0x52, 0x8D, 0x49, 0x5E, 0x40, 0xAB, 0x2C, 0x1A, 0x3F, 0x97, 0x64, 0x3E, 0x12, 0x46, 0x3D, 0x16, 0xF2, 0xAC, 0xF5, 0x05, 0xC9, 0xAF, 0x4C, 0x5D, 0x06, 0x9E, 0x51, 0xEC, 0xB6, 0x96, 0x51, 0x7B, 0x3D, 0x95, 0x57, 0x3E, 0xA6, 0x67, 0x7A, 0x6E, 0x68, 0xB1, 0x9A, 0x3E, 0x6A, 0xAD, 0xFA, 0x24, 0x65, 0x2B, 0x19, 0xAE, 0x34, 0x6F, 0x10, 0x2E, 0xD1, 0x36, 0xDB, 0x43, 0xFB, 0x3C, 0x05, 0xD1, 0xCB, 0xB1, 0x32, 0xB8, 0x1D, 0xB1, 0x13, 0x53, 0x88, 0xF9, 0x16, 0x2C, 0x0B, 0xFB, 0x39, 0x0C, 0x99, 0x53, 0xD7, 0xE1, 0x13, 0x4D, 0xF3, 0xA7, 0x71, 0x27, 0xDF, 0xF9, 0xFB, 0x2E, 0x4B, 0x58, 0x96, 0x63, 0x4B, 0xBD, 0x67, 0x15, 0x85, 0xEA, 0x81, 0x70, 0x96, 0x29, 0x7A, 0x1E, 0x57, 0x2B, 0x85, 0x7A, 0x46, 0x55, 0x26, 0xC7, 0x6B, 0xC4, 0xC4, 0xE5, 0x93, 0xA1, 0x18, 0x0C, 0x9F, 0xA8, 0xE5, 0x25, 0xC7, 0x02, 0x47, 0x36, 0x32, 0x25, 0x8A, 0x6A, 0x3C, 0xD4, 0x97, 0xF5, 0xD8, 0xC4, 0x9D, 0x45, 0x3A, 0x31, 0x4B, 0x18, 0x7E, 0x9F, 0xF7, 0x85, 0x00, 0x1E, 0x10, 0x87, 0x44, 0x94, 0x85, 0x4D, 0x59, 0x1C, 0x02, 0xC2, 0x45, 0xEC, 0xC5, 0xE1, 0x46, 0xA6, 0x8E, 0xD8, 0x2B, 0xC2, 0x66, 0x86, 0xE6, 0xAD, 0xC8, 0xBC, 0x94, 0x07, 0xE8, 0x60, 0x0B, 0xA5, 0xE7, 0x31, 0xC1, 0xCB, 0x5B, 0x2C, 0x1C, 0xDD, 0xB0, 0xB6, 0x4E, 0xC6, 0x8D, 0xC8, 0x9D, 0x44, 0x20, 0xD8, 0x0F, 0xB9, 0x50, 0xC5, 0x9C, 0xEB, 0x35, 0x7B, 0x9E, 0xB5, 0x8D, 0x32, 0x81, 0xF5, 0xBE, 0x3D, 0xA1, 0xB3, 0xE9, 0xB0, 0x8D, 0xEB, 0xF0, 0x16, 0x57, 0x45, 0xDE, 0x8E, 0x96, 0x3A, 0x60, 0x61, 0x87, 0xA1, 0x6A, 0x25, 0xD3, 0xD2, 0x6F, 0xD4, 0xCC, 0xAD, 0x5B, 0xB3, 0xBB, 0x7F, 0xAD, 0xD6, 0x9B, 0x46, 0x03, 0x94, 0x94, 0x76, 0x2F, 0x4F, 0x86, 0x7A, 0x3C, 0x91, 0xCE, 0x71, 0x91, 0xB6, 0xB9, 0x6F, 0xB3, 0x09, 0x0E, 0x18, 0x31, 0x54, 0x45, 0x0F, 0x7B, 0x8D, 0x74, 0xF8, 0x88, 0x76, 0x8F, 0x30, 0xAA, 0x64, 0x18, 0x46, 0xB2, 0x47, 0xFF, 0x4E, 0x3E, 0x33, 0x7A, 0xC4, 0xEB, 0x71, 0xF6, 0x70, 0xE8, 0xF0, 0x9E, 0x49, 0x6A, 0x24, 0x19, 0xDB, 0xBA, 0x88, 0xDF, 0xFF, 0xDD, 0x1F, 0xE6, 0x90, 0x8A, 0x5C, 0x04, 0x98, 0x83, 0x63, 0x36, 0xA3, 0x9D, 0x06, 0x3C, 0x99, 0xB9, 0xA9, 0x35, 0x7C, 0x64, 0x6D, 0xE8, 0xBE, 0x6F, 0x43, 0xFF, 0xA4, 0x08, 0xDF, 0x91, 0x08, 0xFF, 0x11, 0xE3, 0x7A, 0x65, 0x62, 0x2F, 0x81, 0x36, 0x32, 0x9D, 0xD6, 0x07, 0xE2, 0xD9, 0x23, 0xFA, 0x57, 0x6B, 0x3C, 0x8D, 0x16, 0xAE, 0xFA, 0x80, 0xD7, 0x2F, 0xDD, 0x11, 0x9B, 0x62, 0x8B, 0x45, 0xF0, 0x97, 0xD0, 0xBD, 0x2A, 0x85, 0xD7, 0xDC, 0xEE, 0x9D, 0x60, 0xB3, 0x45, 0x22, 0x8A, 0x9F, 0xA4, 0xEF, 0x3E, 0x63, 0x1E, 0xC4, 0x46, 0x49, 0x75, 0x4A, 0x68, 0x2F, 0x2D, 0xAB, 0x17, 0x2C, 0x39, 0x2C, 0x15, 0x8E, 0x3A, 0x5C, 0x75, 0x1A, 0x5B, 0xEC, 0x57, 0x6F, 0x0B, 0xBB, 0xBF, 0x67, 0x52, 0x73, 0x4D, 0x78, 0x4D, 0xD0, 0xA2, 0x2F, 0x72, 0x90, 0x55, 0x2C, 0xB7, 0x91, 0x95, 0xFE, 0x09, 0x82, 0x68, 0xAB, 0xF7, 0x63, 0xD7, 0x71, 0x24, 0xF6, 0x99, 0xB2, 0xDA, 0x27, 0x5B, 0x15, 0x7E, 0xFF, 0x64, 0x9F, 0xAC, 0x2F, 0x6E, 0xBE, 0x3C, 0xA7, 0x2C, 0x7C, 0x38, 0x30, 0x86, 0x00, 0xC4, 0xA3, 0x6B, 0x5A, 0x3A, 0x30, 0xD1, 0x0A, 0xA5, 0x0E, 0xAC, 0xA0, 0x6C, 0xB3, 0x15, 0xEC, 0xB6, 0x04, 0x0D, 0x11, 0xC7, 0xD3, 0xF6, 0xC0, 0xAB, 0x6E, 0x4B, 0x8D, 0x17, 0xDA, 0x43, 0xC1, 0xB4, 0x1A, 0x02, 0x1C, 0xA5, 0x5E, 0xC0, 0x23, 0xC4, 0xF7, 0x19, 0x07, 0x9C, 0xA8, 0xA9, 0xCB, 0xCE, 0xEF, 0x31, 0xD6, 0x0E, 0xA4, 0x1F, 0x7F, 0x78, 0xB9, 0x96, 0xDC, 0x2B, 0x85, 0x5A, 0x8E, 0x49, 0x88, 0xB5, 0x16, 0x52, 0x63, 0xEE, 0x55, 0x71, 0xB6, 0xBF, 0x71, 0x74, 0x97, 0xDB, 0x6C, 0x87, 0xB1, 0xA7, 0xFD, 0x84, 0xCB, 0xEC, 0x99, 0xA1, 0x69, 0x03, 0x4B, 0x57, 0xE6, 0xBB, 0xA3, 0x26, 0x0F, 0x3B, 0xEF, 0x33, 0xC5, 0x15, 0xB5, 0x76, 0x86, 0xEF, 0xE5, 0x5D, 0x4B, 0x2C, 0x64, 0x74, 0xEC, 0xF5, 0x20, 0x3A, 0x8E, 0x7C, 0xBA, 0xB0, 0x6E, 0x33, 0x88, 0xCE, 0x99, 0x7E, 0xA3, 0x7D, 0x01, 0x88, 0x8E, 0xC0, 0x31, 0x16, 0x9D, 0xAE, 0x23, 0x59, 0xA8, 0xC7, 0xAD, 0x94, 0xB1, 0xE8, 0x34, 0x7B, 0x1C, 0x85, 0x03, 0x6C, 0x9B, 0xAB, 0xA2, 0xD5, 0xBE, 0x20, 0x3A, 0x85, 0xBB, 0x6D, 0xCC, 0xB1, 0xE8, 0xAC, 0xFD, 0xF0, 0x35, 0x66, 0xB4, 0xD1, 0xF7, 0x71, 0x36, 0x27, 0x02, 0x44, 0xA7, 0x0B, 0x44, 0xE7, 0xCA, 0x62, 0x42, 0x70, 0xF3, 0x0F, 0x73, 0xF8, 0x90, 0xD6, 0xE3, 0x7F, 0x8B, 0xCE, 0xF0, 0x0F, 0x51, 0xAB, 0x76, 0x08, 0x4F, 0xD8, 0x58, 0x6B, 0xEE, 0x0B, 0x4F, 0x2D, 0x9E, 0x76, 0x96, 0x1A, 0xF1, 0xF2, 0x62, 0x2B, 0x77, 0xBE, 0xD5, 0x3B, 0x66, 0xB6, 0x35, 0xFC, 0x37, 0xEA, 0x2B, 0x63, 0x8B, 0x2D, 0x44, 0x33, 0xA1, 0x62, 0x6C, 0xB1, 0x3D, 0x4C, 0xBB, 0xD0, 0x7C, 0x65, 0x6C, 0xB1, 0xA5, 0x0E, 0xD0, 0xF9, 0x91, 0xC4, 0x25, 0x55, 0x8A, 0x2D, 0xA2, 0x7D, 0xC6, 0x15, 0x5B, 0x89, 0x86, 0xB9, 0x29, 0xEC, 0x50, 0x8E, 0x76, 0x4D, 0x62, 0x6E, 0xA2, 0xFF, 0x9D, 0x7D, 0xF9, 0xC3, 0x9F, 0x29, 0x9C, 0x36, 0xF2, 0xE4, 0xDD, 0x61, 0xFE, 0xBB, 0x7F, 0x2B, 0x35, 0x6B, 0xFB, 0xD7, 0xAE, 0xB4, 0x60, 0x62, 0xF8, 0xBF, 0x4D, 0xD1, 0xD0, 0x8F, 0x86, 0x85, 0x7A, 0x2C, 0xA6, 0xCF, 0x39, 0x0D, 0x1F, 0x9A, 0x74, 0x94, 0x7A, 0xC8, 0xFD, 0xE2, 0x0B, 0x6B, 0x96, 0x51, 0x3D, 0xB2, 0xE6, 0xCD, 0x09, 0x68, 0x66, 0x01, 0xC7, 0x7C, 0xA1, 0x61, 0x3B, 0x6E, 0xD4, 0x2D, 0x1C, 0x7E, 0x34, 0xDB, 0x99, 0xDE, 0xE6, 0x74, 0x80, 0x69, 0x51, 0x9A, 0xE2, 0x3E, 0x11, 0x4B, 0x70, 0x4B, 0xD1, 0x7F, 0xD0, 0xB1, 0x95, 0x81, 0x36, 0x05, 0xF3, 0xD1, 0xEC, 0x5E, 0xE6, 0x65, 0x33, 0x46, 0x92, 0xA3, 0x3A, 0x42, 0xB8, 0x22, 0x96, 0x64, 0x50, 0xE9, 0x41, 0x0B, 0xD6, 0x3E, 0xCA, 0xA0, 0x1B, 0x0F, 0xC7, 0x46, 0x49, 0x49, 0x06, 0x7D, 0xC6, 0xBC, 0x72, 0x66, 0x14, 0x04, 0x45, 0x4D, 0x7B, 0xE0, 0x02, 0x35, 0xDB, 0x32, 0x3B, 0x46, 0x41, 0x87, 0xC3, 0xE2, 0xE2, 0x00, 0x68, 0x25, 0xB3, 0x55, 0x61, 0xC9, 0xED, 0xA9, 0x26, 0x44, 0x71, 0x84, 0x55, 0xF4, 0xAA, 0x48, 0x2E, 0xBE, 0x68, 0x6C, 0x80, 0x2F, 0xD8, 0x2C, 0x54, 0x4A, 0x74, 0xF3, 0x9E, 0x71, 0x66, 0x1D, 0xC6, 0x2E, 0x3F, 0xCC, 0x50, 0xC5, 0xBA, 0x98, 0x75, 0xD0, 0xE7, 0x77, 0xAA, 0x8E, 0xC5, 0xB1, 0x2A, 0x0A, 0xC6, 0x99, 0x15, 0x4F, 0x88, 0x8A, 0x9B, 0x26, 0xBE, 0xE2, 0x62, 0xD6, 0xA0, 0x05, 0x43, 0x1E, 0x58, 0x94, 0xCA, 0xA6, 0xB5, 0x26, 0x8D, 0x31, 0x2B, 0xE5, 0x86, 0x2D, 0xF3, 0x33, 0x38, 0x2E, 0xCE, 0xC5, 0xAC, 0xAF, 0xDD, 0x00, 0xCC, 0xBA, 0x76, 0xD1, 0xBE, 0xE7, 0xCC, 0xBA, 0x76, 0x46, 0xE2, 0xBA, 0x71, 0x66, 0x65, 0xDC, 0x1A, 0x30, 0x3D, 0x67, 0xD6, 0xCA, 0xC6, 0xB8, 0xFC, 0x31, 0x66, 0x2D, 0x59, 0x43, 0x3B, 0x16, 0xD2, 0x45, 0x2F, 0x7D, 0x81, 0x1F, 0x6F, 0x8F, 0x74, 0x3C, 0x67, 0xD6, 0x4D, 0x0F, 0xE2, 0x56, 0x8D, 0x33, 0xEB, 0x33, 0xCF, 0x9E, 0xA6, 0x31, 0x66, 0xF5, 0x47, 0xCA, 0x80, 0xE4, 0xAD, 0x2F, 0x5F, 0x90, 0xFC, 0x6A, 0xC8, 0x7C, 0xF5, 0x39, 0xB3, 0x36, 0x2D, 0x49, 0x58, 0x35, 0xCE, 0xAC, 0x75, 0xDB, 0xBE, 0x6B, 0x1A, 0x63, 0xD6, 0xF5, 0xC8, 0x06, 0x20, 0x39, 0x54, 0xBD, 0xE6, 0x85, 0x39, 0xEF, 0x36, 0x5F, 0x7D, 0xCE, 0xAC, 0x86, 0xBB, 0xC7, 0x6B, 0x9F, 0x33, 0xEB, 0x31, 0x47, 0x42, 0xC9, 0x18, 0xB3, 0x7E, 0xAA, 0x19, 0x22, 0x99, 0x75, 0x84, 0x07, 0x98, 0x95, 0xA3, 0x23, 0x50, 0xD3, 0xB4, 0x34, 0x06, 0xC8, 0x2E, 0xEC, 0xB7, 0xC9, 0xEC, 0x82, 0x1B, 0x69, 0x8F, 0xA6, 0x04, 0x02, 0x72, 0x3D, 0xAA, 0x46, 0xA2, 0x66, 0x20, 0xA7, 0xE1, 0x7C, 0x42, 0x1E, 0x63, 0xE5, 0x07, 0x9A, 0x5A, 0x03, 0xEB, 0x44, 0xC9, 0x8B, 0x25, 0x20, 0x33, 0x49, 0x11, 0xAE, 0x1F, 0x9D, 0x54, 0x45, 0x4E, 0xE3, 0xF1, 0xAB, 0x65, 0x01, 0x1E, 0xE7, 0x40, 0x9C, 0x1C, 0x4C, 0x14, 0x7C, 0x34, 0x7C, 0x3D, 0x48, 0xBC, 0xEC, 0x79, 0xCB, 0x22, 0xC0, 0xCE, 0x0A, 0x47, 0x18, 0xC0, 0x68, 0xEB, 0xC0, 0xC2, 0x9B, 0xF0, 0x8C, 0xB8, 0x62, 0x11, 0x66, 0x87, 0x5C, 0x24, 0xAC, 0x59, 0x3F, 0xB3, 0x8A, 0x16, 0x77, 0x82, 0xF4, 0x79, 0xC0, 0xF0, 0x66, 0xF4, 0xEE, 0xCF, 0x13, 0x9A, 0x45, 0x6A, 0x56, 0xE1, 0x4F, 0x5B, 0x96, 0x2F, 0x63, 0x44, 0x99, 0x2D, 0x5A, 0x4A, 0xB4, 0xF5, 0x80, 0x2F, 0x3F, 0xFE, 0x9E, 0x51, 0x4C, 0xEE, 0x95, 0x0D, 0x7F, 0x95, 0x26, 0x2B, 0xC3, 0x9B, 0x16, 0x9A, 0x93, 0x8F, 0xEE, 0x4C, 0x2E, 0x8D, 0x73, 0x4D, 0xBA, 0x7B, 0x64, 0x7F, 0x67, 0xE7, 0xF5, 0xCE, 0x42, 0x09, 0x07, 0x9B, 0xB1, 0x3F, 0x43, 0x8D, 0x9C, 0xC6, 0x56, 0xAA, 0x10, 0xBB, 0xD1, 0x4E, 0x2E, 0xE8, 0xEC, 0x3B, 0x8D, 0xC9, 0x73, 0x4E, 0xCF, 0x04, 0x4B, 0x42, 0x61, 0xFF, 0xD8, 0x68, 0xD9, 0x0F, 0x45, 0xA1, 0x87, 0xA6, 0x08, 0x21, 0x8F, 0xD6, 0x9F, 0xE0, 0x02, 0xCF, 0x99, 0xB9, 0x5D, 0xA4, 0xFC, 0xC1, 0x27, 0x17, 0xD8, 0x37, 0xD1, 0x33, 0xBE, 0x5D, 0xEC, 0x5F, 0xBB, 0x16, 0xDE, 0xEA, 0xF0, 0xD9, 0xAF, 0xA9, 0xA6, 0x3C, 0x21, 0x7D, 0x12, 0x19, 0x4A, 0x9E, 0x36, 0xBA, 0x58, 0xD4, 0x84, 0x5D, 0x27, 0x7D, 0xA2, 0x79, 0x0C, 0x7C, 0x22, 0x0D, 0x32, 0x8B, 0x15, 0x84, 0x6E, 0x0E, 0xEE, 0x4A, 0x98, 0x74, 0x35, 0x9B, 0x52, 0x22, 0xB8, 0x87, 0xFA, 0x91, 0x3D, 0xCC, 0x2E, 0xC5, 0x6E, 0xB1, 0xA7, 0x4C, 0x50, 0x3F, 0x29, 0x5B, 0xA7, 0xD9, 0xA2, 0x9C, 0x26, 0xB1, 0x77, 0x5C, 0x77, 0xE7, 0xB7, 0xC7, 0x9F, 0x74, 0x07, 0x9F, 0x13, 0x1F, 0xEA, 0xD6, 0x8F, 0x09, 0x09, 0xDF, 0x2F, 0x2C, 0x78, 0x5D, 0xDB, 0x8F, 0x1C, 0x60, 0xB6, 0x29, 0x76, 0x6B, 0x3C, 0x25, 0x40, 0xA8, 0x10, 0x08, 0xF5, 0x47, 0xFC, 0xC3, 0xD6, 0xD9, 0x33, 0x96, 0x14, 0xFF, 0xF9, 0xF8, 0x40, 0x4B, 0x11, 0x10, 0x82, 0xAC, 0x87, 0xB6, 0x87, 0x72, 0xDC, 0x67, 0xD6, 0x83, 0xB9, 0x9F, 0xF9, 0xA2, 0x0E, 0x4F, 0xA5, 0xAF, 0xD9, 0x1E, 0xAD, 0xE3, 0x3D, 0x13, 0x13, 0xF3, 0x87, 0x11, 0x9A, 0xBF, 0x74, 0xCE, 0x43, 0xCA, 0xD1, 0x16, 0xBB, 0x4A, 0x6A, 0x99, 0xAB, 0x20, 0xAE, 0x40, 0xE0, 0x87, 0x05, 0xB7, 0x75, 0xAE, 0x7B, 0x32, 0xDA, 0x7C, 0x7D, 0x67, 0xC1, 0x9A, 0xE1, 0x02, 0x90, 0xE2, 0x46, 0x73, 0x41, 0x4A, 0xF7, 0xCF, 0xFD, 0x74, 0x1F, 0x34, 0x7A, 0xE8, 0x10, 0xD8, 0x36, 0xF1, 0x64, 0x00, 0x5E, 0x97, 0xDC, 0x5D, 0x97, 0x6C, 0x7F, 0x6A, 0xEC, 0x7A, 0x7A, 0xE1, 0xEB, 0xA7, 0x5D, 0x9D, 0x2A, 0x47, 0xB8, 0x04, 0xE8, 0xE0, 0x30, 0xCA, 0x38, 0xD9, 0xBF, 0xCF, 0x8D, 0xE0, 0xC6, 0x14, 0x92, 0x3A, 0x7E, 0xD3, 0xF7, 0x44, 0xAC, 0xD7, 0x8E, 0x08, 0x1A, 0x46, 0x36, 0x1F, 0x1A, 0x39, 0x79, 0x20, 0x87, 0x9A, 0x34, 0xA6, 0xBC, 0xFA, 0x56, 0x41, 0xF9, 0x13, 0xA0, 0x1C, 0x8D, 0xDA, 0x10, 0xCA, 0x2D, 0xB5, 0x50, 0x81, 0xCB, 0xEA, 0x69, 0xC9, 0xE8, 0xF1, 0x30, 0x81, 0xDB, 0x64, 0xCD, 0xEF, 0x92, 0x87, 0xBA, 0xE4, 0x49, 0xF1, 0x64, 0x84, 0xB1, 0xB0, 0x66, 0x51, 0x75, 0xA7, 0xD6, 0x0B, 0x0E, 0x68, 0xEE, 0x62, 0xCA, 0xB0, 0x20, 0x40, 0x94, 0xB6, 0x9D, 0x0D, 0x4F, 0x1B, 0x0E, 0xA8, 0xDF, 0x7F, 0xDB, 0xF8, 0xFE, 0x88, 0xE1, 0xFD, 0xD6, 0x82, 0xDD, 0x6A, 0xB6, 0x0C, 0x63, 0x93, 0x03, 0x1F, 0x0B, 0xFE, 0x5C, 0x1B, 0xEC, 0x17, 0x04, 0x72, 0x37, 0xD6, 0x43, 0x46, 0x0D, 0xEF, 0x14, 0x04, 0x68, 0xE5, 0x2E, 0xEE, 0x45, 0xA5, 0xD1, 0x82, 0xA8, 0x9A, 0x12, 0x02, 0xD6, 0x7A, 0xEB, 0x48, 0x66, 0xB2, 0x56, 0xA0, 0xFA, 0xC2, 0x88, 0x1A, 0xF0, 0xEB, 0xC1, 0x46, 0x95, 0xC0, 0x01, 0x1C, 0xBC, 0xB9, 0xAF, 0xA6, 0x93, 0x9A, 0x00, 0x69, 0xE8, 0x33, 0xCA, 0x01, 0x04, 0x01, 0x90, 0xE1, 0x4D, 0x46, 0x7D, 0x6B, 0x44, 0x9A, 0x20, 0x24, 0xA3, 0xC1, 0x2F, 0x43, 0xF0, 0x47, 0x60, 0x69, 0x1A, 0x2D, 0x84, 0xAA, 0xCB, 0x41, 0x66, 0x9E, 0xD7, 0x59, 0x76, 0x04, 0x27, 0x7B, 0xF4, 0x41, 0x70, 0xC0, 0xBD, 0x71, 0x83, 0x78, 0xE1, 0x7E, 0x51, 0x87, 0x2C, 0xD5, 0xB6, 0xE6, 0xEA, 0x37, 0x9A, 0xAB, 0x07, 0x0A, 0x76, 0xF7, 0x8D, 0x19, 0x14, 0xDB, 0xE8, 0xFF, 0xE4, 0x00, 0x1F, 0x18, 0xA4, 0x65, 0x2D, 0x45, 0x6B, 0x78, 0x7D, 0x38, 0x04, 0x74, 0xCC, 0x6A, 0xD3, 0xD9, 0x7E, 0x80, 0x4C, 0x22, 0xC2, 0xB5, 0x18, 0xBF, 0x0D, 0xB2, 0x73, 0x1E, 0xEB, 0xBB, 0x0B, 0x25, 0x50, 0x36, 0x61, 0xB4, 0x35, 0x43, 0xB0, 0xFF, 0xFE, 0xEE, 0x1C, 0x1B, 0x03, 0xB7, 0xF6, 0x99, 0x00, 0x0F, 0x8D, 0xAE, 0xB7, 0x5B, 0xBC, 0x6E, 0xF9, 0x33, 0x38, 0xC9, 0x29, 0x4B, 0xAA, 0x93, 0x26, 0x0D, 0xCC, 0x3D, 0x0D, 0x57, 0x12, 0xBD, 0x66, 0x46, 0x31, 0x0C, 0x16, 0xEE, 0x46, 0x2B, 0x43, 0xDC, 0x6D, 0x0F, 0x7A, 0x8B, 0x9E, 0x0F, 0x07, 0xE8, 0x41, 0xDA, 0xA8, 0x68, 0x1C, 0x8B, 0x52, 0x6A, 0x6A, 0x52, 0xDE, 0x5C, 0x8D, 0xD7, 0x97, 0xDB, 0xBD, 0x1E, 0x9B, 0xBD, 0x6A, 0xBB, 0xA2, 0xED, 0x21, 0x63, 0xFB, 0x27, 0x75, 0x16, 0x3C, 0x77, 0x15, 0xF0, 0x2E, 0xEC, 0x3F, 0x0C, 0x36, 0x80, 0x5E, 0x02, 0x21, 0x97, 0x18, 0x15, 0xB0, 0x36, 0x07, 0x99, 0x33, 0x44, 0xB3, 0xCB, 0xC4, 0xDB, 0xC6, 0x2C, 0x5B, 0x1A, 0xBA, 0x79, 0xFB, 0x9F, 0x1D, 0x63, 0x96, 0x6D, 0x01, 0x96, 0x0D, 0x74, 0xE7, 0xF4, 0xB1, 0x40, 0xAE, 0xFD, 0xC1, 0x98, 0x65, 0x6F, 0x47, 0xEE, 0xE9, 0x46, 0xE9, 0xAB, 0x07, 0x52, 0x57, 0x9F, 0x91, 0xAD, 0x86, 0xA5, 0xA7, 0xE1, 0xF7, 0xDC, 0xB2, 0x01, 0x93, 0x8F, 0x2C, 0xFA, 0x67, 0x2F, 0x29, 0xEB, 0x5E, 0x86, 0xBA, 0x8C, 0x15, 0x4D, 0x2C, 0xBB, 0x8A, 0x46, 0x2E, 0x43, 0x07, 0x6F, 0x84, 0x5C, 0x86, 0x8C, 0x47, 0xAC, 0xC6, 0xF1, 0x98, 0x2C, 0xBE, 0x5C, 0x9B, 0x62, 0xFC, 0x40, 0xE6, 0xAB, 0x75, 0x2F, 0xE6, 0xBD, 0x4B, 0x25, 0x8D, 0xE7, 0x98, 0x35, 0x3C, 0xA3, 0x1A, 0x04, 0xF1, 0x06, 0xE4, 0xA7, 0xCD, 0xD1, 0xCA, 0xAD, 0xCB, 0x44, 0x93, 0x80, 0xC5, 0xF0, 0x05, 0x72, 0xCB, 0xAE, 0xC6, 0x59, 0xF6, 0x68, 0x7B, 0xA4, 0x42, 0x44, 0xFE, 0x91, 0xEF, 0x55, 0x50, 0xDE, 0xAC, 0x49, 0x42, 0x07, 0x15, 0x57, 0xD4, 0x0C, 0x3B, 0xBF, 0x38, 0x50, 0x24, 0xA8, 0xD7, 0x4D, 0x95, 0x4E, 0x86, 0xD7, 0x59, 0xF3, 0x0B, 0xAB, 0x15, 0xEC, 0xB3, 0xD8, 0x29, 0x4E, 0x87, 0x7D, 0xB7, 0x78, 0x82, 0x36, 0xA9, 0x27, 0xF6, 0x99, 0x84, 0x60, 0xBC, 0x59, 0xF3, 0x3E, 0x09, 0xB6, 0xF8, 0x90, 0xE0, 0xE2, 0x30, 0x00, 0xD6, 0x65, 0x93, 0xE0, 0xC4, 0xAD, 0x24, 0xB8, 0xC8, 0x1B, 0x80, 0x95, 0x53, 0x49, 0xF0, 0x99, 0x79, 0x24, 0xF8, 0x1C, 0x09, 0xE6, 0x4C, 0x20, 0xC1, 0x83, 0x24, 0x58, 0xFA, 0xD6, 0xA8, 0xE6, 0x5A, 0x12, 0x7C, 0x92, 0x04, 0x6B, 0x12, 0x48, 0x70, 0x9F, 0x8C, 0x04, 0x7F, 0x4F, 0x82, 0x87, 0x79, 0x24, 0xD8, 0x19, 0x4E, 0x6A, 0xAE, 0x24, 0xC1, 0x8A, 0xED, 0x24, 0x58, 0xE1, 0x03, 0xC0, 0xFD, 0x0B, 0x48, 0xB0, 0x29, 0x03, 0x80, 0x91, 0x1C, 0x26, 0x00, 0x2B, 0xA6, 0x91, 0xE0, 0xBB, 0x93, 0x48, 0xCD, 0xED, 0x24, 0x58, 0xB5, 0x87, 0x04, 0x13, 0xBE, 0xA4, 0xCD, 0x2B, 0x49, 0x70, 0x57, 0x26, 0x09, 0xDE, 0x47, 0x82, 0xD5, 0x71, 0x24, 0xB8, 0x5C, 0x08, 0xC0, 0xB4, 0xAF, 0x49, 0x70, 0xF3, 0x3E, 0x12, 0x5C, 0x49, 0x82, 0x35, 0x6B, 0x48, 0xB0, 0x7A, 0x21, 0x69, 0x46, 0x37, 0x09, 0x56, 0x25, 0x93, 0xE0, 0xAC, 0x08, 0xD2, 0x8C, 0x5F, 0x48, 0x70, 0xDF, 0x01, 0x12, 0xFC, 0xC5, 0xA8, 0xE6, 0x2A, 0x12, 0x6C, 0x7E, 0x95, 0x78, 0xFE, 0xD5, 0x0C, 0xE5, 0x85, 0x9A, 0xFC, 0x87, 0x42, 0xC1, 0xF2, 0x75, 0xCA, 0x12, 0x55, 0x71, 0x7E, 0xD9, 0x4B, 0xDF, 0xD5, 0xD0, 0x5E, 0xF8, 0x96, 0x87, 0x32, 0x8A, 0x2B, 0x2A, 0x5D, 0x5E, 0x54, 0x52, 0x10, 0xFB, 0x12, 0xEE, 0xC5, 0x6F, 0x7C, 0xC6, 0x70, 0xAA, 0xF5, 0xE5, 0x31, 0x2F, 0x7F, 0x6B, 0x44, 0x7D, 0xE1, 0xDB, 0x1D, 0x17, 0xEE, 0x9D, 0xFC, 0xA2, 0x82, 0xC2, 0xF2, 0x75, 0x2F, 0xE1, 0x18, 0xFF, 0x07, 0x2E, 0xB7, 0x48, 0xB9, 0x2E, 0xFF, 0x65, 0xD8, 0xF8, 0x37, 0x4A, 0xCF, 0x71, 0xEE, 0xFF, 0x7A, 0xFF, 0x3B, 0xDF, 0x39, 0xA1, 0x2F, 0xE0, 0xFE, 0x17, 0xDD, 0x45, 0xD6, 0x80 -}; diff --git a/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.spv.inl b/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.spv.inl deleted file mode 100644 index 589109107..000000000 --- a/internal/shaders/output/convolution_concat_64_3_64_fp32.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_3_64_fp32.comp.spv */ -const int internal_shaders_output_convolution_concat_64_3_64_fp32_comp_spv_size = 4656; -const unsigned char internal_shaders_output_convolution_concat_64_3_64_fp32_comp_spv[4656] = { - 0x78, 0xDA, 0x75, 0x5B, 0x09, 0x98, 0x55, 0xD5, 0x91, 0x7E, 0xE7, 0xDC, 0xA6, 0x1B, 0x64, 0x11, 0x04, 0x04, 0x1A, 0x6C, 0xD9, 0x64, 0x11, 0x41, 0x02, 0x34, 0x18, 0x9B, 0x5D, 0xBB, 0xD1, 0x89, 0xB2, 0xBA, 0xA0, 0x98, 0x28, 0xD0, 0x11, 0xE4, 0x0B, 0x42, 0x44, 0x19, 0x05, 0x46, 0x20, 0x23, 0x2E, 0x10, 0x12, 0x91, 0x80, 0xE6, 0x1B, 0x01, 0x05, 0x65, 0xF3, 0x93, 0xB5, 0x65, 0x6B, 0x0C, 0x06, 0x64, 0x55, 0x99, 0x24, 0x38, 0x51, 0x92, 0xC0, 0x20, 0xB2, 0x8C, 0x71, 0x37, 0x91, 0x28, 0x0E, 0x3A, 0xA7, 0x6E, 0xFD, 0xD5, 0xEF, 0x7F, 0x27, 0x0C, 0x9F, 0xD7, 0xFB, 0xEA, 0xAF, 0xAA, 0xFF, 0x54, 0xD5, 0x59, 0xEE, 0x79, 0xE7, 0xDD, 0x4E, 0x7C, 0xAB, 0x82, 0x4C, 0xE2, 0x32, 0x35, 0x33, 0xD5, 0x33, 0xBD, 0xF3, 0x32, 0xE9, 0xBF, 0x7A, 0x19, 0x9F, 0x71, 0xE1, 0x5E, 0x33, 0x93, 0x9F, 0xDE, 0x07, 0xDC, 0x30, 0xEC, 0x86, 0x4E, 0x93, 0xEE, 0x2F, 0xEF, 0xD4, 0xAD, 0xB8, 0xB3, 0xE8, 0xEB, 0x64, 0x92, 0xD4, 0x4E, 0x74, 0x17, 0x66, 0x0A, 0x32, 0xD5, 0xC2, 0x5D, 0x5C, 0xC7, 0x8F, 0xBC, 0xE7, 0x5E, 0xC1, 0x6F, 0x0D, 0xD7, 0x88, 0x70, 0xD5, 0x0D, 0xFE, 0x79, 0x29, 0x9F, 0x7C, 0x56, 0xFB, 0xEA, 0xE1, 0xBA, 0x2E, 0x78, 0xF4, 0xD3, 0xA6, 0x32, 0xAD, 0x70, 0x37, 0xCC, 0x01, 0xAB, 0x4B, 0x98, 0x07, 0xD6, 0x98, 0xB0, 0x04, 0x58, 0x33, 0xC2, 0xF2, 0x80, 0x35, 0x27, 0xAC, 0x1A, 0xB0, 0xD6, 0x84, 0xE5, 0x03, 0x6B, 0x47, 0x58, 0x01, 0xB0, 0x2B, 0x08, 0xAB, 0x0E, 0xAC, 0x33, 0x61, 0x35, 0x80, 0x5D, 0x05, 0xAC, 0x7F, 0x94, 0xC7, 0x80, 0x10, 0x59, 0x7F, 0xC4, 0x3C, 0x20, 0x44, 0x74, 0x6B, 0x5A, 0xC7, 0x4C, 0xA6, 0x10, 0xF2, 0x08, 0xC8, 0x4D, 0x21, 0xAF, 0x40, 0x3C, 0x79, 0x29, 0x5F, 0x5E, 0x66, 0x25, 0x78, 0xEA, 0x47, 0xB2, 0xE5, 0xBE, 0xF2, 0x3C, 0xED, 0xAD, 0xA4, 0xF6, 0x56, 0x87, 0x7B, 0xCB, 0x2A, 0x9D, 0xCA, 0x2D, 0x90, 0x8B, 0xC8, 0x47, 0xA2, 0xF6, 0x8E, 0x46, 0xED, 0x1D, 0x8D, 0xDA, 0x3B, 0x7A, 0x9E, 0xF6, 0x8E, 0x52, 0x7B, 0xC7, 0xA2, 0xF6, 0x8E, 0xA1, 0x3D, 0xD3, 0x5F, 0xED, 0x72, 0xDB, 0x2B, 0x71, 0xB9, 0xED, 0x99, 0x6C, 0xED, 0x99, 0xCC, 0xED, 0x09, 0x66, 0x7C, 0xBD, 0x5C, 0x6E, 0x7B, 0x22, 0xB7, 0x40, 0xFF, 0x89, 0x7C, 0x3A, 0xD2, 0x9F, 0x86, 0x3E, 0x0F, 0xF2, 0x87, 0x91, 0xFE, 0x43, 0xE8, 0x13, 0xC8, 0x7B, 0x7D, 0x6E, 0xBC, 0xFB, 0x7C, 0x6E, 0xBC, 0x26, 0x37, 0x41, 0xBC, 0x26, 0x73, 0xBC, 0x82, 0x59, 0xBC, 0x07, 0x7C, 0x6E, 0x7B, 0x22, 0xB7, 0xA8, 0xAA, 0xB9, 0x4F, 0xED, 0x5A, 0x04, 0x9F, 0x04, 0x35, 0xBB, 0x38, 0x7C, 0xCA, 0xC7, 0x18, 0x6E, 0x1E, 0xEC, 0x0B, 0x90, 0x5B, 0x7E, 0x6A, 0x97, 0x97, 0xF6, 0x63, 0x3E, 0xB0, 0x86, 0x41, 0xAE, 0x05, 0x5B, 0x07, 0xFB, 0xDA, 0xD0, 0xD5, 0x4A, 0xED, 0xF3, 0xC3, 0x5C, 0xD5, 0xCF, 0xB5, 0xE9, 0xEA, 0x10, 0xEC, 0xF2, 0x53, 0xFF, 0x4C, 0xE6, 0xB5, 0x73, 0x87, 0x8A, 0x1B, 0x84, 0x96, 0x2F, 0x26, 0xFC, 0x92, 0x70, 0xAD, 0x1E, 0xB4, 0xAC, 0xB7, 0xC9, 0x12, 0xFF, 0x2D, 0x1F, 0x27, 0xBD, 0x4C, 0x6E, 0x13, 0xAE, 0x13, 0x2F, 0xFF, 0xA1, 0x8F, 0xC9, 0x32, 0x8F, 0x1E, 0x3E, 0xFA, 0x97, 0x2A, 0xFB, 0x0E, 0xE1, 0x9A, 0xF8, 0x7A, 0xDF, 0x4A, 0x93, 0x65, 0xFE, 0x9C, 0x2C, 0x2B, 0xAD, 0xD2, 0x77, 0x09, 0xD7, 0xB1, 0x96, 0x6F, 0x95, 0x98, 0xDC, 0x3D, 0x5C, 0x4F, 0xBD, 0x38, 0x3D, 0xE5, 0x93, 0x58, 0x4B, 0xC2, 0xD5, 0x17, 0xF9, 0xF5, 0x42, 0x7E, 0xF2, 0xAF, 0x51, 0x90, 0x7B, 0x87, 0x7B, 0x2F, 0xF4, 0x8F, 0xC8, 0x7D, 0x50, 0x0F, 0x0F, 0xB9, 0x2F, 0xF4, 0x22, 0x17, 0x05, 0x36, 0x99, 0xB3, 0xE2, 0xD3, 0x07, 0x75, 0xE0, 0x2B, 0x1F, 0xF7, 0xBE, 0xB8, 0x8A, 0x30, 0x77, 0xFB, 0xA1, 0x96, 0xD7, 0x60, 0xBE, 0xF7, 0x4F, 0x63, 0x52, 0xF9, 0x5A, 0x60, 0x16, 0x6B, 0x29, 0x62, 0x33, 0xB9, 0x0C, 0xB1, 0x89, 0xFF, 0x00, 0xD8, 0xD6, 0x42, 0x6C, 0x43, 0xF1, 0x39, 0x81, 0x7C, 0x33, 0x62, 0x4D, 0x60, 0x7F, 0x0B, 0xFA, 0xF1, 0x66, 0xB4, 0x77, 0x0B, 0xD6, 0x52, 0x47, 0xF2, 0x08, 0xC8, 0xD6, 0xDE, 0x9D, 0xA8, 0x4F, 0x07, 0xD4, 0xEA, 0xAE, 0x28, 0x9E, 0x72, 0xD4, 0xC2, 0xF4, 0xE3, 0xC8, 0x5F, 0xE4, 0x09, 0xA4, 0x17, 0xFB, 0x07, 0x11, 0xB3, 0xC4, 0xF3, 0x10, 0x3E, 0xF7, 0x22, 0xFB, 0x45, 0xC8, 0xAF, 0x59, 0xF8, 0xFF, 0x62, 0xD4, 0x70, 0x11, 0xE4, 0x25, 0xE1, 0xBE, 0x18, 0x9C, 0xE2, 0xFF, 0x1C, 0xC6, 0xE2, 0x92, 0x74, 0x4C, 0x25, 0x55, 0x6B, 0x5D, 0x11, 0xD6, 0xAC, 0x15, 0xB0, 0x5B, 0x85, 0xBA, 0xAC, 0x44, 0x9E, 0x22, 0xAF, 0x06, 0x26, 0xFA, 0x35, 0xD4, 0x5F, 0x16, 0x67, 0x45, 0x54, 0x87, 0x1D, 0x32, 0x96, 0x11, 0xC7, 0x61, 0xD8, 0x5A, 0x1C, 0x7F, 0x42, 0x1C, 0x87, 0x11, 0xC7, 0x11, 0x8A, 0x43, 0xD6, 0xB2, 0x23, 0xB0, 0xFB, 0x6F, 0xB4, 0x73, 0x14, 0x71, 0x88, 0x7C, 0x0C, 0x98, 0xB5, 0x73, 0x2A, 0x5C, 0xDF, 0x85, 0x7F, 0xC2, 0x63, 0x6B, 0x5B, 0x11, 0xD6, 0x28, 0x91, 0x85, 0xA7, 0xA7, 0x53, 0x1F, 0xC1, 0x4A, 0x20, 0xF7, 0x72, 0xB9, 0x3C, 0xFD, 0x9C, 0xF6, 0xBB, 0xC9, 0x23, 0x82, 0x3C, 0xC3, 0x65, 0xE7, 0xE0, 0xBB, 0xBA, 0x0E, 0xF6, 0xB9, 0x22, 0xAC, 0x31, 0x32, 0x76, 0x0F, 0x3B, 0xC5, 0xDE, 0x45, 0x1B, 0x7F, 0x76, 0xDA, 0x37, 0x7D, 0xD2, 0xB5, 0xA8, 0x46, 0xE6, 0x24, 0x62, 0xC1, 0xF2, 0x59, 0xF5, 0xCF, 0x64, 0xF1, 0x39, 0x05, 0xE1, 0x24, 0xE2, 0x12, 0xF9, 0x34, 0xB0, 0xC2, 0x30, 0x0A, 0x3E, 0x00, 0xF7, 0x5F, 0x81, 0x7D, 0x00, 0x3B, 0x91, 0x3F, 0x04, 0xD6, 0x34, 0x44, 0xFD, 0xB1, 0x53, 0x0E, 0x8B, 0xF5, 0x33, 0x97, 0x9D, 0x9F, 0x9F, 0x23, 0x4F, 0x9F, 0x3E, 0x4B, 0xAB, 0xA5, 0xF2, 0x17, 0x4E, 0xEB, 0x76, 0x0A, 0x36, 0x7F, 0xA3, 0x67, 0x82, 0xD9, 0x88, 0xC3, 0x29, 0xCC, 0x27, 0xC3, 0x6A, 0x03, 0xAB, 0x20, 0xAC, 0x10, 0x58, 0x39, 0xD5, 0xAE, 0x4B, 0xC0, 0xFA, 0x7A, 0xED, 0x5B, 0x5B, 0xBF, 0x8B, 0xB0, 0x0E, 0x8B, 0x2C, 0x39, 0xED, 0xF7, 0x1A, 0x97, 0x60, 0x25, 0x90, 0x0F, 0xF8, 0xDC, 0x3E, 0x79, 0xCF, 0xEB, 0x73, 0xD2, 0xE4, 0xAB, 0x43, 0x80, 0x13, 0x7D, 0x56, 0x2E, 0x09, 0xF2, 0x60, 0x92, 0x7B, 0x06, 0xF9, 0x2E, 0x9F, 0xAD, 0x43, 0xAF, 0x20, 0xD7, 0x1A, 0xF6, 0xDE, 0x35, 0xDD, 0x43, 0xAC, 0x1E, 0xF9, 0x65, 0x30, 0xBF, 0xBF, 0x0A, 0x48, 0x35, 0x8C, 0x2B, 0x59, 0x83, 0xE7, 0x62, 0x4C, 0x9A, 0xBC, 0x80, 0x64, 0x99, 0x37, 0xCF, 0x47, 0xF2, 0x0B, 0x91, 0xFD, 0x96, 0x48, 0xDE, 0x4B, 0xB2, 0x8C, 0xF7, 0x3F, 0x47, 0xFA, 0xF7, 0x23, 0xFD, 0xD7, 0x91, 0x5C, 0xD3, 0xE5, 0xCA, 0x97, 0xB8, 0x5C, 0xFF, 0xEF, 0x45, 0xF2, 0xC8, 0x48, 0xDE, 0x1C, 0xC9, 0x3B, 0x22, 0xBE, 0xF7, 0x49, 0x96, 0xFB, 0x99, 0x48, 0x7F, 0x36, 0xD2, 0x27, 0x3E, 0x57, 0x5F, 0xE0, 0x73, 0xF5, 0x75, 0x23, 0x7D, 0x83, 0x48, 0x7F, 0x89, 0xCF, 0x8D, 0xA7, 0x55, 0x24, 0x0F, 0x89, 0xE4, 0x15, 0x91, 0xBC, 0x36, 0x92, 0xA5, 0x13, 0x59, 0xAE, 0x15, 0xC9, 0xCD, 0x22, 0xB9, 0x67, 0x24, 0xF7, 0x8A, 0xE4, 0xDE, 0x91, 0x7C, 0x63, 0x24, 0x0F, 0x8C, 0xE4, 0x41, 0x91, 0x3C, 0x2A, 0x92, 0x47, 0x47, 0x72, 0x79, 0x24, 0xFF, 0x6B, 0x24, 0x3F, 0x18, 0xC9, 0x0F, 0x45, 0xF2, 0xE3, 0x91, 0xFC, 0x44, 0x24, 0xCF, 0x8E, 0xE4, 0x45, 0x91, 0xBC, 0x38, 0x92, 0x97, 0x44, 0xF2, 0x9A, 0x48, 0x5E, 0x1B, 0xC9, 0xEB, 0x22, 0x79, 0x57, 0x24, 0xBF, 0x1E, 0xC9, 0xBB, 0x21, 0xFF, 0x23, 0x74, 0x54, 0x7D, 0x4C, 0xBC, 0x6F, 0xC2, 0x67, 0x79, 0x1E, 0x36, 0xC8, 0xD3, 0xF9, 0x27, 0xF7, 0x5E, 0x78, 0xEE, 0x0E, 0xC7, 0xB3, 0x75, 0x1A, 0x9E, 0xCB, 0xB7, 0x01, 0x33, 0xFD, 0x1D, 0x78, 0xD6, 0x9A, 0xFE, 0x87, 0xC0, 0x86, 0x84, 0x59, 0x2C, 0x73, 0x7F, 0x14, 0x7C, 0xE4, 0xDF, 0x23, 0xC0, 0x46, 0xE3, 0x79, 0x3C, 0x8A, 0xEC, 0xEE, 0x86, 0x2F, 0xDB, 0x8D, 0xC1, 0xFA, 0x25, 0xBA, 0x19, 0xC0, 0xC6, 0xC2, 0x7F, 0x0C, 0xF9, 0xFE, 0x04, 0x6D, 0x38, 0xF2, 0x1D, 0x0F, 0xBC, 0x9C, 0xEC, 0x7E, 0x0A, 0x3B, 0x4F, 0x76, 0xF7, 0x01, 0xBF, 0x93, 0xEC, 0xEE, 0x47, 0x2C, 0x6C, 0xF7, 0x00, 0xF6, 0x2C, 0xF7, 0x53, 0x2C, 0x93, 0xE1, 0xFF, 0x40, 0xBA, 0x17, 0x2A, 0x48, 0xF7, 0x01, 0x53, 0xB0, 0xF7, 0x29, 0xC5, 0x1E, 0xE1, 0x2E, 0xD4, 0x4A, 0xF6, 0x04, 0x53, 0xA1, 0x9F, 0x86, 0x75, 0x71, 0x1A, 0xB0, 0xB5, 0x81, 0x4F, 0xF6, 0x95, 0xFF, 0x86, 0xFC, 0xA6, 0xA5, 0xCF, 0xF8, 0xBC, 0x14, 0x7B, 0x18, 0xB8, 0xF4, 0xD7, 0x0C, 0xD4, 0xE7, 0x6C, 0xD0, 0x09, 0x3E, 0x3D, 0x8D, 0x45, 0xFB, 0x6C, 0x3A, 0xC5, 0xF0, 0xB3, 0x28, 0x86, 0x71, 0x14, 0xC3, 0xBF, 0x43, 0x6F, 0x31, 0x3C, 0x02, 0xCC, 0x62, 0x98, 0x85, 0xDA, 0x3D, 0x92, 0xAE, 0x7D, 0xBE, 0x8A, 0x5F, 0xEE, 0x5F, 0x06, 0x7E, 0xB1, 0x79, 0x14, 0x31, 0xC9, 0x38, 0x99, 0x85, 0x38, 0xCC, 0xFF, 0x71, 0xD4, 0x45, 0xF6, 0xA6, 0xCB, 0x81, 0x3D, 0x01, 0x9F, 0xC7, 0x91, 0xC7, 0x1C, 0xCA, 0x43, 0x74, 0xB3, 0xC3, 0x35, 0x07, 0xED, 0xCC, 0x46, 0xBB, 0xF5, 0x31, 0x16, 0xE7, 0xA4, 0xFB, 0xD2, 0x24, 0x7D, 0x0E, 0x94, 0x42, 0xF7, 0x0B, 0xD8, 0xFE, 0x02, 0x79, 0x49, 0x1E, 0xF3, 0xF1, 0xAC, 0x58, 0x8F, 0x36, 0x7F, 0x05, 0x4C, 0xFA, 0xFF, 0x4C, 0xB0, 0x79, 0x32, 0xDC, 0xE7, 0x51, 0xBB, 0xA2, 0xFF, 0x65, 0xB8, 0x9E, 0x04, 0xD7, 0x2F, 0xD1, 0xCE, 0x02, 0x6A, 0x67, 0x21, 0x74, 0x0B, 0xA9, 0x9D, 0xFF, 0xC0, 0x33, 0xC8, 0xDA, 0x79, 0x16, 0x58, 0x19, 0xDA, 0x79, 0x26, 0xDC, 0x9F, 0xA6, 0x76, 0x9E, 0x85, 0xFC, 0x0C, 0xB8, 0x9E, 0x26, 0xAE, 0xA5, 0x88, 0xD9, 0xE4, 0x65, 0xE0, 0xB6, 0xF1, 0xF5, 0x32, 0x6A, 0xB9, 0x2C, 0xED, 0xDB, 0xFC, 0x74, 0x7F, 0xB7, 0x16, 0x7B, 0xBE, 0x52, 0xE8, 0x7B, 0xE1, 0x99, 0xBA, 0x0E, 0x3A, 0xB1, 0x2B, 0x48, 0xE3, 0xD3, 0x67, 0xE1, 0x52, 0xF8, 0x4B, 0x6E, 0xEB, 0x61, 0x67, 0x36, 0x1B, 0xF0, 0xFC, 0x64, 0x9B, 0x0D, 0xB0, 0xB1, 0x98, 0x36, 0x46, 0x31, 0xBD, 0x02, 0xAC, 0x82, 0xEA, 0xF5, 0x4A, 0x54, 0xAF, 0x67, 0x20, 0xCF, 0x83, 0x3C, 0x8F, 0xF8, 0x36, 0x21, 0x67, 0xE3, 0xDB, 0x0C, 0xAC, 0x82, 0xFA, 0x79, 0x73, 0xD4, 0xCF, 0x4F, 0x42, 0xB7, 0x85, 0xFA, 0x66, 0x2B, 0x74, 0x5B, 0x89, 0xFB, 0x37, 0x78, 0xDE, 0x5B, 0xDF, 0xBC, 0x06, 0x6C, 0x07, 0xFA, 0xA6, 0x32, 0xDC, 0xB7, 0x53, 0xDF, 0x88, 0x7E, 0x5B, 0xB8, 0x2A, 0xC1, 0xB5, 0x8D, 0xB8, 0x76, 0x82, 0xEB, 0x31, 0xC4, 0xB9, 0x0B, 0x58, 0x49, 0x3A, 0x56, 0x15, 0xDB, 0x43, 0x98, 0xC4, 0xB7, 0x97, 0xE2, 0xDB, 0x07, 0xCE, 0x7D, 0xC4, 0xF9, 0x16, 0xF6, 0x1F, 0x16, 0xDF, 0x41, 0x60, 0x36, 0x46, 0x0F, 0x84, 0xFB, 0x1B, 0x14, 0x9F, 0xE8, 0xF7, 0x87, 0xEB, 0x00, 0xB8, 0xF6, 0x53, 0xDD, 0xFE, 0x80, 0xB5, 0x62, 0x17, 0xF1, 0x1F, 0x02, 0xBF, 0xD9, 0xBC, 0x0D, 0xBB, 0x43, 0x84, 0xFD, 0x11, 0x78, 0x05, 0xE5, 0xF6, 0x0E, 0xF0, 0xF2, 0x74, 0x6D, 0x50, 0xEC, 0x5D, 0xE0, 0x15, 0xE9, 0x78, 0xD3, 0x78, 0x8F, 0x63, 0x6D, 0x28, 0xC5, 0x3C, 0x3E, 0x49, 0xB1, 0x8A, 0xEE, 0x44, 0xB8, 0x4E, 0x23, 0xD6, 0xD3, 0xC4, 0xF5, 0x01, 0xFC, 0xB8, 0xCD, 0xBF, 0x02, 0x2F, 0x47, 0xED, 0xDE, 0x07, 0x26, 0xB5, 0x3B, 0x09, 0x8E, 0x13, 0xA4, 0x3B, 0x15, 0xE9, 0x4E, 0x52, 0xDE, 0x1F, 0x62, 0xDF, 0x66, 0x39, 0x7E, 0x04, 0xAC, 0x02, 0x63, 0x5D, 0xBE, 0x5F, 0x7E, 0x4C, 0x6B, 0x62, 0x39, 0xF9, 0x7E, 0x02, 0x9D, 0xAD, 0xF3, 0x9F, 0xC2, 0xFF, 0x13, 0xE2, 0xFB, 0x1C, 0xF8, 0xBB, 0x84, 0x7D, 0x01, 0xBC, 0x82, 0x7C, 0xFF, 0x86, 0xB1, 0xF0, 0x05, 0xD9, 0x7D, 0x09, 0x7C, 0x0F, 0xCD, 0xE1, 0x33, 0xF8, 0xBE, 0x54, 0x0A, 0xBD, 0xCD, 0xE1, 0x7F, 0x40, 0xD7, 0x2F, 0xF8, 0x16, 0xA4, 0x79, 0xEA, 0xFE, 0xF4, 0x10, 0xEA, 0xF0, 0x15, 0x6C, 0x2C, 0xF6, 0xB3, 0xE8, 0x6F, 0xAB, 0xE9, 0x39, 0xD4, 0xB9, 0x9C, 0xDA, 0xFF, 0x16, 0x38, 0xC7, 0xE9, 0x9C, 0xE2, 0x9C, 0x63, 0xE2, 0x14, 0xE7, 0x1C, 0xF3, 0x9C, 0xE2, 0xEC, 0x5B, 0xCD, 0x69, 0x8E, 0xA2, 0x33, 0xBB, 0x02, 0xA7, 0x38, 0xE7, 0x58, 0xDD, 0x65, 0x73, 0x14, 0xBD, 0xE5, 0x58, 0xC3, 0xA9, 0xCE, 0x72, 0xBC, 0xC0, 0xE9, 0x1E, 0xFB, 0x2C, 0x72, 0x14, 0xB9, 0x06, 0x71, 0xD7, 0x71, 0xFF, 0x3C, 0x76, 0x2E, 0x74, 0x8A, 0x73, 0x9E, 0x75, 0x9D, 0xE2, 0x1C, 0x6B, 0x7D, 0xA7, 0x38, 0xE7, 0xD9, 0xD0, 0x29, 0xCE, 0x79, 0x5E, 0xEC, 0x14, 0x67, 0xDF, 0x46, 0xC8, 0xF3, 0x62, 0x8A, 0xA5, 0x89, 0x53, 0x9C, 0xF3, 0x2C, 0xA4, 0x3C, 0x9B, 0x50, 0x9E, 0x4D, 0x9D, 0xEA, 0x2C, 0xCF, 0x66, 0x4E, 0xBF, 0x3B, 0x58, 0x9E, 0x22, 0x37, 0x25, 0xEE, 0xE6, 0x2E, 0xDB, 0x77, 0x96, 0x67, 0x0B, 0xA7, 0x38, 0xE7, 0xD9, 0xD2, 0x29, 0xCE, 0xB1, 0x5E, 0xE6, 0x14, 0xE7, 0x3C, 0xDB, 0x3A, 0xC5, 0x39, 0xCF, 0x76, 0x4E, 0x71, 0xF6, 0x6D, 0x8F, 0x3C, 0xDB, 0x51, 0x2C, 0x1D, 0x9C, 0xE2, 0x9C, 0xE7, 0x15, 0x94, 0x67, 0x07, 0xCA, 0xB3, 0xA3, 0x53, 0x9D, 0xE5, 0xD9, 0xC9, 0xE9, 0x77, 0x22, 0xCB, 0x53, 0xE4, 0x8E, 0x4E, 0xE7, 0xEE, 0x1B, 0x98, 0xBB, 0x6F, 0xD0, 0x18, 0xBE, 0xD2, 0xE5, 0xAE, 0x59, 0x9D, 0x9D, 0x62, 0x15, 0xB4, 0xA6, 0x76, 0x76, 0xB9, 0x6B, 0xEA, 0x01, 0xE8, 0xE4, 0xBB, 0x96, 0xAD, 0xB7, 0x5D, 0x9C, 0xEA, 0xBA, 0xB8, 0x2C, 0x77, 0x0F, 0xA7, 0xDF, 0xC7, 0x6C, 0xBD, 0xBD, 0xCA, 0x29, 0x66, 0xCF, 0xEA, 0x6E, 0xE1, 0x73, 0xB1, 0xCB, 0xAE, 0x61, 0xA2, 0xEF, 0x1A, 0xAE, 0x6E, 0xE0, 0xEA, 0x4A, 0x5C, 0x7D, 0xC0, 0x65, 0x71, 0xF6, 0x75, 0xFA, 0x6C, 0x16, 0xDC, 0x6A, 0x79, 0xAD, 0x53, 0xFC, 0xEA, 0xBC, 0xAC, 0x5F, 0x99, 0xD3, 0xE7, 0x88, 0xF9, 0x0D, 0x70, 0x6A, 0x57, 0xE6, 0xB2, 0xB5, 0xBD, 0x0E, 0xE7, 0x1E, 0xA5, 0xD0, 0x5B, 0x6D, 0xAF, 0x77, 0xAA, 0x33, 0xDF, 0xC1, 0xF0, 0xDD, 0x41, 0x7C, 0x43, 0x9D, 0xE2, 0xCC, 0x37, 0x8C, 0xF8, 0x86, 0x12, 0xDF, 0x4D, 0x4E, 0x75, 0xE6, 0x7B, 0x07, 0xF8, 0x46, 0x10, 0xF6, 0x23, 0xA7, 0x38, 0xF3, 0xDD, 0x49, 0x7C, 0x3F, 0x22, 0xBE, 0xBB, 0x9C, 0xEA, 0xA4, 0x2F, 0x46, 0x52, 0x5F, 0x8C, 0x42, 0xFD, 0x46, 0x51, 0xFD, 0xC6, 0x38, 0xFD, 0x2E, 0x6C, 0x7D, 0x31, 0xD6, 0x29, 0x66, 0xCF, 0xBE, 0xF2, 0xF0, 0x79, 0x34, 0xF5, 0xC5, 0x58, 0xC8, 0xE5, 0xE0, 0x1A, 0x4D, 0x5C, 0xF7, 0x80, 0xCB, 0xE4, 0x71, 0xE8, 0x1B, 0x1B, 0x83, 0x3F, 0x71, 0xBA, 0x6E, 0xDE, 0x43, 0xB1, 0x8E, 0x77, 0x8A, 0xDB, 0xDE, 0xE7, 0xA7, 0x4E, 0xF7, 0x3E, 0x62, 0x33, 0x8E, 0xEC, 0xEE, 0x73, 0xAA, 0xAB, 0x95, 0xA9, 0x9E, 0xCA, 0x93, 0x9C, 0x7E, 0xAF, 0xE8, 0x02, 0x0E, 0xE9, 0x93, 0xFB, 0x90, 0xB3, 0xD8, 0x4D, 0xA2, 0x76, 0x1F, 0xC4, 0x5A, 0xC6, 0xED, 0x3E, 0xE4, 0x14, 0x37, 0xF9, 0xE1, 0x88, 0x7F, 0x3A, 0xF1, 0x8B, 0xAD, 0xF4, 0xD1, 0xC3, 0xC4, 0x3F, 0x9D, 0xF8, 0x1F, 0xC1, 0x1A, 0xC2, 0xFC, 0xB3, 0x9C, 0xE2, 0x26, 0xCF, 0x8E, 0xF8, 0xE7, 0x10, 0xBF, 0xD8, 0x4A, 0x9F, 0xCD, 0x26, 0xFE, 0x39, 0xE4, 0x3B, 0x0F, 0xB1, 0x5A, 0x8D, 0x16, 0x38, 0xDD, 0x43, 0xC6, 0x35, 0x5A, 0xE8, 0x54, 0x67, 0x6D, 0x3C, 0x4D, 0x6D, 0xCC, 0x43, 0x8D, 0x16, 0xA2, 0x0D, 0xB1, 0x7B, 0x9A, 0x7C, 0x17, 0x45, 0xF1, 0x2E, 0x8D, 0xB8, 0x96, 0x11, 0xD7, 0x22, 0xD4, 0x63, 0x29, 0x71, 0x2D, 0xA3, 0x7A, 0xAC, 0xC4, 0x5A, 0xC3, 0xF5, 0x58, 0xE5, 0x14, 0x37, 0x79, 0x4D, 0xC4, 0xBF, 0x96, 0xF8, 0x57, 0xA1, 0x1E, 0x6B, 0x88, 0x7F, 0x2D, 0x8D, 0xAB, 0xF5, 0x18, 0x67, 0x36, 0x37, 0x36, 0x38, 0xC5, 0x6C, 0x6D, 0x12, 0xDD, 0x06, 0x97, 0x3B, 0xE6, 0xCB, 0x21, 0x17, 0x43, 0x2E, 0x26, 0xBE, 0x8D, 0xD1, 0x1A, 0x52, 0xE1, 0x14, 0xAB, 0xA0, 0xF5, 0xAC, 0xC2, 0xE5, 0xAE, 0x67, 0xDD, 0x20, 0x6F, 0xC7, 0xDA, 0xB7, 0x9D, 0xD6, 0xCE, 0x57, 0xA2, 0xB5, 0x65, 0x93, 0x53, 0xAC, 0x82, 0xF6, 0xCB, 0x9B, 0x5C, 0xEE, 0x7E, 0xB9, 0x12, 0xBA, 0xCD, 0x34, 0x5F, 0xB7, 0xA0, 0xAD, 0x2D, 0x14, 0xEB, 0xAB, 0x4E, 0xCF, 0xAA, 0x6C, 0xBE, 0xFE, 0xC6, 0x29, 0xF6, 0x20, 0xE6, 0xEB, 0xB6, 0xF0, 0xB9, 0x92, 0xE6, 0xAB, 0xE8, 0xB7, 0x86, 0x6B, 0x1B, 0xB8, 0xB6, 0xA2, 0xA6, 0x3B, 0xA8, 0x9D, 0xD7, 0xA0, 0x7B, 0x8D, 0xDA, 0xD9, 0xED, 0xF4, 0x0C, 0xCC, 0xDA, 0xD9, 0xE3, 0x14, 0xB3, 0x75, 0x61, 0x67, 0xF8, 0xBC, 0x8B, 0xDA, 0x11, 0xFD, 0x6F, 0xC3, 0xB5, 0x13, 0x5C, 0xBF, 0x25, 0xAE, 0x7D, 0x88, 0xD9, 0x9E, 0x9F, 0xFB, 0x9D, 0x62, 0x72, 0x86, 0x6C, 0x7B, 0xF6, 0x37, 0x09, 0x33, 0xBF, 0xDF, 0x21, 0x06, 0xAB, 0xE3, 0xEF, 0x9D, 0xEE, 0xAD, 0x7F, 0x47, 0xD8, 0x21, 0xA7, 0xB8, 0x70, 0x4E, 0xC0, 0xD8, 0x7A, 0xDB, 0x29, 0x6E, 0xF2, 0x1F, 0xF1, 0x0C, 0x1F, 0x8C, 0xB3, 0xE8, 0x77, 0x9C, 0xDA, 0x08, 0x3E, 0x13, 0xD8, 0x9F, 0x9C, 0xE2, 0x87, 0x31, 0xCF, 0xE4, 0x7C, 0xFA, 0x2F, 0x2E, 0xBB, 0x37, 0xAD, 0x40, 0xFF, 0x8A, 0xED, 0x11, 0xE8, 0x66, 0xC1, 0xF7, 0xA8, 0x53, 0xFF, 0x23, 0x54, 0xAF, 0x63, 0x4E, 0x73, 0x92, 0x7C, 0x64, 0x4F, 0x7E, 0x9C, 0x6A, 0x25, 0xBA, 0xF7, 0xC2, 0x75, 0x1C, 0xB5, 0x7A, 0x8F, 0x72, 0x3E, 0x81, 0x9C, 0x45, 0x96, 0x33, 0xEA, 0xFF, 0xC1, 0x19, 0xB7, 0xC8, 0x72, 0x9E, 0xFD, 0x11, 0xCE, 0xB2, 0x6F, 0x09, 0xED, 0xC8, 0x39, 0xF6, 0x27, 0xB0, 0x11, 0x7C, 0x78, 0x98, 0x4B, 0x72, 0x36, 0xFD, 0x77, 0xE0, 0x12, 0xD7, 0x05, 0x38, 0xDF, 0x96, 0x33, 0xEC, 0x1B, 0x83, 0x4F, 0xBA, 0x9F, 0x85, 0xCD, 0x9B, 0x18, 0x0B, 0x72, 0x96, 0x29, 0xD8, 0xF7, 0xA1, 0xFF, 0x0A, 0x7E, 0x67, 0x68, 0x4E, 0x7F, 0xED, 0xF4, 0x0C, 0xF4, 0x04, 0x7C, 0x44, 0xFE, 0x8A, 0xE2, 0xFE, 0x06, 0x71, 0x5B, 0x5C, 0xDF, 0x9E, 0x27, 0x2E, 0xE7, 0x15, 0xE7, 0xB8, 0xE4, 0x30, 0xC7, 0xE2, 0xCA, 0xF3, 0x6A, 0x63, 0x71, 0xC9, 0x19, 0xAA, 0x60, 0x16, 0x57, 0x35, 0xAF, 0x7E, 0x82, 0x5B, 0x5C, 0xF9, 0x5E, 0xCF, 0x5E, 0xBF, 0x81, 0x8F, 0xC8, 0x62, 0x67, 0x71, 0x55, 0xF7, 0xB9, 0x71, 0xD5, 0xF4, 0xFF, 0x1C, 0x57, 0x1D, 0xAF, 0x38, 0xC7, 0x55, 0x9B, 0xE2, 0xAA, 0xE7, 0xD5, 0xC6, 0xE2, 0x92, 0xB3, 0xDB, 0x7A, 0x14, 0xD7, 0x45, 0x88, 0xAB, 0x2E, 0xC5, 0x55, 0xDF, 0xEB, 0x99, 0xAF, 0xB4, 0x2F, 0x3E, 0x22, 0x5F, 0x44, 0x71, 0x35, 0x8C, 0xE2, 0x6A, 0x7C, 0x9E, 0xB8, 0x9A, 0x7A, 0xC5, 0x39, 0xAE, 0x42, 0x8A, 0xAB, 0xC8, 0xAB, 0x8D, 0xC5, 0x25, 0x67, 0xC6, 0x45, 0x14, 0xD7, 0xA5, 0x88, 0xEB, 0x12, 0x8A, 0xAB, 0xB9, 0xD7, 0xB3, 0xE6, 0x86, 0x88, 0x4B, 0x64, 0xB1, 0x93, 0x75, 0xC0, 0xC6, 0xE3, 0x71, 0xAC, 0x4D, 0xBB, 0x20, 0xEF, 0xA2, 0x7E, 0x6E, 0xE1, 0x73, 0xE7, 0x64, 0x4B, 0xAF, 0x98, 0xAD, 0x6D, 0xA2, 0x6B, 0xE9, 0x73, 0xD7, 0x95, 0x9D, 0x88, 0x4F, 0xCE, 0xB0, 0x6D, 0xCD, 0x69, 0xED, 0x55, 0xD7, 0x9A, 0x6A, 0xD2, 0xDE, 0xEB, 0x39, 0xB7, 0xCD, 0xA1, 0xCB, 0xBD, 0x62, 0xB6, 0x2F, 0x6C, 0x13, 0x3E, 0xB7, 0xF5, 0xD9, 0x79, 0x24, 0xFA, 0xCB, 0xC2, 0xD5, 0x06, 0x5C, 0x97, 0x11, 0x57, 0x47, 0x70, 0x59, 0x9C, 0x9D, 0xBC, 0xEE, 0x0B, 0x05, 0xB7, 0x7D, 0x61, 0x67, 0xAF, 0xB8, 0xEC, 0x0B, 0xCD, 0xAE, 0xAB, 0x57, 0xBC, 0x0B, 0x71, 0x75, 0xF3, 0xBA, 0x7E, 0x99, 0x4D, 0xB1, 0x57, 0xBB, 0x6E, 0x3E, 0xBB, 0x17, 0xEB, 0xEE, 0xB3, 0x7B, 0xB1, 0x62, 0x9F, 0x7D, 0xCE, 0xF5, 0xF0, 0xAA, 0xAB, 0xDA, 0x9F, 0x82, 0xBF, 0x84, 0xDA, 0xEC, 0x8F, 0xDF, 0x7F, 0x98, 0xEF, 0x1A, 0xE2, 0xEB, 0x4F, 0x7C, 0xD7, 0x7A, 0xD5, 0x99, 0xEF, 0x0D, 0xE0, 0xEB, 0x49, 0x7C, 0x03, 0xBD, 0xE2, 0xCC, 0x37, 0x88, 0xF8, 0x06, 0x12, 0x9F, 0xFC, 0x1E, 0x34, 0x08, 0x63, 0x61, 0x08, 0xF5, 0xCF, 0x50, 0xD4, 0x74, 0x28, 0xD5, 0xE1, 0x56, 0xAF, 0xBF, 0x3B, 0x58, 0xFF, 0x0C, 0xF7, 0x8A, 0xD9, 0x33, 0xE1, 0xA6, 0xF0, 0x79, 0x18, 0xF5, 0xCF, 0x70, 0xC8, 0x37, 0x81, 0x6B, 0x18, 0x71, 0xDD, 0x06, 0x2E, 0x93, 0x6F, 0x47, 0x7F, 0xD9, 0x38, 0xBD, 0xC3, 0xEB, 0x7A, 0x73, 0x1B, 0xC5, 0xFA, 0x43, 0xAF, 0xB8, 0xED, 0x83, 0x46, 0x7A, 0xDD, 0x2B, 0x8A, 0xCD, 0xED, 0x64, 0x37, 0xCA, 0xAB, 0xCE, 0xF6, 0x16, 0xA3, 0x7D, 0x76, 0x6F, 0x21, 0x1C, 0xD2, 0x27, 0xA3, 0x90, 0xB3, 0xD8, 0x8D, 0xA6, 0x76, 0xC7, 0x62, 0x3D, 0xE1, 0x76, 0xEF, 0xF1, 0x8A, 0x9B, 0x7C, 0x6F, 0xC4, 0x3F, 0x81, 0xF8, 0xC5, 0x56, 0xFA, 0xE8, 0x5E, 0xE2, 0x9F, 0x40, 0xFC, 0xF7, 0x63, 0x5D, 0x60, 0xFE, 0x07, 0xBC, 0xE2, 0x26, 0x4F, 0x89, 0xF8, 0xA7, 0x12, 0xBF, 0xD8, 0x4A, 0x9F, 0x4D, 0x21, 0xFE, 0xA9, 0xE4, 0x3B, 0x13, 0xB1, 0x5A, 0x8D, 0x66, 0x79, 0xDD, 0x2B, 0xC6, 0x35, 0x7A, 0xD4, 0xAB, 0xCE, 0xDA, 0x78, 0x8C, 0xDA, 0x98, 0x89, 0x1A, 0x3D, 0x8A, 0x36, 0xC4, 0xEE, 0x31, 0xF2, 0x9D, 0x1B, 0xC5, 0xFB, 0x54, 0xC4, 0x35, 0x9F, 0xB8, 0xE6, 0xA2, 0x1E, 0x4F, 0x11, 0xD7, 0x7C, 0xAA, 0xC7, 0x33, 0x58, 0x8F, 0xB8, 0x1E, 0xBF, 0xF6, 0x8A, 0x9B, 0xBC, 0x38, 0xE2, 0x5F, 0x42, 0xFC, 0xBF, 0x46, 0x3D, 0x16, 0x13, 0xFF, 0x12, 0x1A, 0x57, 0xCF, 0x63, 0x9C, 0xD9, 0xDC, 0x58, 0xEA, 0x15, 0xB3, 0xF5, 0x4A, 0x74, 0x4B, 0x7D, 0xEE, 0x98, 0xBF, 0x09, 0x72, 0x5B, 0xC8, 0x6D, 0x89, 0x6F, 0x59, 0xB4, 0xAE, 0xBC, 0xE0, 0x15, 0x33, 0x3E, 0xD1, 0xBD, 0xE0, 0x73, 0xD7, 0xB8, 0x36, 0x90, 0x2B, 0xB1, 0x1E, 0x56, 0xD2, 0x7A, 0xFA, 0x62, 0xB4, 0xB6, 0x2C, 0xF7, 0x8A, 0x55, 0xD0, 0x7E, 0x70, 0xB9, 0xCF, 0xDD, 0x0F, 0x6E, 0xC3, 0x7A, 0xBA, 0x82, 0xE6, 0xEB, 0x4A, 0xB4, 0xB5, 0x92, 0x62, 0x7D, 0xD9, 0xEB, 0xEF, 0x82, 0x36, 0x5F, 0xD7, 0x78, 0xC5, 0x6C, 0xBE, 0xAE, 0x0E, 0x9F, 0x5F, 0xA2, 0xF9, 0x2A, 0xFA, 0x55, 0xE1, 0x5A, 0x0D, 0xAE, 0x55, 0xA8, 0xE9, 0x5A, 0x6A, 0x67, 0x1D, 0x74, 0xEB, 0xA8, 0x9D, 0x57, 0xBC, 0xFE, 0xDE, 0x68, 0xED, 0x6C, 0xF2, 0x8A, 0xD9, 0xBA, 0xBD, 0x21, 0x7C, 0xDE, 0x48, 0xED, 0x88, 0x7E, 0x7D, 0xB8, 0x36, 0x80, 0x6B, 0x3D, 0x71, 0x6D, 0x46, 0xCC, 0x26, 0x6F, 0x01, 0xB7, 0x8D, 0xE7, 0x4A, 0xCC, 0x79, 0xB1, 0xDB, 0x42, 0x63, 0x64, 0xBB, 0x57, 0x5D, 0xAD, 0x60, 0x25, 0xF2, 0xAB, 0x18, 0x23, 0xED, 0xA0, 0xFB, 0x0C, 0x35, 0x13, 0x9B, 0x57, 0x89, 0x6F, 0x17, 0xE6, 0x47, 0xCC, 0xF7, 0xBA, 0x57, 0x9D, 0xF1, 0xED, 0x26, 0xBE, 0xD7, 0x89, 0x4F, 0x6C, 0x76, 0xD3, 0x78, 0x78, 0xD3, 0x67, 0xCF, 0xC5, 0xEC, 0x8C, 0xF3, 0x2D, 0x9F, 0xDD, 0x47, 0x96, 0xD1, 0xF7, 0x84, 0x83, 0x5E, 0x75, 0xF6, 0x3C, 0xFA, 0x4F, 0xAF, 0xFE, 0x07, 0x89, 0xEF, 0xF7, 0x5E, 0xF1, 0xB1, 0xF4, 0x7D, 0xE2, 0x90, 0x57, 0x7C, 0x33, 0xD9, 0xBD, 0xED, 0x15, 0xE7, 0x33, 0xA4, 0xFF, 0xF2, 0x7A, 0x86, 0xF4, 0x36, 0xD9, 0xBD, 0xE3, 0x15, 0x9F, 0x4C, 0x7C, 0x87, 0xBD, 0xE2, 0x9C, 0xFF, 0x11, 0xD4, 0xD3, 0x9E, 0x1F, 0x47, 0xF1, 0xBE, 0x41, 0x29, 0xEC, 0x25, 0x77, 0xC1, 0x8E, 0xF8, 0xEC, 0xEF, 0x5B, 0xC7, 0x29, 0x4F, 0x79, 0x17, 0x81, 0x7F, 0xDF, 0x7A, 0xDF, 0xAB, 0xDE, 0x7E, 0xDF, 0x3A, 0xE1, 0x15, 0xB3, 0x31, 0x73, 0x12, 0xB9, 0x0B, 0x2E, 0xFB, 0xE5, 0xD3, 0x34, 0x5E, 0x44, 0x77, 0x2A, 0x5C, 0xA7, 0x31, 0x5E, 0x4E, 0x51, 0x3E, 0x1F, 0xF8, 0xEC, 0xF9, 0x9C, 0xE5, 0xFD, 0x91, 0x57, 0x9C, 0xEB, 0xF8, 0x89, 0x57, 0x7C, 0x2C, 0xD5, 0xFF, 0x53, 0x8C, 0x35, 0xB3, 0xF9, 0xCC, 0xAB, 0xDD, 0xA7, 0x84, 0x7D, 0xEE, 0x15, 0xE7, 0xBA, 0x7E, 0x81, 0xBA, 0x7E, 0x4E, 0x76, 0x7F, 0xF7, 0x8A, 0x4F, 0x26, 0xFE, 0x2F, 0x31, 0x76, 0xCD, 0xE6, 0x8C, 0x57, 0xBB, 0x2F, 0x69, 0xFC, 0x7D, 0x8D, 0xF1, 0xF7, 0x29, 0x70, 0xAB, 0xFF, 0x59, 0xAF, 0x3A, 0xAB, 0xFF, 0x37, 0x54, 0xFF, 0x33, 0xA8, 0xBF, 0x60, 0x67, 0xB1, 0x36, 0x58, 0x6D, 0x4E, 0x43, 0xDE, 0x08, 0x79, 0x23, 0xCD, 0xA5, 0xFF, 0x8D, 0xE2, 0x39, 0xE7, 0x15, 0xB3, 0xB5, 0x46, 0x74, 0xE7, 0x7C, 0xEE, 0x3C, 0xDF, 0x00, 0xF9, 0x25, 0xC8, 0x2F, 0x11, 0xDF, 0xB7, 0x51, 0xFD, 0xBE, 0xF3, 0x8A, 0x19, 0x9F, 0xE8, 0xBE, 0xF3, 0xB9, 0xEB, 0xD3, 0x6A, 0xC4, 0x2E, 0xFF, 0x4D, 0xC6, 0x9A, 0xE2, 0x13, 0xD5, 0xC9, 0xDD, 0xB8, 0x0B, 0x12, 0x7D, 0x67, 0xC1, 0xB8, 0x6B, 0xC0, 0xBE, 0x2C, 0xA3, 0x73, 0x52, 0xB0, 0x0B, 0x12, 0x9D, 0x93, 0x6D, 0xA1, 0x2F, 0xA1, 0xDF, 0x70, 0x6A, 0x26, 0xCA, 0x21, 0x36, 0xB2, 0x06, 0xE5, 0x85, 0x7B, 0xB5, 0x24, 0x3B, 0xA6, 0x44, 0x9F, 0x84, 0x2B, 0x0F, 0x6D, 0xCB, 0x67, 0x89, 0x4B, 0xDE, 0x8B, 0x18, 0x8F, 0xB8, 0xEA, 0x40, 0x57, 0x87, 0xE2, 0xAA, 0x9F, 0xE8, 0xBB, 0x13, 0xD3, 0x30, 0xAE, 0x1B, 0x24, 0x8A, 0x55, 0x9D, 0x59, 0x27, 0xD9, 0xF1, 0x68, 0x36, 0x8D, 0x12, 0xC5, 0x6D, 0x9E, 0x34, 0x4E, 0xFE, 0xFF, 0x79, 0xD2, 0x24, 0x51, 0xBD, 0xE4, 0x28, 0x72, 0x21, 0x72, 0x6C, 0x03, 0x1E, 0xD1, 0xAF, 0x43, 0x8E, 0x4D, 0x13, 0x6D, 0xBF, 0x10, 0x39, 0xD6, 0x0D, 0xF7, 0x7A, 0x94, 0xA3, 0xE8, 0x2F, 0x0C, 0x57, 0x5D, 0xE4, 0x71, 0x21, 0x72, 0x94, 0x77, 0x3D, 0xC6, 0x22, 0xC7, 0x22, 0xE8, 0x8A, 0x28, 0xC7, 0x56, 0x89, 0xBE, 0x0F, 0x62, 0xF1, 0xB7, 0x4E, 0x14, 0xB3, 0x1C, 0xDB, 0xC0, 0x9F, 0x73, 0x6C, 0x9B, 0x28, 0x6E, 0x39, 0xB6, 0x8B, 0x72, 0xE4, 0xDF, 0xDB, 0xDB, 0x27, 0xAA, 0xB7, 0x1C, 0x2F, 0xA7, 0x1C, 0x85, 0xA7, 0x3D, 0xE5, 0xD8, 0x21, 0xD1, 0xF6, 0x2F, 0x47, 0x8E, 0xCD, 0xC3, 0xBD, 0x05, 0xE5, 0x28, 0xFA, 0x4B, 0xC3, 0xD5, 0x1C, 0x79, 0x5C, 0x4A, 0x79, 0x74, 0x42, 0x1E, 0x55, 0x67, 0xDA, 0xE8, 0x3B, 0xFB, 0xDD, 0xAC, 0x6B, 0xA2, 0x36, 0xF6, 0xBB, 0x59, 0x31, 0xF1, 0x8A, 0xAE, 0x5B, 0xB8, 0x8A, 0xC1, 0xDB, 0x8D, 0xF2, 0x2F, 0x49, 0x94, 0xCB, 0xC6, 0x79, 0x4F, 0xF0, 0xC8, 0x67, 0x79, 0x4F, 0xA6, 0x84, 0xDA, 0xEC, 0x83, 0x71, 0x2C, 0x3A, 0x79, 0x67, 0x46, 0xE4, 0xEF, 0x63, 0xFC, 0xF6, 0x0D, 0x9F, 0x2F, 0xC2, 0xBB, 0x36, 0xE2, 0xD7, 0x3B, 0xC9, 0xCE, 0xF7, 0x7E, 0x49, 0x76, 0xBE, 0xF7, 0x85, 0xBF, 0x60, 0xF2, 0xDC, 0xB1, 0xF8, 0xAF, 0x45, 0x1C, 0x16, 0x7F, 0x19, 0xC5, 0x2F, 0xBA, 0xD2, 0x70, 0x95, 0x21, 0xFE, 0x52, 0x70, 0xDC, 0x48, 0xB1, 0x0E, 0x84, 0xBF, 0xC5, 0x3A, 0x98, 0x62, 0x95, 0xF7, 0x75, 0x06, 0x53, 0xAC, 0x43, 0x10, 0xAB, 0xF8, 0x8B, 0xDF, 0x20, 0x8A, 0x75, 0x28, 0xC5, 0x3A, 0x04, 0xFE, 0x43, 0x11, 0xAB, 0x8C, 0x31, 0x8B, 0xA1, 0x8C, 0xC6, 0xD4, 0xCD, 0x68, 0x5B, 0x7E, 0x8B, 0x14, 0x79, 0x38, 0xC6, 0xF6, 0x38, 0xFA, 0x5D, 0xF3, 0xB6, 0x44, 0xED, 0x44, 0x27, 0xF9, 0x8D, 0xA0, 0xFC, 0x44, 0x77, 0x7B, 0xB8, 0x46, 0x80, 0xFB, 0x76, 0xEA, 0x9F, 0x91, 0xE0, 0xB6, 0xDF, 0x30, 0x47, 0x51, 0xCE, 0xF2, 0x9E, 0xD1, 0x48, 0xCA, 0xF9, 0xC7, 0x94, 0xB3, 0xBC, 0x73, 0xF4, 0x63, 0xCA, 0xF9, 0x6E, 0xE4, 0x2C, 0xFE, 0xE2, 0x57, 0x4E, 0x39, 0x8F, 0xA1, 0x9C, 0xEF, 0x86, 0xFF, 0x18, 0xCA, 0xD9, 0xE2, 0x92, 0x7B, 0x7A, 0xEE, 0x08, 0xB9, 0x98, 0x6A, 0x30, 0x0E, 0x71, 0x59, 0x0D, 0xC6, 0x63, 0xEC, 0x73, 0x0D, 0xEE, 0x4D, 0xD4, 0x6E, 0x3C, 0x6A, 0x30, 0x91, 0x6A, 0x20, 0xBA, 0x09, 0xE1, 0x9A, 0x08, 0xEE, 0x09, 0x54, 0x83, 0x49, 0xE0, 0xE6, 0xDF, 0xA8, 0x26, 0x47, 0xE3, 0x56, 0xDE, 0xA9, 0x9A, 0x84, 0xD8, 0xE5, 0x7D, 0xAA, 0xC9, 0x54, 0x97, 0x29, 0x54, 0x17, 0x79, 0xB7, 0x6A, 0x0A, 0xD5, 0x65, 0x2A, 0xEA, 0x22, 0xFE, 0xE2, 0xF7, 0x10, 0xD5, 0x65, 0x1A, 0xD5, 0x65, 0x2A, 0xFC, 0xA7, 0x45, 0xE3, 0x76, 0x7A, 0x34, 0x6E, 0x67, 0x52, 0x4E, 0xA2, 0x9B, 0x11, 0xAE, 0x99, 0xC8, 0x69, 0x06, 0x38, 0x1E, 0xA7, 0x58, 0x9F, 0x88, 0xC6, 0xED, 0x1C, 0x8A, 0x55, 0xDE, 0xEB, 0x9A, 0x43, 0xB1, 0xFE, 0x1C, 0xB1, 0x8A, 0xBF, 0xF8, 0xCD, 0xA6, 0x58, 0xE7, 0x52, 0xAC, 0x3F, 0x87, 0xFF, 0x5C, 0xEA, 0x43, 0x8B, 0x61, 0x26, 0xF5, 0xD9, 0x93, 0xD1, 0xB8, 0x9D, 0x7F, 0x9E, 0x71, 0xFB, 0xAB, 0x44, 0xED, 0xE6, 0xA3, 0xCF, 0x16, 0x52, 0x7E, 0xA2, 0x5B, 0x10, 0xAE, 0x85, 0xE0, 0x5E, 0x40, 0x7D, 0xF6, 0x6C, 0x34, 0x6E, 0x17, 0x51, 0xCE, 0xF2, 0x3E, 0xDA, 0xB3, 0x94, 0xF3, 0x73, 0x94, 0xB3, 0xBC, 0x9B, 0xF6, 0x1C, 0xE5, 0xFC, 0x3C, 0x72, 0x16, 0x7F, 0xF1, 0x5B, 0x42, 0x39, 0x2F, 0xA5, 0x9C, 0x9F, 0x87, 0xFF, 0x52, 0xCA, 0xD9, 0xE2, 0x5A, 0x88, 0x71, 0x6B, 0x63, 0x6B, 0x22, 0xAD, 0x9B, 0x2F, 0x46, 0xFD, 0xB7, 0x82, 0xF2, 0x13, 0xDD, 0xF2, 0x70, 0xAD, 0x80, 0xDF, 0x72, 0xCA, 0x6F, 0x35, 0xC6, 0xA4, 0x8D, 0x3F, 0x79, 0x87, 0x6E, 0x35, 0x62, 0x58, 0x1B, 0xF5, 0xE9, 0x7A, 0xCA, 0x4F, 0xDE, 0xA5, 0x5B, 0x4F, 0xF9, 0x6D, 0x40, 0x7E, 0xE2, 0x2F, 0x7E, 0xEB, 0x28, 0xBF, 0x8D, 0x94, 0xDF, 0x06, 0xF8, 0x6F, 0xA4, 0xFC, 0x2C, 0xAE, 0x15, 0xD4, 0xA7, 0x9B, 0xA2, 0x3E, 0xDD, 0x7A, 0x9E, 0x3E, 0xDD, 0x96, 0xA8, 0xDD, 0x56, 0xF4, 0xE9, 0x76, 0xCA, 0x59, 0x74, 0x95, 0xE1, 0xDA, 0x0E, 0xEE, 0x4A, 0xCA, 0x79, 0x07, 0xE5, 0x6C, 0xD8, 0xCE, 0xA8, 0x9F, 0xE5, 0xDD, 0xC0, 0x1D, 0x88, 0x55, 0xDE, 0x0B, 0xDC, 0x49, 0x75, 0xD8, 0x43, 0x75, 0x90, 0x77, 0x04, 0xF7, 0x50, 0x1D, 0xF6, 0xA2, 0x0E, 0xE2, 0x2F, 0x7E, 0xBB, 0xA9, 0x0E, 0xFB, 0xA8, 0x0E, 0x7B, 0xE1, 0xBF, 0x8F, 0xEA, 0x60, 0xB1, 0x6E, 0x47, 0x3F, 0xB7, 0x80, 0xDC, 0x82, 0xDA, 0xDE, 0x8F, 0xE7, 0xA7, 0xC5, 0x7D, 0x20, 0x51, 0xCC, 0xFA, 0x4F, 0x74, 0x07, 0x92, 0xDC, 0x7D, 0x44, 0x73, 0xC8, 0xF5, 0x20, 0xD7, 0x23, 0xBE, 0x37, 0xF0, 0xFC, 0xAD, 0xFA, 0xAE, 0x94, 0x28, 0x66, 0x7C, 0xA2, 0x7B, 0x33, 0xC9, 0xDD, 0x7B, 0xD5, 0x85, 0x5C, 0x0D, 0x72, 0x35, 0xE2, 0x7B, 0x2B, 0xDA, 0x23, 0x1E, 0x4C, 0x14, 0x33, 0x3E, 0xF9, 0xEF, 0x60, 0x92, 0xBB, 0xC7, 0xCC, 0x4B, 0x72, 0xDF, 0x63, 0x93, 0xFB, 0xB9, 0xB0, 0xFB, 0xB8, 0x2A, 0x5C, 0xDD, 0x71, 0x6E, 0x7A, 0x01, 0xDE, 0x9F, 0x91, 0x77, 0xA9, 0x7B, 0x04, 0x92, 0x02, 0xFC, 0x1D, 0x81, 0xD8, 0xD7, 0xA4, 0x77, 0x74, 0x9B, 0xE4, 0x65, 0xDF, 0xD9, 0x6C, 0x1C, 0xBD, 0xB3, 0xD9, 0x14, 0xFC, 0x4D, 0xF3, 0xB2, 0x7B, 0xFA, 0x06, 0xE0, 0xD9, 0x8E, 0x31, 0xD5, 0x08, 0x58, 0x43, 0x70, 0x34, 0xA1, 0xF7, 0x76, 0x1A, 0xE1, 0x6F, 0x8A, 0x9A, 0xA3, 0xDD, 0xE6, 0xF4, 0x3E, 0x4A, 0x8B, 0x88, 0xA7, 0x15, 0xB0, 0x96, 0xE0, 0xB9, 0x8C, 0x78, 0xEC, 0x6F, 0xC7, 0xAE, 0x04, 0xCF, 0x95, 0xC4, 0xF3, 0x3D, 0xF0, 0xCC, 0x44, 0xDE, 0x5D, 0x81, 0x75, 0x49, 0xF7, 0xD8, 0xF9, 0x29, 0xD6, 0x0D, 0xEF, 0x6F, 0x36, 0x83, 0xDE, 0xCE, 0x60, 0x7A, 0x64, 0xB2, 0x67, 0x30, 0x9D, 0x61, 0xD7, 0x3D, 0xA3, 0xBF, 0x89, 0xE4, 0xE3, 0xEF, 0xCB, 0x7A, 0xE0, 0x6F, 0x71, 0xA4, 0x2F, 0xA4, 0x56, 0x57, 0x61, 0xCF, 0xD9, 0x18, 0xB5, 0x69, 0x4D, 0xB1, 0xB4, 0xAD, 0xFA, 0x5B, 0x13, 0xFD, 0xBE, 0xDD, 0x1E, 0xFC, 0x85, 0xD0, 0xB5, 0xA3, 0xB6, 0xAF, 0xA0, 0xB6, 0xDB, 0xC0, 0xB6, 0x03, 0xB5, 0xDD, 0x11, 0x36, 0xDC, 0x76, 0xC7, 0xA8, 0x6D, 0xA9, 0xD1, 0x77, 0x81, 0x45, 0x3E, 0x37, 0xA6, 0x38, 0x9A, 0x22, 0x0E, 0xE3, 0x2A, 0x02, 0x26, 0xEF, 0xC6, 0x1B, 0x57, 0x51, 0xC4, 0xD5, 0x84, 0xB9, 0xA8, 0xBF, 0x0B, 0xF3, 0x74, 0x8C, 0x7C, 0x1B, 0xF0, 0xC2, 0x34, 0x7F, 0x1D, 0x63, 0x32, 0x56, 0x2F, 0x42, 0x1F, 0xD5, 0xC1, 0x18, 0xAB, 0x9D, 0xFE, 0x2D, 0x62, 0xF6, 0x73, 0x5D, 0xFA, 0x5C, 0x0F, 0x7D, 0x57, 0x9F, 0xBE, 0x5B, 0xF6, 0x84, 0x8D, 0x9D, 0x31, 0x5C, 0x97, 0x39, 0xFF, 0x19, 0xC3, 0xF5, 0xD0, 0xD9, 0x77, 0xD7, 0x7F, 0x81, 0xEF, 0xF5, 0x64, 0xF3, 0x03, 0xB4, 0x5D, 0x75, 0xA6, 0x0C, 0xBB, 0x1F, 0x90, 0xDF, 0x8D, 0x78, 0x87, 0xEA, 0x06, 0xF2, 0x1B, 0x88, 0xD8, 0xCC, 0x6F, 0x10, 0xEC, 0x06, 0x66, 0x34, 0xE7, 0x41, 0x19, 0xCD, 0xF9, 0xFF, 0x00, 0x82, 0x19, 0xB5, 0x08 -}; diff --git a/internal/shaders/output/convolution_concat_64_6_64_coop.comp.spv.inl b/internal/shaders/output/convolution_concat_64_6_64_coop.comp.spv.inl deleted file mode 100644 index dcb7a1fcf..000000000 --- a/internal/shaders/output/convolution_concat_64_6_64_coop.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_6_64_coop.comp.spv */ -const int internal_shaders_output_convolution_concat_64_6_64_coop_comp_spv_size = 10721; -const unsigned char internal_shaders_output_convolution_concat_64_6_64_coop_comp_spv[10721] = { - 0x78, 0xDA, 0x8D, 0x5D, 0x09, 0x9C, 0x4E, 0xD5, 0xFB, 0x7F, 0xCF, 0x3D, 0xE7, 0x8E, 0x25, 0x95, 0xAD, 0x10, 0xB2, 0x14, 0xD1, 0x22, 0x4B, 0xA1, 0x30, 0x96, 0x8C, 0x25, 0x42, 0x25, 0x2A, 0xD5, 0x18, 0x63, 0x98, 0x61, 0x16, 0xCD, 0x8C, 0xAD, 0x14, 0x25, 0xA4, 0x4D, 0x48, 0x25, 0x4A, 0x25, 0xD1, 0xA6, 0x94, 0xF6, 0x4D, 0x8B, 0x56, 0xED, 0x43, 0x4A, 0x8B, 0x14, 0x69, 0xDF, 0x4B, 0xFB, 0xFF, 0x3E, 0xF7, 0xF9, 0x3E, 0xEF, 0xFB, 0xBC, 0xA7, 0xD7, 0xEF, 0xF3, 0xF7, 0xFB, 0xDD, 0xDE, 0xFB, 0x7C, 0x9F, 0xE7, 0x3C, 0xCB, 0xF7, 0x9C, 0xBB, 0x9D, 0xBB, 0x8C, 0x0D, 0x0E, 0xA9, 0x96, 0xB0, 0x26, 0xB1, 0x4F, 0xA2, 0x7A, 0x62, 0x5B, 0x98, 0x88, 0xFF, 0xD5, 0x49, 0x04, 0x09, 0x83, 0xDF, 0x1A, 0xF8, 0x3D, 0xB9, 0x0E, 0xFF, 0x7E, 0x52, 0x9F, 0x7F, 0xE7, 0x36, 0x48, 0x24, 0x6A, 0x46, 0x6D, 0x4E, 0x1D, 0x36, 0x22, 0x77, 0xD0, 0x80, 0x53, 0x72, 0xF3, 0xCB, 0xCA, 0x26, 0x15, 0x94, 0xE7, 0x55, 0x16, 0x4D, 0x29, 0xC8, 0x2D, 0xC9, 0xAB, 0x2C, 0x2F, 0x9A, 0x96, 0xAE, 0x9F, 0x32, 0xB9, 0x78, 0x62, 0x5E, 0x69, 0x6E, 0x49, 0x41, 0x49, 0x59, 0xF9, 0xF4, 0xDC, 0x92, 0xB2, 0xB1, 0x05, 0xC5, 0x51, 0xCC, 0xAC, 0x38, 0x4E, 0xFF, 0xC1, 0xA7, 0x0E, 0x6E, 0x57, 0x51, 0x39, 0xB6, 0xDD, 0x31, 0xC7, 0xB6, 0xA7, 0xF8, 0xFB, 0x25, 0x6C, 0x9C, 0x07, 0xFD, 0x77, 0xFF, 0xC8, 0x07, 0xA5, 0xE5, 0xA2, 0xA5, 0x24, 0xAF, 0xA8, 0x94, 0xF0, 0x91, 0xD1, 0x32, 0x2A, 0x5A, 0x16, 0x44, 0x4B, 0xED, 0xC8, 0x87, 0x8B, 0x73, 0x4C, 0x24, 0x9A, 0x47, 0x8B, 0xC1, 0x62, 0xA3, 0xFF, 0x05, 0xD1, 0xEF, 0xB3, 0x86, 0xDA, 0xD6, 0x88, 0x62, 0xE4, 0xE6, 0x9C, 0x3E, 0x3C, 0x4A, 0xB3, 0xB4, 0xB2, 0xBC, 0xAC, 0x38, 0x77, 0x5C, 0x71, 0xD9, 0xD4, 0xDC, 0xBC, 0xCA, 0x28, 0xCF, 0x31, 0x93, 0x2B, 0x0B, 0x2A, 0xC8, 0x66, 0x5F, 0xB1, 0xA9, 0x28, 0xCC, 0x1B, 0x5B, 0x50, 0x9E, 0x5B, 0x30, 0x6D, 0x52, 0x71, 0x51, 0x7E, 0x51, 0x65, 0x6E, 0x5E, 0x79, 0x51, 0x65, 0x61, 0x49, 0x41, 0x65, 0x51, 0x7E, 0x6E, 0xE5, 0xF4, 0x49, 0x05, 0x15, 0xD4, 0x38, 0xAF, 0xB2, 0x43, 0xE7, 0xA8, 0x4D, 0x4D, 0x6A, 0xD3, 0x7F, 0xE8, 0xD0, 0xFE, 0x83, 0x73, 0x72, 0xF3, 0x27, 0x4D, 0xCA, 0xAD, 0xA8, 0x9C, 0x5E, 0x5C, 0x90, 0x5B, 0x5C, 0x54, 0x5A, 0x90, 0x3B, 0xB6, 0xA8, 0xBC, 0x20, 0x9F, 0xE8, 0x20, 0xDF, 0xD5, 0x95, 0x5D, 0x51, 0x69, 0x7E, 0xF1, 0xE4, 0xB1, 0xDA, 0x00, 0xFA, 0xBD, 0xD1, 0x28, 0xF9, 0x93, 0x1E, 0xFC, 0x55, 0xE4, 0x47, 0x66, 0xB9, 0x15, 0x05, 0x25, 0x79, 0xA5, 0x51, 0x5A, 0x51, 0xFA, 0x11, 0x47, 0x2E, 0x8D, 0xA3, 0x30, 0x51, 0x2D, 0xCA, 0x2E, 0x91, 0xA8, 0x2C, 0xCF, 0x2B, 0xAD, 0x18, 0x17, 0x95, 0x53, 0x54, 0x3A, 0x69, 0x72, 0x65, 0xC7, 0x36, 0xE3, 0x3A, 0x74, 0x8B, 0x74, 0x36, 0xEE, 0xD7, 0x29, 0x79, 0xC5, 0xD1, 0x7A, 0xF5, 0x44, 0xDD, 0x68, 0xBD, 0x6C, 0x72, 0x65, 0x6E, 0xD9, 0xB8, 0x71, 0x15, 0x05, 0x95, 0x6D, 0x8A, 0x3A, 0x74, 0xE3, 0xFF, 0xB3, 0x1F, 0x1B, 0xF5, 0x41, 0x22, 0x31, 0x0D, 0xEB, 0xB5, 0xA3, 0xDF, 0xE9, 0x58, 0x27, 0xCE, 0xF3, 0x11, 0xBB, 0x77, 0xF4, 0x3B, 0x2C, 0xAF, 0x3C, 0xAF, 0x24, 0x4A, 0x26, 0x2B, 0x42, 0x7A, 0xF3, 0x50, 0x4A, 0x50, 0x8D, 0xF4, 0x9B, 0x15, 0xE5, 0xD3, 0x1B, 0x7D, 0x53, 0x54, 0x3A, 0x25, 0xB7, 0xA8, 0x64, 0x7C, 0x6E, 0x45, 0xD1, 0x79, 0x05, 0x5A, 0x17, 0xC4, 0xBA, 0x28, 0xCD, 0x88, 0xC7, 0xF2, 0xA2, 0xB1, 0x05, 0x1D, 0x94, 0xCE, 0x7A, 0xBA, 0x8E, 0x4A, 0xE7, 0x38, 0xFF, 0x94, 0x52, 0xE9, 0x68, 0xEC, 0x54, 0x96, 0x95, 0x46, 0x4C, 0x4D, 0x8A, 0x47, 0x1D, 0xC7, 0xCB, 0x8A, 0x75, 0x59, 0xC8, 0x65, 0x7C, 0x5E, 0x49, 0x49, 0x5E, 0x22, 0x95, 0x77, 0xB5, 0x68, 0xC9, 0x9D, 0x94, 0x37, 0xB6, 0xA3, 0xB2, 0xAD, 0x0E, 0x8E, 0xC6, 0x16, 0x51, 0x85, 0x29, 0xDB, 0x1A, 0xB1, 0x0F, 0x86, 0xC3, 0x08, 0xED, 0x13, 0xC9, 0xA7, 0x95, 0x16, 0x8D, 0x2B, 0x2B, 0x2F, 0x11, 0x3A, 0x62, 0x1F, 0x7D, 0xC0, 0xC7, 0xF8, 0xC8, 0x31, 0xE0, 0x98, 0xC3, 0xBE, 0xC0, 0x89, 0xC3, 0xE1, 0x94, 0x6B, 0x51, 0x34, 0x80, 0x8A, 0xC6, 0xC6, 0xBE, 0x68, 0x9C, 0x8F, 0x2F, 0xCE, 0x1D, 0x59, 0x56, 0x3E, 0xB1, 0x7F, 0x79, 0xD9, 0xE4, 0x49, 0x03, 0xFB, 0x72, 0x9B, 0x33, 0x23, 0xBC, 0xB8, 0x28, 0x11, 0xF7, 0xDD, 0x28, 0xB6, 0x19, 0x5C, 0x96, 0x9F, 0x57, 0x3C, 0xB0, 0x74, 0x4A, 0xF4, 0x53, 0x59, 0x54, 0x56, 0x3A, 0xB0, 0xAF, 0xF8, 0x3F, 0x47, 0xF5, 0xDD, 0x58, 0xD5, 0x77, 0x13, 0x92, 0x7D, 0x67, 0x13, 0x73, 0xA8, 0x06, 0xAC, 0x5F, 0x49, 0xEB, 0xF0, 0xBD, 0x20, 0xB3, 0xEF, 0xD2, 0xB1, 0x05, 0xD3, 0x62, 0xDB, 0x45, 0x91, 0x7E, 0xC2, 0x84, 0x44, 0x9C, 0xEB, 0xCA, 0xB8, 0xB6, 0x68, 0xC8, 0x46, 0x5D, 0x90, 0x37, 0xBE, 0xA8, 0x74, 0x7C, 0x7B, 0xC2, 0xC3, 0xC4, 0xFA, 0x08, 0xEF, 0x53, 0x94, 0x57, 0x51, 0x50, 0xD1, 0x67, 0xF2, 0x38, 0x70, 0xB1, 0x3E, 0xC9, 0xC5, 0x98, 0x58, 0x23, 0xB9, 0x3E, 0x94, 0xE4, 0x22, 0x2B, 0xF1, 0x8C, 0xEF, 0xAF, 0x03, 0xE3, 0x2F, 0xF8, 0x78, 0x47, 0xC6, 0x5F, 0xF5, 0xF1, 0x4E, 0xEC, 0x73, 0x2B, 0xE5, 0x08, 0x7E, 0x77, 0x12, 0xBF, 0x05, 0x25, 0x93, 0x7A, 0x97, 0x8F, 0x8F, 0x75, 0x5F, 0x47, 0xF2, 0x09, 0xED, 0x59, 0xF7, 0xB3, 0xA7, 0xFB, 0x83, 0x74, 0x1D, 0xB8, 0x86, 0x68, 0xF7, 0x98, 0x28, 0x2F, 0x9B, 0x5A, 0x11, 0x6D, 0x9D, 0x93, 0x4B, 0x2B, 0x19, 0xDB, 0x37, 0xC2, 0xF2, 0xCB, 0x8A, 0x15, 0x66, 0x13, 0xF5, 0x8D, 0xC4, 0xB2, 0x89, 0xA6, 0x26, 0xC5, 0x69, 0x2B, 0x23, 0x3C, 0xB9, 0x44, 0xA7, 0x68, 0x7D, 0x1A, 0x6D, 0x69, 0xD0, 0x75, 0x25, 0x3F, 0x85, 0xAC, 0xEB, 0x11, 0xEB, 0xC6, 0x15, 0x95, 0xC6, 0xDB, 0xA5, 0x4D, 0x0C, 0x22, 0x1F, 0xED, 0xD9, 0x2E, 0x8F, 0xD6, 0x3B, 0xF0, 0x7A, 0x19, 0xAD, 0x77, 0xE4, 0xF5, 0x0B, 0x68, 0xBD, 0x13, 0xE7, 0xB4, 0x30, 0x5A, 0x1F, 0x48, 0xDB, 0x48, 0x87, 0x14, 0xD7, 0x84, 0x31, 0xD7, 0xF1, 0xD6, 0xD3, 0x41, 0xB8, 0x5E, 0x6C, 0x52, 0xE3, 0xEE, 0x61, 0x93, 0x5E, 0xFB, 0x13, 0x91, 0xDC, 0x1B, 0xBC, 0x6C, 0xF0, 0x74, 0x1B, 0x49, 0xD7, 0x81, 0x75, 0x2F, 0x7B, 0xBA, 0x4D, 0xA4, 0xEB, 0xC8, 0xBA, 0x37, 0x3D, 0xDD, 0x3B, 0xA4, 0x43, 0x9F, 0xBC, 0x97, 0xE4, 0xC6, 0x25, 0x3E, 0x4B, 0xB3, 0x0B, 0x13, 0xBB, 0x22, 0x79, 0x64, 0x41, 0xD1, 0xF8, 0xC2, 0x4A, 0x1E, 0x30, 0x54, 0xC3, 0xAE, 0x64, 0x0D, 0x53, 0x59, 0x83, 0x1A, 0x76, 0x27, 0x6B, 0x88, 0xF6, 0xF5, 0xD1, 0xCE, 0xA3, 0x0F, 0x72, 0xCE, 0x0A, 0xD2, 0x63, 0x37, 0x25, 0x1D, 0x72, 0x6E, 0xE6, 0xE9, 0xBA, 0x90, 0x0E, 0x5C, 0x1E, 0x17, 0xAD, 0x4F, 0x84, 0xBF, 0x05, 0x41, 0xAA, 0x2F, 0xAF, 0x0F, 0x52, 0x7D, 0x79, 0x73, 0x90, 0xEA, 0xCB, 0xB5, 0x41, 0x7A, 0x5F, 0xAE, 0x0F, 0xA4, 0x2F, 0xC3, 0xC4, 0x53, 0x71, 0x9C, 0x69, 0xB4, 0x43, 0x2F, 0x1F, 0x9B, 0x60, 0xEC, 0xA3, 0x80, 0xFB, 0x81, 0x76, 0x7E, 0x1D, 0x81, 0xED, 0x88, 0xB1, 0x8A, 0xBC, 0x92, 0x49, 0xC5, 0x05, 0xE5, 0xE0, 0xE4, 0x9B, 0x08, 0x8B, 0xF7, 0x12, 0x90, 0xFF, 0xF1, 0xE4, 0xFD, 0x6D, 0xBA, 0xDC, 0x3C, 0x4D, 0x0E, 0x13, 0x47, 0xDB, 0x54, 0x9C, 0x4E, 0xB0, 0x29, 0xB2, 0xE9, 0x75, 0x17, 0xDB, 0x54, 0x1F, 0x4F, 0xF2, 0x74, 0x15, 0x36, 0xD5, 0xC7, 0x53, 0x3D, 0xDD, 0x79, 0x36, 0xD5, 0xC7, 0x17, 0x7A, 0xBA, 0x8B, 0x6C, 0xAA, 0x8F, 0xE7, 0xD9, 0x54, 0x1F, 0x2F, 0xF0, 0xEC, 0xEE, 0xB0, 0xA9, 0xBE, 0xBA, 0xCB, 0xD3, 0x6D, 0xB4, 0xA9, 0xBE, 0x7A, 0xD1, 0xD3, 0x7D, 0x62, 0x53, 0x7D, 0xF5, 0xA9, 0x4D, 0xF5, 0xD5, 0x71, 0x2E, 0xD5, 0x57, 0x7D, 0x5C, 0xAA, 0xAF, 0x06, 0x39, 0xB1, 0x71, 0x89, 0x73, 0xA3, 0xF5, 0xA1, 0x93, 0x2B, 0x93, 0x63, 0x8A, 0x64, 0x1E, 0x53, 0xB4, 0x57, 0x1F, 0x33, 0x59, 0xFA, 0xB0, 0xC2, 0xA5, 0xC6, 0xD4, 0x3B, 0xD1, 0xFA, 0xF4, 0xE9, 0x88, 0x17, 0xAD, 0x4F, 0x9B, 0xC6, 0xEB, 0xBF, 0x46, 0xEB, 0xF9, 0xF9, 0xBC, 0x6E, 0xA3, 0x03, 0xCC, 0xF8, 0x22, 0x8E, 0x51, 0x37, 0x4C, 0xEF, 0x97, 0x7A, 0x9E, 0x5C, 0xDF, 0x93, 0x0F, 0xF1, 0xE4, 0x43, 0x3D, 0xB9, 0x95, 0x27, 0x77, 0xF5, 0xE4, 0xE3, 0x3C, 0xF9, 0x78, 0x4F, 0x3E, 0xC9, 0x93, 0x87, 0x78, 0xF2, 0x50, 0x4F, 0x3E, 0xC7, 0x93, 0x73, 0x3D, 0x79, 0xB4, 0x27, 0x57, 0x78, 0x72, 0xA5, 0x27, 0x4F, 0xF6, 0xE4, 0x4B, 0x3C, 0x79, 0x8E, 0x27, 0xCF, 0xF5, 0xE4, 0xA5, 0x9E, 0x7C, 0x83, 0x27, 0x2F, 0x53, 0xF2, 0x00, 0x75, 0xCE, 0x71, 0x08, 0x7E, 0x05, 0x33, 0xC0, 0x6A, 0x2B, 0x2C, 0x00, 0xD6, 0x50, 0x61, 0x16, 0x58, 0x13, 0x85, 0x39, 0x60, 0xCD, 0x15, 0x16, 0x02, 0x3B, 0x54, 0x61, 0x59, 0xC0, 0xDA, 0x28, 0xAC, 0x1A, 0xB0, 0x23, 0x15, 0x56, 0x1D, 0x58, 0x7B, 0x85, 0xD5, 0x00, 0xD6, 0x15, 0x58, 0x1F, 0xAF, 0x8E, 0xFE, 0x34, 0xAE, 0x91, 0x73, 0xFF, 0x28, 0x23, 0x3A, 0x2F, 0xD8, 0x27, 0x5A, 0x0E, 0x82, 0x3C, 0x0A, 0x72, 0x63, 0xC8, 0x0B, 0x20, 0x37, 0x85, 0xFC, 0x00, 0xF2, 0x0B, 0x62, 0xFF, 0x2E, 0x79, 0xFC, 0xAD, 0xE7, 0xC9, 0xC2, 0xC5, 0xFA, 0x0C, 0xF1, 0xD7, 0xAB, 0xF8, 0x74, 0x9C, 0x6E, 0x99, 0xD4, 0xB1, 0xDC, 0x02, 0xB5, 0x91, 0x7C, 0xB5, 0x49, 0x8F, 0x27, 0xC7, 0xA0, 0x7A, 0x9E, 0x2C, 0xF1, 0x44, 0xD6, 0xF1, 0x08, 0x93, 0x78, 0x74, 0xAC, 0xD2, 0xF1, 0x48, 0x6E, 0xA1, 0xF2, 0xD9, 0xE9, 0xC5, 0xDB, 0xE5, 0xC5, 0xDB, 0xE5, 0xC5, 0xDB, 0x95, 0x21, 0xDE, 0x2E, 0x15, 0x6F, 0xB7, 0x17, 0x6F, 0x37, 0xE2, 0x55, 0x83, 0x4C, 0xFB, 0x71, 0xAD, 0x27, 0xB9, 0x05, 0xC6, 0x0A, 0xC9, 0x3B, 0x3C, 0xFD, 0x0E, 0xE8, 0x2D, 0x64, 0xDA, 0x3F, 0x6B, 0x3D, 0xC9, 0x2D, 0x30, 0xAE, 0x48, 0x9E, 0xE4, 0xD2, 0xEB, 0x91, 0x7D, 0x55, 0x3D, 0x4F, 0x6E, 0x84, 0x7A, 0x44, 0xD6, 0xF5, 0x10, 0x26, 0xF5, 0xD0, 0x3E, 0x4D, 0xC7, 0x23, 0xB9, 0x85, 0x92, 0xDF, 0x0F, 0x79, 0xBC, 0x34, 0x8A, 0x63, 0x04, 0x71, 0xBB, 0x16, 0xF1, 0x15, 0x14, 0xFB, 0x38, 0x30, 0x5A, 0xCB, 0xC2, 0x36, 0xD0, 0x3C, 0xB2, 0xAF, 0x06, 0x2E, 0xB2, 0x62, 0x3B, 0x17, 0xF7, 0x7B, 0x16, 0xB0, 0x03, 0x22, 0xB9, 0x96, 0xBA, 0x16, 0x6B, 0x1E, 0x5F, 0x59, 0xB1, 0xAE, 0x56, 0x6C, 0x9F, 0x15, 0x5D, 0xDF, 0xF1, 0xFA, 0xBE, 0x6A, 0x39, 0x82, 0x8E, 0xDB, 0x71, 0xFB, 0x44, 0x62, 0xC3, 0xDF, 0xEF, 0x1C, 0x5B, 0x3F, 0x8A, 0x7C, 0xA0, 0xC2, 0x69, 0xAC, 0xBF, 0x7E, 0xC3, 0x7D, 0x7D, 0x45, 0xA6, 0xB1, 0x7D, 0xE7, 0xD0, 0x95, 0xD9, 0x22, 0x53, 0x7D, 0x23, 0xBE, 0xB1, 0x3D, 0x44, 0x6E, 0x1D, 0x2D, 0x9F, 0xDD, 0xF3, 0x76, 0x4F, 0x91, 0x69, 0xBB, 0xBC, 0xF0, 0xA3, 0x0F, 0x92, 0xF6, 0x47, 0x44, 0xCB, 0xA4, 0xE7, 0x7B, 0x3D, 0x2E, 0x32, 0x6D, 0x8F, 0x3B, 0xFB, 0xE5, 0x24, 0xF5, 0x74, 0x7C, 0xDE, 0xDE, 0xF2, 0xB5, 0x6E, 0x22, 0x77, 0x8E, 0x96, 0x45, 0xAB, 0x66, 0xC6, 0xFE, 0x28, 0x77, 0xBA, 0x38, 0xEA, 0x85, 0x7A, 0x7B, 0xA0, 0x5E, 0xFA, 0xD7, 0x20, 0x92, 0xB3, 0xA3, 0xDF, 0x1E, 0x18, 0x0F, 0x24, 0xF7, 0x54, 0xDB, 0x1F, 0xC9, 0xBD, 0xA0, 0x27, 0xF9, 0xE0, 0xC8, 0x1B, 0xED, 0x03, 0xA8, 0x4D, 0x4F, 0xF0, 0xA2, 0x97, 0x2C, 0xFC, 0xF6, 0xC2, 0x72, 0x30, 0xF6, 0x05, 0xBD, 0xC1, 0xED, 0x09, 0xD8, 0x7F, 0xF4, 0x89, 0x73, 0x62, 0xB9, 0x2F, 0x30, 0xC9, 0x35, 0x07, 0xB9, 0x89, 0xDC, 0x0F, 0xB9, 0x51, 0xFB, 0xFE, 0xB0, 0xAD, 0x85, 0xDC, 0x4E, 0xC1, 0xBA, 0x85, 0xFE, 0x54, 0xF4, 0xDD, 0x29, 0xD0, 0x9F, 0x86, 0xDC, 0x45, 0x3F, 0x02, 0xFD, 0x7C, 0x1A, 0xE2, 0x8F, 0xC0, 0xF5, 0xB9, 0x51, 0xF2, 0x28, 0xC8, 0x12, 0x3F, 0x17, 0x7C, 0x1D, 0x01, 0xEE, 0x46, 0xAB, 0xFC, 0x48, 0x2E, 0xF0, 0xEC, 0x0B, 0xC1, 0x95, 0xE8, 0x27, 0x2A, 0x99, 0xF4, 0x93, 0x50, 0x03, 0xE5, 0x73, 0x2E, 0xD6, 0x7B, 0x40, 0xBE, 0x0A, 0xBE, 0x7A, 0x20, 0x9F, 0xAB, 0x30, 0x6F, 0xA0, 0xFD, 0x2F, 0xC5, 0xB1, 0x41, 0xE4, 0xE5, 0xD8, 0x97, 0xD1, 0xB8, 0x5F, 0xA1, 0x74, 0xE4, 0xE3, 0xE6, 0x68, 0x99, 0x15, 0x1F, 0x23, 0x5C, 0xE2, 0x96, 0xE8, 0x77, 0x05, 0x30, 0x8A, 0x75, 0x2B, 0x78, 0xBD, 0x05, 0xB1, 0x48, 0x5E, 0x09, 0x8C, 0xDA, 0x93, 0xED, 0x1A, 0xD4, 0x4A, 0xF6, 0x77, 0x40, 0xB7, 0x22, 0x1E, 0xCF, 0x36, 0xDE, 0x4F, 0xAF, 0x40, 0x1F, 0xD3, 0xFE, 0xF6, 0x01, 0xD8, 0x3D, 0x88, 0x3E, 0x59, 0x0F, 0xBF, 0x24, 0x3F, 0x04, 0x8C, 0xF4, 0x4F, 0x62, 0x7D, 0x85, 0x8A, 0xFB, 0x0C, 0x7C, 0x8B, 0xFC, 0x82, 0x27, 0xBF, 0xAA, 0xF2, 0xA2, 0xB6, 0x55, 0x8A, 0x13, 0xAA, 0x73, 0x0B, 0xED, 0x5B, 0xF6, 0x4D, 0xC9, 0xEF, 0x12, 0x27, 0x26, 0x25, 0x6F, 0xC7, 0x18, 0x10, 0xF9, 0x13, 0x8F, 0xA7, 0x1D, 0xE0, 0xB0, 0xB0, 0x4E, 0xB5, 0xC4, 0xA7, 0xC8, 0x6D, 0x3B, 0xEC, 0x76, 0xA0, 0x0F, 0x29, 0xF7, 0xCF, 0x30, 0xBE, 0x3E, 0x55, 0x6D, 0x77, 0x23, 0x37, 0xE2, 0xF8, 0x0B, 0xE8, 0x76, 0x43, 0xFE, 0x32, 0xFA, 0xFD, 0x42, 0xB5, 0xFF, 0x0A, 0xED, 0xBF, 0x54, 0xED, 0x7F, 0x88, 0x96, 0x7F, 0xA3, 0x7F, 0x14, 0xFB, 0xC7, 0x0C, 0xB1, 0x7F, 0x40, 0xDB, 0x9F, 0xD0, 0xF6, 0x47, 0xF8, 0xFE, 0x0D, 0xEB, 0x12, 0x6B, 0x4F, 0xF4, 0xFB, 0x9B, 0x8A, 0xF5, 0x3B, 0xEC, 0xF7, 0x28, 0xDE, 0x6A, 0x98, 0x44, 0x3C, 0x3F, 0x22, 0x72, 0x6D, 0xC3, 0x36, 0x22, 0x37, 0x8E, 0xE4, 0x0D, 0x4A, 0x3E, 0xD9, 0x70, 0x6E, 0xD4, 0xDF, 0x74, 0x9C, 0x94, 0xFE, 0xA6, 0xE3, 0x1D, 0xC9, 0x14, 0x67, 0x91, 0xE1, 0xFE, 0x24, 0xAC, 0x1B, 0xE4, 0xC5, 0xC0, 0xA8, 0xA6, 0x07, 0xCD, 0x7F, 0x6B, 0x1A, 0x8D, 0x1C, 0x1F, 0x42, 0x7C, 0xB2, 0xA1, 0x1A, 0x1E, 0x33, 0xBC, 0x2E, 0x35, 0x3C, 0x0E, 0xFD, 0x63, 0xD0, 0x3F, 0x67, 0xB8, 0x66, 0xD1, 0x3F, 0x0F, 0x3D, 0xE1, 0x14, 0x6B, 0x87, 0x8A, 0xB5, 0x03, 0x4B, 0x01, 0x6C, 0x3F, 0x85, 0x2D, 0xD9, 0x50, 0x3D, 0x3B, 0x55, 0x3D, 0x74, 0x3C, 0xDD, 0x89, 0x7A, 0x3E, 0x47, 0xEE, 0xBB, 0x50, 0x0F, 0xC9, 0xBB, 0x81, 0x09, 0x2F, 0xDF, 0x98, 0xD4, 0x78, 0x22, 0xF9, 0xBB, 0x48, 0xDE, 0xAA, 0xFA, 0x94, 0x36, 0xF8, 0x4B, 0x03, 0xCE, 0xC9, 0x05, 0xFF, 0xCD, 0x49, 0xFA, 0x34, 0x0C, 0x38, 0x27, 0xB2, 0x11, 0x5F, 0xAD, 0xA3, 0xF5, 0x59, 0x26, 0x25, 0x5F, 0x1B, 0xC9, 0x75, 0x55, 0xAC, 0xFB, 0x83, 0x04, 0x8E, 0x6F, 0xD1, 0xB6, 0x84, 0xF6, 0x3D, 0xD5, 0xB1, 0x67, 0x53, 0x10, 0x6F, 0xB2, 0x3D, 0x8F, 0x8C, 0x8E, 0xB5, 0x84, 0xBF, 0x16, 0x30, 0x46, 0x0B, 0xB5, 0x79, 0x23, 0xE0, 0x7D, 0x4E, 0xCF, 0xF8, 0x18, 0x5A, 0x23, 0xF1, 0x01, 0xFC, 0xE1, 0x34, 0x23, 0xF9, 0xCF, 0xA8, 0x6D, 0xFF, 0x43, 0xF6, 0x19, 0xDB, 0x76, 0x83, 0xFC, 0x11, 0xB0, 0x83, 0xA2, 0x62, 0xB7, 0xC3, 0xF7, 0x27, 0xC0, 0xB6, 0xC3, 0x8E, 0xE4, 0x1D, 0xC0, 0x1A, 0x47, 0x8C, 0x7D, 0x16, 0xB0, 0x0F, 0xC9, 0xF5, 0xF3, 0x20, 0x75, 0x1C, 0xDA, 0x1D, 0x30, 0xC7, 0x41, 0x7C, 0x0E, 0x1A, 0xC6, 0xF2, 0x17, 0x01, 0x8F, 0x41, 0x5A, 0xC8, 0xE6, 0x4B, 0xE4, 0xEA, 0x94, 0xCD, 0x9F, 0xB0, 0xC9, 0x51, 0x58, 0x2D, 0xCB, 0x58, 0x95, 0xC2, 0x9A, 0x02, 0x2B, 0x4C, 0xA4, 0x6A, 0x38, 0xDA, 0xA6, 0x1F, 0x6B, 0xAE, 0x8B, 0xE4, 0x5E, 0xAA, 0x2F, 0xEE, 0xB7, 0x7C, 0x1E, 0x26, 0xF2, 0xEB, 0x96, 0x8F, 0xBD, 0x54, 0xEB, 0x28, 0xC7, 0xDC, 0xCB, 0xFE, 0x90, 0xCE, 0x83, 0x64, 0x3C, 0xD1, 0xF9, 0x0C, 0xC9, 0x64, 0x57, 0xEE, 0xB8, 0x2E, 0xC2, 0xBA, 0x41, 0xAE, 0x70, 0xA9, 0xF1, 0x44, 0xE3, 0x65, 0x99, 0xE3, 0xE3, 0x25, 0xD9, 0x07, 0x21, 0xFB, 0xDD, 0xAD, 0xF2, 0x58, 0x15, 0xF2, 0xF9, 0x96, 0xC8, 0xB7, 0x87, 0xBC, 0x5F, 0x17, 0x1E, 0x57, 0x47, 0xF2, 0xDD, 0x1B, 0x0F, 0xEB, 0x22, 0xF2, 0x9A, 0x48, 0x7E, 0xB2, 0xCB, 0xDC, 0x63, 0x45, 0xBE, 0x23, 0x92, 0x97, 0x3C, 0xBD, 0xA5, 0x93, 0xC8, 0x77, 0x46, 0xF2, 0x94, 0x4D, 0x47, 0x94, 0x8B, 0x7C, 0x57, 0x24, 0x37, 0x78, 0xF8, 0xE4, 0xAE, 0x92, 0xCF, 0xDD, 0x3C, 0xB7, 0x3E, 0x4B, 0xE4, 0x7B, 0xC2, 0x78, 0x3F, 0x30, 0x53, 0xE4, 0xB5, 0xAC, 0xDF, 0x20, 0xF2, 0xBD, 0xAC, 0xEF, 0x29, 0xF2, 0x7D, 0xAC, 0xDF, 0x2E, 0xF2, 0x3A, 0xD6, 0x37, 0x93, 0x78, 0xF7, 0x47, 0xF2, 0xB6, 0xFD, 0x07, 0xF6, 0x92, 0x7A, 0x1E, 0x08, 0xF9, 0x40, 0x25, 0xF2, 0x7A, 0xB2, 0xEF, 0x99, 0x92, 0x1F, 0x0C, 0xD3, 0xB7, 0xBF, 0x87, 0x70, 0x0E, 0x28, 0xF2, 0xC3, 0x21, 0x1F, 0xA4, 0x45, 0x7E, 0x24, 0xE4, 0x13, 0x10, 0x89, 0xF7, 0x68, 0x24, 0xBF, 0xB6, 0x69, 0x70, 0x0F, 0xC9, 0xE7, 0xB1, 0x38, 0xBF, 0x5E, 0x49, 0xFE, 0x1F, 0x0F, 0x79, 0x4E, 0x5E, 0xE4, 0x27, 0xE2, 0x7C, 0x4D, 0x52, 0x7E, 0x32, 0x4C, 0xC4, 0xF3, 0xD3, 0x22, 0x3F, 0x45, 0x7A, 0x9B, 0x92, 0x9F, 0x0E, 0x53, 0xFB, 0x51, 0x92, 0x37, 0x84, 0x7C, 0xCE, 0xD0, 0x36, 0x1A, 0x0B, 0x74, 0x5E, 0xF8, 0x4C, 0x98, 0xCA, 0xE5, 0xD9, 0x38, 0xB7, 0x26, 0xFD, 0x24, 0xD7, 0xE7, 0x22, 0xB9, 0xBE, 0x6A, 0xFB, 0x7C, 0x1C, 0x7B, 0xFF, 0xA4, 0xBC, 0x31, 0x4C, 0x1F, 0x2B, 0x2F, 0x90, 0x7E, 0xFF, 0x94, 0xBF, 0x17, 0x99, 0xEB, 0x5E, 0x22, 0xBF, 0x14, 0xCB, 0x03, 0xFA, 0x88, 0xFC, 0x72, 0x5C, 0xFB, 0xA6, 0x6C, 0x89, 0xF7, 0x4A, 0xC8, 0x1B, 0xB7, 0xE8, 0x5F, 0xA5, 0xDA, 0xDE, 0x5D, 0x99, 0x3C, 0x77, 0xDC, 0x14, 0xC9, 0xBF, 0x6D, 0x5A, 0xD4, 0x55, 0xE4, 0xD7, 0x62, 0x7F, 0xA3, 0x7B, 0x8B, 0xFC, 0x7A, 0x3C, 0xD6, 0x56, 0x77, 0x16, 0x7F, 0x6F, 0x84, 0x7C, 0x30, 0x95, 0xFC, 0xDE, 0xE4, 0x7C, 0x8C, 0xC8, 0x6F, 0xB1, 0x1C, 0x88, 0xFC, 0x36, 0xCB, 0x4E, 0xE4, 0x77, 0xC2, 0x44, 0xF2, 0xDC, 0x99, 0xE4, 0x2A, 0x1A, 0x8B, 0x4A, 0xDE, 0x1C, 0xA6, 0xB6, 0xC1, 0xF8, 0x58, 0x1F, 0xF2, 0xB9, 0xBF, 0xC4, 0x7F, 0x17, 0x37, 0x5C, 0x24, 0xBF, 0xAD, 0x91, 0xBC, 0x2A, 0xBB, 0x6E, 0xB2, 0x9E, 0xF7, 0x68, 0xCE, 0xE3, 0xFB, 0x27, 0xB3, 0x8F, 0x8C, 0x24, 0x3A, 0xEF, 0xA3, 0xEB, 0x07, 0xEA, 0x9F, 0x02, 0x1C, 0x1B, 0x3A, 0x47, 0x5B, 0x56, 0x80, 0x7D, 0x8A, 0xDC, 0xC7, 0xD9, 0x13, 0x21, 0x21, 0xF6, 0x13, 0x74, 0x4E, 0x39, 0x1C, 0xC7, 0x52, 0x91, 0xCF, 0x54, 0x32, 0x5D, 0x0F, 0x9C, 0xE3, 0xC9, 0x63, 0x3D, 0x79, 0x82, 0x27, 0xCF, 0xF1, 0xE4, 0x2B, 0x3D, 0x79, 0x91, 0x27, 0x6F, 0x55, 0x32, 0x9D, 0x83, 0xEC, 0x54, 0x32, 0x9D, 0x53, 0x7C, 0xAD, 0x64, 0x3A, 0x4F, 0xF8, 0x59, 0xC9, 0x74, 0x1E, 0xF0, 0x87, 0xE7, 0xCF, 0x9A, 0x74, 0x79, 0x5F, 0x4F, 0xAE, 0xEF, 0xC9, 0x4D, 0x3D, 0xB9, 0x95, 0x27, 0x77, 0xF2, 0xE4, 0xAE, 0x9E, 0xDC, 0xC3, 0x93, 0x07, 0x79, 0xF2, 0x10, 0x4F, 0xCE, 0xF3, 0xE4, 0x32, 0x4F, 0xBE, 0x40, 0xC9, 0x74, 0x0E, 0xF1, 0xB0, 0x92, 0xE9, 0x9C, 0xE1, 0x09, 0x93, 0xCE, 0xC7, 0x06, 0x25, 0xD3, 0x39, 0xC3, 0x46, 0x4F, 0xFF, 0xB2, 0xA7, 0xDF, 0xE4, 0xE9, 0xDF, 0xF4, 0xF4, 0xEF, 0x78, 0xF9, 0xBC, 0xA7, 0x64, 0x3A, 0xCF, 0xF8, 0xCC, 0x93, 0x83, 0x20, 0x25, 0xD3, 0x31, 0x3F, 0xCB, 0x93, 0x9B, 0x7A, 0x72, 0x33, 0x4F, 0xEE, 0x12, 0xA4, 0xC7, 0x3B, 0xCE, 0x93, 0x17, 0x78, 0xF2, 0xF5, 0x9E, 0x7C, 0xB3, 0x27, 0xAF, 0xF5, 0xE4, 0xF5, 0x4A, 0xA6, 0x73, 0x8A, 0xA7, 0x94, 0x4C, 0xBF, 0xDF, 0x78, 0xF2, 0x3F, 0x9E, 0x4C, 0x73, 0xBC, 0x5A, 0x6E, 0x6E, 0xD3, 0xFB, 0xA7, 0xC8, 0xA6, 0xF7, 0x4F, 0xB1, 0x4D, 0xE7, 0x77, 0x92, 0x4D, 0xE7, 0xB7, 0xC2, 0xD3, 0x4F, 0xF5, 0xF4, 0xE7, 0x79, 0xFA, 0x0B, 0x3D, 0xFD, 0x45, 0x36, 0xBD, 0xBE, 0x79, 0x36, 0xBD, 0x3F, 0x16, 0x78, 0xF2, 0x1D, 0x36, 0x9D, 0xEF, 0xBB, 0x3C, 0x79, 0xA3, 0x27, 0xBF, 0xE8, 0xC9, 0x9F, 0x78, 0xF1, 0x3E, 0xF5, 0xE4, 0xE3, 0x5C, 0xBA, 0xDC, 0xC7, 0x93, 0x07, 0x79, 0xF2, 0x3B, 0x9E, 0xFC, 0xA9, 0x27, 0xFF, 0xAA, 0x64, 0x3A, 0x5F, 0xB0, 0x61, 0xBA, 0xBE, 0xAE, 0x27, 0xD7, 0xF3, 0xE4, 0xFA, 0x9E, 0x7C, 0x88, 0x27, 0x1F, 0xEA, 0xC9, 0xAD, 0x3C, 0xB9, 0xAB, 0x27, 0x1F, 0xE7, 0xC9, 0xC7, 0x7B, 0xF2, 0x49, 0x9E, 0x3C, 0xC4, 0x93, 0x87, 0x7A, 0xF2, 0x39, 0x9E, 0x9C, 0xEB, 0xC9, 0xA3, 0x3D, 0xB9, 0xC2, 0x93, 0x2B, 0x3D, 0x79, 0xB2, 0x27, 0x5F, 0xE2, 0xC9, 0x73, 0x3C, 0x79, 0xAE, 0x27, 0x2F, 0xF5, 0xE4, 0x1B, 0x3C, 0x79, 0x19, 0xE4, 0x1E, 0x98, 0x73, 0x38, 0x1D, 0xF3, 0x0A, 0x33, 0x30, 0x47, 0x71, 0x06, 0xB0, 0xEC, 0xE8, 0xE8, 0x32, 0x1C, 0xB2, 0xD8, 0x9E, 0x85, 0x39, 0x07, 0xB1, 0x3D, 0x1B, 0x58, 0x36, 0xEE, 0x9D, 0x9E, 0x1D, 0xCF, 0x9F, 0x84, 0xBC, 0x5F, 0xC4, 0xB1, 0x68, 0x34, 0xDA, 0xD3, 0xF1, 0x6F, 0x0C, 0xF0, 0x4B, 0x22, 0x9B, 0x5A, 0xB8, 0x4F, 0x9A, 0x0B, 0x3C, 0x1B, 0xF7, 0x54, 0xF3, 0x95, 0x8F, 0x71, 0xF0, 0x51, 0xA0, 0x7C, 0x8C, 0x07, 0x2E, 0x3E, 0x8A, 0x80, 0x15, 0xC2, 0xC7, 0x58, 0x60, 0xE2, 0xA3, 0x18, 0x3E, 0x26, 0x2A, 0x1F, 0x25, 0xC0, 0xC5, 0x47, 0x29, 0xB0, 0x5C, 0xF8, 0x98, 0x00, 0x4C, 0xEC, 0xCB, 0x70, 0xDC, 0xEC, 0x1D, 0x31, 0x47, 0xF3, 0x20, 0xE5, 0x98, 0x0B, 0xCA, 0xC1, 0x1C, 0x89, 0xD4, 0x48, 0xC7, 0xFC, 0x0A, 0xE8, 0x67, 0xA0, 0x6D, 0x25, 0xB0, 0x7B, 0xA3, 0x58, 0x74, 0xEE, 0x30, 0x19, 0xFE, 0x2A, 0xE3, 0x39, 0x0B, 0x17, 0x63, 0x53, 0x80, 0xFF, 0x16, 0xC5, 0x9E, 0x86, 0x63, 0xFB, 0x1F, 0x91, 0x8E, 0xF0, 0xA9, 0xB8, 0xCF, 0x4C, 0xC7, 0xF9, 0xA9, 0x2A, 0xA7, 0xE9, 0x38, 0x76, 0x4B, 0x4E, 0xE7, 0x79, 0x39, 0x15, 0xA8, 0x9C, 0xCE, 0x87, 0x5E, 0x72, 0x9A, 0x01, 0x4C, 0x72, 0xBA, 0x00, 0xFE, 0x08, 0xFF, 0x3D, 0x8A, 0x23, 0xF1, 0xE8, 0xF7, 0x97, 0xC8, 0x3F, 0xD9, 0x5C, 0x88, 0x1C, 0x43, 0xD8, 0xEB, 0x5C, 0x66, 0xE2, 0xBC, 0x41, 0xFC, 0xCD, 0x02, 0x46, 0x73, 0x79, 0xB7, 0x03, 0xBB, 0x08, 0x3E, 0x66, 0xA1, 0xCE, 0xD9, 0xAA, 0x4E, 0xD2, 0x5D, 0x1C, 0x2D, 0xB3, 0x11, 0x97, 0xD6, 0xFF, 0x8E, 0x4E, 0xFC, 0x68, 0x7D, 0x36, 0xFA, 0x64, 0x0E, 0x6A, 0xA3, 0xFC, 0xE6, 0xC2, 0x8E, 0x7E, 0x7F, 0x8D, 0xDA, 0x5F, 0x1A, 0xFD, 0xCE, 0x87, 0x3F, 0xD2, 0x5F, 0x06, 0xFD, 0x65, 0x2A, 0xC7, 0xCB, 0x71, 0x2E, 0xB3, 0x0E, 0xF9, 0x5C, 0x01, 0xAC, 0x1F, 0x72, 0x20, 0x79, 0x5E, 0xB4, 0x5C, 0x8A, 0xB6, 0xF3, 0x14, 0x7F, 0x57, 0x63, 0x6E, 0x4B, 0xF8, 0x5B, 0x08, 0x2C, 0x1B, 0xF7, 0xF5, 0x17, 0x62, 0x7D, 0x91, 0xCA, 0x71, 0x31, 0xFC, 0x2C, 0x46, 0x8E, 0x4B, 0xE8, 0xFA, 0x58, 0xE5, 0x78, 0x1D, 0xF4, 0xD7, 0xA9, 0x1C, 0xAF, 0xC7, 0xF9, 0x94, 0xE4, 0x78, 0x03, 0xB0, 0xA5, 0xCA, 0x66, 0x19, 0xCE, 0xC1, 0xC4, 0xE6, 0x46, 0x60, 0x34, 0xB7, 0xB6, 0x1A, 0xD8, 0x4D, 0x68, 0x7B, 0x23, 0x6A, 0x23, 0xF9, 0x9A, 0x68, 0x59, 0x82, 0x98, 0xD7, 0x28, 0x7F, 0xB7, 0x21, 0xA6, 0x6C, 0x0B, 0xAB, 0x80, 0x2D, 0x57, 0x36, 0xB7, 0x23, 0xE6, 0x2C, 0xD8, 0xAC, 0x86, 0xDD, 0xED, 0xD8, 0xCE, 0x68, 0xBE, 0xED, 0x4E, 0xCC, 0xC9, 0xAD, 0x8E, 0xB9, 0x08, 0x63, 0x79, 0x0D, 0xE6, 0x87, 0xF5, 0xB6, 0x77, 0x97, 0x97, 0xFF, 0xDD, 0xC0, 0xBA, 0x61, 0x5C, 0xAC, 0x55, 0xE3, 0x82, 0x74, 0xF7, 0xD0, 0x39, 0x00, 0xF2, 0xBE, 0x47, 0xF9, 0xB9, 0xD7, 0xCB, 0xFB, 0x3E, 0x60, 0x3A, 0xEF, 0x75, 0x5E, 0xDE, 0xF7, 0xC3, 0x6E, 0x9D, 0xB2, 0x79, 0x18, 0x63, 0x57, 0xE4, 0x47, 0x30, 0x4E, 0xC4, 0xEF, 0xA3, 0xC0, 0x96, 0x2B, 0x3F, 0x8F, 0xA1, 0xDD, 0xA3, 0xAA, 0xDD, 0xE3, 0x5E, 0xAC, 0x27, 0x60, 0xF7, 0x78, 0xCC, 0x51, 0x56, 0x3C, 0x97, 0xF8, 0x14, 0xE6, 0x17, 0x73, 0xA0, 0xEF, 0x81, 0xB9, 0xCB, 0xA7, 0xA1, 0x13, 0x2E, 0x37, 0x80, 0xCB, 0xFB, 0xC1, 0xE5, 0x06, 0xD8, 0x08, 0x97, 0x34, 0x7E, 0x84, 0x93, 0xB5, 0x2A, 0x87, 0x67, 0x3D, 0x4E, 0x9E, 0x03, 0xA6, 0x39, 0x79, 0xDE, 0xCB, 0x73, 0x23, 0xEC, 0x9E, 0x57, 0x36, 0x2F, 0x7A, 0x7E, 0x5E, 0x02, 0xA6, 0xFD, 0xBC, 0xEC, 0xF9, 0x79, 0x05, 0x76, 0x2F, 0x2B, 0x9B, 0x4D, 0x9E, 0x9F, 0xD7, 0x80, 0x69, 0x3F, 0xAF, 0x7B, 0x7E, 0xDE, 0x80, 0xDD, 0xEB, 0x8A, 0x8F, 0x37, 0x31, 0xAF, 0xFA, 0x06, 0xF8, 0x78, 0xD3, 0x1B, 0x5B, 0x62, 0xF7, 0x16, 0xE6, 0x63, 0x5F, 0x81, 0xDD, 0x5B, 0x7B, 0xB1, 0x7B, 0x1B, 0xF3, 0xB8, 0x1B, 0x61, 0xF7, 0xB6, 0x67, 0x47, 0xFC, 0x5E, 0x0B, 0x7E, 0xAF, 0x55, 0xB9, 0xBE, 0x83, 0x7A, 0x24, 0xD7, 0xCD, 0xC0, 0xAA, 0xD4, 0xF6, 0xBF, 0xD9, 0xDB, 0xFE, 0x97, 0xC4, 0x73, 0x89, 0x36, 0xF6, 0xBB, 0x25, 0x9E, 0x5B, 0x73, 0xF1, 0xFA, 0x44, 0xCC, 0xFD, 0x66, 0xE3, 0x59, 0x1A, 0xD9, 0x6F, 0xBC, 0x87, 0x76, 0xEF, 0x61, 0xBF, 0xB1, 0x8D, 0xE6, 0xB2, 0xD4, 0x7E, 0xE3, 0x43, 0xE8, 0x3F, 0x54, 0x79, 0x7D, 0x84, 0xEB, 0x2E, 0xD9, 0xA6, 0x3E, 0x06, 0x56, 0x88, 0xED, 0x88, 0xE4, 0xF7, 0xA3, 0x65, 0x1B, 0xDA, 0xBE, 0xAF, 0xB8, 0xD8, 0x85, 0xB1, 0x46, 0xC7, 0xB0, 0xA2, 0x3A, 0xD5, 0xE3, 0x39, 0xE1, 0xCF, 0x81, 0xE7, 0x60, 0x0E, 0xB0, 0x3D, 0xF2, 0xA5, 0x5C, 0x77, 0x42, 0x2F, 0xB1, 0xBF, 0x41, 0x6C, 0x91, 0xBF, 0xC5, 0xF6, 0x43, 0x32, 0xF9, 0xFA, 0x0E, 0xD7, 0x80, 0xB4, 0x0D, 0xD0, 0xF5, 0xE0, 0xF7, 0xB8, 0x06, 0xFC, 0x06, 0xB6, 0xE4, 0xF3, 0x7B, 0xD8, 0x49, 0x4E, 0xBF, 0x78, 0x39, 0xFD, 0x18, 0x73, 0xC1, 0x78, 0xA6, 0x9C, 0x7E, 0x86, 0x5E, 0x72, 0xF8, 0xD3, 0xCB, 0xE9, 0x2F, 0x95, 0xD3, 0x8F, 0xF1, 0xB1, 0x85, 0xAF, 0x3B, 0x29, 0x27, 0x3A, 0x27, 0xFF, 0x07, 0xD7, 0x9D, 0x7F, 0xC2, 0x96, 0x7C, 0xFE, 0x03, 0x3B, 0xE2, 0xFC, 0x03, 0xF0, 0xF6, 0x81, 0xF2, 0xF9, 0x2F, 0x62, 0xC8, 0x58, 0xA0, 0x79, 0x8A, 0x7F, 0xD5, 0x58, 0xD8, 0x0A, 0x4C, 0xF7, 0xE9, 0x36, 0xF8, 0x9B, 0x0F, 0x79, 0xBE, 0xF2, 0x67, 0x0C, 0xE7, 0x28, 0xFE, 0x02, 0xC3, 0x58, 0x95, 0x3A, 0xFE, 0x05, 0x26, 0xFD, 0xF8, 0x77, 0xA9, 0x3A, 0xFE, 0x3B, 0xB3, 0xF7, 0x73, 0x92, 0xD0, 0xB0, 0x5E, 0x8E, 0x5F, 0x59, 0x86, 0x31, 0x89, 0x5D, 0xCD, 0xF0, 0xF9, 0xCD, 0xC5, 0x88, 0x4D, 0xF7, 0x23, 0xC8, 0x86, 0x70, 0xC9, 0xA7, 0xA6, 0x61, 0x9C, 0xE6, 0xE5, 0xE7, 0x01, 0xDB, 0xC7, 0x30, 0xBE, 0x34, 0xBE, 0x4F, 0x52, 0x8D, 0xEF, 0xAD, 0x19, 0x9E, 0x8F, 0x3D, 0x0C, 0xE3, 0x8F, 0x6C, 0x28, 0x7F, 0xBA, 0x8E, 0xAF, 0xA5, 0x62, 0xEE, 0x87, 0x67, 0xBA, 0x24, 0xE6, 0xFE, 0x86, 0x8F, 0x01, 0xFB, 0xA9, 0x98, 0x75, 0x0C, 0xE3, 0xB5, 0x55, 0xCC, 0xBA, 0x86, 0xF1, 0xE5, 0x2A, 0x66, 0x3D, 0x15, 0xB3, 0x1F, 0x6C, 0x28, 0x26, 0xCD, 0x15, 0xD4, 0xC3, 0x7A, 0x7D, 0x93, 0xDA, 0xC6, 0x0E, 0x30, 0xCC, 0x1F, 0xFD, 0xD2, 0x36, 0xD6, 0x20, 0xFA, 0x6D, 0x68, 0x52, 0xDB, 0x58, 0x23, 0xE8, 0x1B, 0xA9, 0x7C, 0x0F, 0x32, 0x3C, 0xD7, 0x20, 0xDB, 0x58, 0x13, 0xC3, 0x18, 0xDD, 0x87, 0xA0, 0x6D, 0x8C, 0xE4, 0x03, 0x69, 0xEE, 0x17, 0x6D, 0x0F, 0x44, 0xDC, 0xA6, 0x2A, 0xEE, 0xC1, 0xD0, 0x1D, 0x8C, 0xB8, 0xCD, 0xE9, 0xFE, 0xB7, 0x8A, 0xDB, 0x12, 0xFA, 0x96, 0x2A, 0xEE, 0x21, 0x86, 0xE7, 0x34, 0x24, 0xEE, 0xA1, 0x86, 0x31, 0xD9, 0xB6, 0x49, 0x6E, 0x46, 0xF7, 0x03, 0xD0, 0xB6, 0x19, 0xE2, 0xB6, 0x52, 0x71, 0x5B, 0x43, 0xD7, 0x1A, 0x71, 0xDB, 0x44, 0xBF, 0x6D, 0x55, 0xDC, 0xC3, 0xA1, 0x3F, 0x5C, 0xC5, 0x3D, 0xC2, 0xF0, 0xDC, 0x89, 0xC4, 0x3D, 0xD2, 0x30, 0xB6, 0x1C, 0xC7, 0xE9, 0x76, 0x26, 0x75, 0x9C, 0x26, 0xDD, 0x51, 0xD1, 0xD2, 0x0E, 0x7E, 0x68, 0x5D, 0xCE, 0xBF, 0x8F, 0x36, 0x3C, 0x07, 0xA5, 0xAF, 0x03, 0xDA, 0x1B, 0xC6, 0xC5, 0x77, 0x07, 0xC3, 0xD8, 0x52, 0xE4, 0x23, 0x7E, 0xE8, 0x57, 0xCE, 0x3F, 0x3B, 0x1A, 0xCE, 0x81, 0x72, 0xEC, 0x80, 0x78, 0x14, 0x9B, 0xF0, 0xC3, 0xA2, 0xA5, 0x0D, 0xDA, 0x1C, 0xA6, 0x6A, 0x38, 0x06, 0x7D, 0x26, 0xF2, 0xB1, 0xA8, 0x49, 0xC6, 0x57, 0x67, 0xC3, 0x36, 0xC7, 0xAA, 0xF1, 0xD5, 0xC5, 0x30, 0xDE, 0x0D, 0xDB, 0x1D, 0xCD, 0x17, 0x75, 0x51, 0x3E, 0x8E, 0xF3, 0x7C, 0x1E, 0xEF, 0xF9, 0xEC, 0x66, 0xD8, 0x86, 0xF0, 0xCB, 0x81, 0x75, 0x37, 0x8C, 0x8B, 0x4F, 0x9A, 0x73, 0xEA, 0xAE, 0x7C, 0x64, 0x63, 0xFB, 0x13, 0xB9, 0xA7, 0xE1, 0x79, 0x2A, 0xF1, 0xD9, 0xCB, 0xB0, 0x4D, 0x4F, 0xC5, 0x6B, 0xEF, 0x0C, 0xBC, 0xF6, 0x31, 0x8C, 0x4B, 0xBB, 0x13, 0x0C, 0xB7, 0xED, 0xA3, 0x62, 0xF5, 0xC5, 0x78, 0x92, 0x63, 0x72, 0x8E, 0x61, 0x6C, 0xA9, 0xDA, 0xF7, 0xF4, 0x33, 0xDC, 0x96, 0x74, 0xB2, 0x7D, 0xF6, 0x37, 0x8C, 0x57, 0x29, 0xBB, 0x01, 0x86, 0xF1, 0xC2, 0x44, 0x8A, 0xBF, 0x81, 0x86, 0xF1, 0x42, 0xB5, 0x6D, 0x9F, 0x68, 0x18, 0x97, 0x7D, 0x19, 0xCD, 0xB1, 0x9D, 0xA8, 0x72, 0x1A, 0x6C, 0xF8, 0x5A, 0xE6, 0x4E, 0x8C, 0x87, 0x93, 0x0C, 0x63, 0x39, 0x18, 0x6B, 0xC3, 0xD4, 0x58, 0x23, 0xDD, 0xD0, 0x68, 0x39, 0x05, 0xFD, 0x3D, 0x14, 0xE3, 0x7D, 0x08, 0xEE, 0xBD, 0xD0, 0xF8, 0x19, 0x06, 0xDD, 0x29, 0x2A, 0xC6, 0xA9, 0x88, 0x21, 0x39, 0x0D, 0x37, 0x8C, 0x55, 0xA9, 0xDC, 0x4F, 0x33, 0x8C, 0xCB, 0xB5, 0x24, 0xF9, 0x3C, 0xCD, 0xF3, 0x39, 0x4C, 0xF9, 0x1C, 0x61, 0x78, 0x3E, 0x50, 0xF8, 0x18, 0x69, 0x18, 0xAB, 0xC2, 0xB1, 0x85, 0x9E, 0x01, 0x38, 0x5D, 0xED, 0x97, 0x0B, 0x55, 0x5F, 0x9D, 0x61, 0x58, 0x27, 0xFD, 0x70, 0xA6, 0xE1, 0xF6, 0x67, 0x28, 0xFF, 0xA3, 0x0C, 0xCF, 0x47, 0x8A, 0xFF, 0xB3, 0x0C, 0xDB, 0x8D, 0x52, 0xD8, 0xD9, 0x86, 0xF1, 0x2A, 0x75, 0x9E, 0x75, 0x0E, 0xC6, 0xDA, 0xD9, 0xCA, 0x57, 0xAE, 0xE1, 0xB9, 0x4E, 0x69, 0x37, 0xDA, 0xB0, 0x5D, 0x2E, 0xF8, 0xA3, 0x79, 0xCE, 0xD1, 0xCA, 0x7E, 0x0C, 0xF8, 0x12, 0xFB, 0x7C, 0xC3, 0x58, 0x8E, 0xE2, 0x6B, 0xAC, 0x61, 0xBC, 0x50, 0xD9, 0x15, 0x18, 0xC6, 0x35, 0x07, 0xE3, 0xF6, 0xC2, 0xC1, 0x78, 0xC3, 0x3A, 0xC9, 0xBB, 0xD0, 0x70, 0xFB, 0xF1, 0x2A, 0x8F, 0x22, 0x8F, 0x83, 0x09, 0x86, 0xED, 0x8A, 0x14, 0x36, 0xD1, 0x30, 0xAE, 0x39, 0x28, 0x06, 0x07, 0x13, 0x95, 0xAF, 0x12, 0x8F, 0x83, 0x52, 0xC3, 0x76, 0x25, 0xE0, 0x80, 0xE6, 0x72, 0x4B, 0x95, 0xFD, 0x24, 0x8F, 0x83, 0x73, 0x0D, 0x63, 0x7A, 0xCC, 0x94, 0x1B, 0xC6, 0x35, 0x07, 0x15, 0x86, 0x71, 0xCD, 0x41, 0xE5, 0x5E, 0x38, 0x98, 0x6C, 0x58, 0x27, 0x79, 0x4F, 0x31, 0xDC, 0x7E, 0xB2, 0xCA, 0x63, 0xAA, 0xC7, 0xC1, 0x34, 0xC3, 0x76, 0x53, 0x15, 0x36, 0xDD, 0x30, 0xAE, 0x39, 0x38, 0x0F, 0x1C, 0x4C, 0x57, 0xBE, 0xCE, 0xF7, 0x38, 0x98, 0x61, 0xD8, 0xEE, 0x7C, 0x70, 0x40, 0xF3, 0xD7, 0x33, 0x94, 0xFD, 0x85, 0x1E, 0x07, 0x33, 0x0D, 0x63, 0x7A, 0x9B, 0xA7, 0x7B, 0xC0, 0x33, 0x3D, 0x0E, 0x2E, 0x32, 0x8C, 0x6B, 0x0E, 0x2E, 0xDE, 0x0B, 0x07, 0xB3, 0x0D, 0xEB, 0x24, 0xEF, 0x4B, 0x0C, 0xB7, 0x9F, 0xAD, 0xF2, 0x98, 0xE3, 0x71, 0x30, 0xD7, 0xB0, 0xDD, 0x1C, 0x85, 0xCD, 0x33, 0x8C, 0x6B, 0x0E, 0x2E, 0x05, 0x07, 0xF3, 0x94, 0xAF, 0xF9, 0x1E, 0x07, 0x97, 0x19, 0xB6, 0x9B, 0x0F, 0x0E, 0x68, 0xCE, 0xFE, 0x32, 0xB5, 0xAF, 0xBD, 0x3C, 0xC3, 0xBE, 0xF6, 0x0A, 0xC3, 0xB8, 0xC4, 0xB9, 0xD2, 0x30, 0xA6, 0xAF, 0x6D, 0xAE, 0xF2, 0x8E, 0x0D, 0x0B, 0x0C, 0xDB, 0x5D, 0xA5, 0x72, 0xB9, 0xC6, 0xF0, 0x3D, 0x06, 0xB9, 0x46, 0x5C, 0x82, 0x67, 0x12, 0x72, 0xA0, 0x93, 0x6B, 0xC4, 0x6B, 0x0D, 0xEB, 0xE4, 0x1C, 0xF9, 0x3A, 0xC3, 0xE7, 0xC8, 0x0B, 0x0C, 0x5F, 0xC3, 0x90, 0x4C, 0x36, 0xFA, 0x5A, 0x27, 0x9E, 0x5F, 0xCF, 0x90, 0xFB, 0x52, 0xC3, 0xB8, 0xE4, 0x7E, 0x83, 0x61, 0x4C, 0xE7, 0xBE, 0xCC, 0xCB, 0x7D, 0xB9, 0x61, 0xBB, 0x65, 0x2A, 0xF7, 0x1B, 0x0D, 0xDF, 0xFF, 0x90, 0xDC, 0x6F, 0x52, 0xB9, 0xDF, 0xA8, 0x72, 0x5F, 0x61, 0x58, 0x27, 0xB9, 0xDF, 0x6C, 0xF8, 0xFA, 0x6B, 0x39, 0x72, 0x27, 0x79, 0x45, 0x86, 0xDC, 0x6F, 0xC9, 0x90, 0xFB, 0xAD, 0x86, 0x71, 0xC9, 0x7D, 0xA5, 0x61, 0x4C, 0xE7, 0x7E, 0x9B, 0x97, 0xFB, 0x2A, 0xC3, 0x76, 0xB7, 0xA9, 0xDC, 0x6F, 0x37, 0x7C, 0xAF, 0x46, 0x72, 0x5F, 0xAD, 0x72, 0xBF, 0x5D, 0xE5, 0xBE, 0xC6, 0xB0, 0x4E, 0x72, 0xBF, 0xC3, 0xF0, 0x35, 0xE6, 0x2A, 0xE4, 0x4E, 0xF2, 0x9A, 0x0C, 0xB9, 0xDF, 0x99, 0x21, 0xF7, 0xBB, 0x0C, 0xE3, 0x92, 0xFB, 0xDD, 0x86, 0x31, 0x9D, 0xFB, 0x3D, 0x5E, 0xEE, 0x6B, 0x0D, 0xDB, 0xDD, 0xA3, 0x72, 0xBF, 0xD7, 0xF0, 0x7D, 0x25, 0xC9, 0xFD, 0x3E, 0x95, 0xFB, 0xBD, 0x2A, 0xF7, 0x75, 0x86, 0x75, 0x92, 0xFB, 0xFD, 0x86, 0xAF, 0xA3, 0xD7, 0x22, 0x77, 0x92, 0xD7, 0x99, 0xF4, 0xEB, 0xDE, 0xB6, 0x38, 0xCE, 0xB5, 0x55, 0xF1, 0x1E, 0xF0, 0x72, 0x5A, 0x6F, 0x18, 0x93, 0xE3, 0x39, 0xE9, 0xD6, 0x9B, 0xF4, 0x73, 0x4D, 0x3A, 0x1F, 0xFB, 0x5F, 0xD7, 0xBD, 0x92, 0xD3, 0x23, 0x26, 0xFD, 0x5A, 0x8F, 0x9E, 0xA9, 0x79, 0xD4, 0x30, 0x9E, 0xE9, 0x5A, 0xEF, 0x61, 0xE8, 0x25, 0xB7, 0x27, 0x71, 0x3E, 0x43, 0x32, 0xB5, 0x7D, 0x0A, 0xF7, 0xD8, 0xC8, 0x3F, 0xDD, 0xCF, 0x79, 0x1A, 0xF7, 0xD8, 0x9E, 0xC4, 0xB6, 0xFD, 0x34, 0x6C, 0x24, 0xFE, 0x33, 0x18, 0x8B, 0xFA, 0x5A, 0x93, 0xDE, 0x6D, 0x7B, 0x66, 0x2F, 0xF1, 0xE9, 0xFE, 0xDC, 0xB3, 0x2A, 0xFE, 0x0B, 0x2A, 0x3E, 0xB5, 0x7D, 0xD1, 0xF0, 0x3D, 0x3C, 0xF2, 0x4F, 0xD7, 0x96, 0x2F, 0xE1, 0x1E, 0xDE, 0x0B, 0x88, 0x4F, 0xF2, 0x8B, 0x2A, 0xFE, 0x2B, 0x18, 0x4F, 0x3A, 0xFE, 0xAB, 0x86, 0xF1, 0x4C, 0xF1, 0xE9, 0xFE, 0xDF, 0xAB, 0x2A, 0xFE, 0x6B, 0x5E, 0xFC, 0xD7, 0x0D, 0xDF, 0x23, 0x94, 0xF8, 0x6F, 0xE0, 0x1E, 0xE1, 0x6B, 0x88, 0x4F, 0xF2, 0xEB, 0x2A, 0xFE, 0x5B, 0x18, 0x13, 0x3A, 0xFE, 0xDB, 0x86, 0xF1, 0x4C, 0xF1, 0xE9, 0xFE, 0xE2, 0xDB, 0x2A, 0x7E, 0x95, 0x17, 0x7F, 0xB3, 0xE1, 0x7B, 0x90, 0x12, 0x7F, 0x0B, 0xEE, 0x41, 0x56, 0x21, 0x3E, 0xC9, 0x9B, 0x31, 0x56, 0x5A, 0x60, 0xAC, 0xB4, 0x50, 0xFE, 0xDE, 0x85, 0x3F, 0x19, 0x6B, 0x5B, 0x0D, 0x63, 0x32, 0xD6, 0x48, 0xB7, 0xD5, 0xA4, 0x5F, 0x4F, 0x35, 0x87, 0xEF, 0xF7, 0xD4, 0x35, 0xCF, 0xFB, 0xD0, 0xBD, 0x8F, 0x6B, 0x9E, 0x0F, 0xA2, 0xDF, 0x0F, 0xD5, 0x35, 0xCF, 0x47, 0xD0, 0x7F, 0xA4, 0x62, 0x7F, 0x6C, 0xF8, 0xFE, 0xA8, 0xC8, 0xDB, 0x0D, 0xDF, 0x6F, 0x96, 0xEB, 0x94, 0x4F, 0x0C, 0xDB, 0x6C, 0xC7, 0xB5, 0x07, 0xC9, 0xDB, 0xA2, 0xE5, 0x03, 0xF8, 0xDA, 0xA6, 0xDA, 0x7E, 0x61, 0xD2, 0xE7, 0x15, 0xBF, 0x84, 0x6F, 0xD9, 0xF6, 0xBF, 0x32, 0x8C, 0xE9, 0x79, 0xC5, 0xAF, 0x0D, 0xB7, 0xFB, 0x4A, 0xD9, 0x7D, 0x6B, 0x18, 0xFF, 0x46, 0x61, 0xDF, 0x1B, 0xC6, 0xBF, 0x53, 0x3C, 0xFD, 0x60, 0x18, 0xCF, 0x51, 0x31, 0x7F, 0xC4, 0xB5, 0x8A, 0xD8, 0xFC, 0x64, 0xD8, 0xEE, 0x47, 0xCC, 0x05, 0xD0, 0xDC, 0xC0, 0xCF, 0x86, 0x71, 0xD9, 0x97, 0xFC, 0x82, 0x67, 0xC8, 0x72, 0xA0, 0x13, 0x5F, 0xBF, 0x7A, 0xF5, 0xFC, 0xE6, 0xD5, 0xB3, 0xC7, 0x30, 0xA6, 0xEB, 0xF9, 0xDD, 0x70, 0xBB, 0x3D, 0xCA, 0xEE, 0x0F, 0xC3, 0xB8, 0xAE, 0xE7, 0x4F, 0xC3, 0xB8, 0xAE, 0xE7, 0x2F, 0xC3, 0xB8, 0xAE, 0xE7, 0x6F, 0xAF, 0x9E, 0x7F, 0x0C, 0xDB, 0xFD, 0xAD, 0xEA, 0xF9, 0xD7, 0x30, 0x5E, 0x84, 0x67, 0xEC, 0x4C, 0xC0, 0x35, 0x55, 0xE1, 0x59, 0xB7, 0x04, 0xC6, 0xD1, 0x67, 0xD0, 0x91, 0x6F, 0xB2, 0xB3, 0x01, 0xDF, 0x0B, 0xCF, 0xC6, 0x3B, 0x4F, 0x36, 0x50, 0xF3, 0x23, 0x41, 0x7A, 0xED, 0xD5, 0x83, 0xF4, 0xDA, 0x6B, 0x04, 0x8C, 0xE9, 0xDA, 0x6B, 0x06, 0xDC, 0x8E, 0x74, 0x62, 0xB7, 0x4F, 0xC0, 0xB8, 0xAE, 0xBD, 0x56, 0xC0, 0xB8, 0xAE, 0x7D, 0xDF, 0x80, 0xF1, 0xC6, 0x7A, 0xBE, 0x24, 0x48, 0xAF, 0x7D, 0xFF, 0x80, 0xED, 0x08, 0x97, 0xDA, 0x6B, 0x07, 0x8C, 0x4B, 0x5F, 0xD6, 0x09, 0x52, 0x7D, 0x59, 0x5B, 0xD5, 0x53, 0xD7, 0xAB, 0xA7, 0x9E, 0x57, 0x4F, 0xFD, 0x80, 0x31, 0x5D, 0xCF, 0x01, 0x01, 0xB7, 0xAB, 0xAF, 0xEA, 0x39, 0x30, 0x60, 0x5C, 0xD7, 0xD3, 0x20, 0x60, 0x5C, 0xD7, 0xD3, 0x30, 0x60, 0x5C, 0xD7, 0xD3, 0xC8, 0xAB, 0xE7, 0xA0, 0x80, 0xED, 0x1A, 0xA9, 0x7A, 0x1A, 0x07, 0x8C, 0x17, 0xE1, 0xD9, 0xC4, 0x26, 0x01, 0xD7, 0xE4, 0xF7, 0x65, 0x16, 0x74, 0xE4, 0x9B, 0xEC, 0x0E, 0xC6, 0x73, 0x0B, 0xD9, 0x78, 0x47, 0xED, 0x60, 0x55, 0x7B, 0x73, 0xAF, 0xF6, 0x16, 0x5E, 0xED, 0x2D, 0x03, 0xC6, 0x74, 0xED, 0x87, 0x04, 0xDC, 0xAE, 0xA5, 0xAA, 0xFD, 0xD0, 0x80, 0x71, 0x5D, 0x7B, 0xAB, 0x80, 0x71, 0x5D, 0xFB, 0x61, 0x01, 0xE3, 0xAD, 0x55, 0x0E, 0x6D, 0xBC, 0xDA, 0xDB, 0x06, 0x6C, 0xD7, 0x46, 0xD5, 0x7E, 0x78, 0xC0, 0xB8, 0xF4, 0xE5, 0x11, 0xAA, 0x2F, 0x0F, 0x57, 0xBE, 0x8E, 0xF4, 0xEA, 0x39, 0xCA, 0xAB, 0xA7, 0x5D, 0xC0, 0x98, 0xAE, 0xE7, 0xE8, 0x80, 0xDB, 0xB5, 0x53, 0xF5, 0xB4, 0x0F, 0x18, 0xD7, 0xF5, 0x74, 0x08, 0x18, 0xD7, 0xF5, 0x74, 0x0C, 0x18, 0xD7, 0xF5, 0x74, 0xF2, 0xEA, 0x39, 0x26, 0x60, 0xBB, 0x4E, 0xAA, 0x9E, 0x63, 0x03, 0xC6, 0xA5, 0x2F, 0x3B, 0x07, 0x5C, 0x93, 0xDF, 0x97, 0xCD, 0xA0, 0x93, 0xBE, 0xEC, 0x8A, 0x67, 0x4C, 0xB2, 0xF1, 0x4E, 0x61, 0x57, 0xAC, 0xD3, 0x73, 0x25, 0xB2, 0xAF, 0x3F, 0x3E, 0xE0, 0xFD, 0x2F, 0xFD, 0xD2, 0xBE, 0xBE, 0x3B, 0xB5, 0x0F, 0x52, 0xFB, 0xFA, 0x6C, 0xE8, 0xB3, 0x55, 0xCE, 0x3D, 0x03, 0x7E, 0x36, 0x45, 0xF6, 0xED, 0xF4, 0x2C, 0x25, 0x61, 0x32, 0xAF, 0x46, 0x72, 0xB7, 0x68, 0xE9, 0x8E, 0xB6, 0xDD, 0x54, 0xDB, 0xDE, 0x68, 0x9B, 0x9C, 0x77, 0x09, 0xD2, 0x8F, 0x1B, 0x27, 0x40, 0x2F, 0xE7, 0x20, 0x7D, 0x03, 0x3E, 0x07, 0x39, 0x21, 0x48, 0x9D, 0xA7, 0xE4, 0x04, 0x8C, 0xCB, 0xFE, 0xA7, 0x5F, 0xC0, 0xCF, 0xDE, 0x88, 0x8F, 0xFE, 0x5E, 0x8C, 0x01, 0x88, 0x21, 0xF3, 0xE8, 0x03, 0x03, 0x9E, 0x47, 0x27, 0xBB, 0x01, 0x41, 0x6A, 0xBE, 0xFD, 0xC4, 0x80, 0x75, 0x13, 0xEB, 0x64, 0xC5, 0xF2, 0xA0, 0x80, 0x63, 0x91, 0xFF, 0x13, 0x83, 0x54, 0xFB, 0xC1, 0x68, 0x4F, 0xB5, 0xF4, 0x01, 0xA7, 0x84, 0x0D, 0x52, 0x31, 0x4F, 0xF2, 0x72, 0x18, 0xE2, 0xD5, 0x39, 0x54, 0xD5, 0x49, 0xC7, 0xFA, 0x61, 0x01, 0x9F, 0xEB, 0x0C, 0x0D, 0x52, 0xE7, 0x03, 0x27, 0x07, 0x8C, 0x4B, 0x7F, 0x9E, 0x82, 0x67, 0x88, 0x92, 0xF3, 0x32, 0x5E, 0x8C, 0xE1, 0x5E, 0x9D, 0xA7, 0x21, 0x4F, 0xB2, 0x1B, 0xAE, 0xEA, 0x1C, 0x11, 0xB0, 0x4E, 0xEA, 0x1C, 0x19, 0x70, 0x2C, 0xF2, 0x3F, 0x42, 0xD5, 0x79, 0x3A, 0xDA, 0x53, 0x2D, 0x43, 0x50, 0x27, 0x61, 0x23, 0x55, 0xCC, 0x33, 0xBC, 0x1C, 0xCE, 0xF4, 0xEA, 0x1C, 0xE5, 0xD5, 0x79, 0x56, 0xC0, 0xE7, 0x54, 0xA3, 0x54, 0x9D, 0x67, 0x07, 0x8C, 0x4B, 0x9D, 0xE7, 0xE0, 0x59, 0xA8, 0xE4, 0xFC, 0x8B, 0x17, 0x63, 0xB4, 0x57, 0x67, 0x1E, 0xF2, 0x24, 0xBB, 0xD1, 0xAA, 0xCE, 0x31, 0x01, 0xEB, 0xA4, 0xCE, 0xFC, 0x80, 0x63, 0x91, 0xFF, 0x31, 0xAA, 0xCE, 0xB1, 0x68, 0x4F, 0xB5, 0x9C, 0x89, 0x3A, 0x09, 0xCB, 0x57, 0x31, 0x0B, 0xBC, 0x1C, 0xC6, 0x79, 0x75, 0x8E, 0xF7, 0xEA, 0x2C, 0x44, 0x7F, 0x8E, 0x57, 0x75, 0x16, 0x05, 0x8C, 0xCB, 0xB8, 0x9D, 0xE0, 0x8D, 0xDB, 0x89, 0x5E, 0x8C, 0x62, 0x55, 0x27, 0xF9, 0x2C, 0x09, 0xF8, 0x5E, 0x0B, 0xD9, 0x15, 0x2B, 0xBF, 0xA5, 0x01, 0xEB, 0xA8, 0x4E, 0x92, 0xCB, 0x02, 0x8E, 0x45, 0xFE, 0x4B, 0x83, 0x54, 0xFB, 0x49, 0x68, 0x4F, 0xB5, 0x8C, 0x43, 0x9D, 0x84, 0x95, 0xA9, 0x98, 0xE7, 0x7A, 0x39, 0x94, 0x7B, 0x75, 0x56, 0x78, 0x75, 0x56, 0xA2, 0x3F, 0x2B, 0x54, 0x3E, 0x93, 0x03, 0xC6, 0xA5, 0x3F, 0xA7, 0x78, 0xE3, 0x76, 0xAA, 0x17, 0x63, 0x9A, 0x57, 0xE7, 0x74, 0xE4, 0x49, 0x76, 0xD3, 0x94, 0xDF, 0xF3, 0x02, 0xD6, 0x49, 0x9D, 0xE7, 0x07, 0x1C, 0x8B, 0xFC, 0x9F, 0xA7, 0xEA, 0x9C, 0x81, 0xF6, 0x54, 0x4B, 0x39, 0xEA, 0x24, 0xEC, 0x7C, 0x15, 0xF3, 0x02, 0x2F, 0x87, 0x0B, 0xBD, 0x3A, 0x67, 0x7A, 0x75, 0xCE, 0x0A, 0xF8, 0x5C, 0x7C, 0xA6, 0xCA, 0xE7, 0xA2, 0x80, 0x71, 0xA9, 0xF3, 0x62, 0x6F, 0xDC, 0xCE, 0xF6, 0x62, 0x5C, 0xE2, 0xD5, 0x39, 0x07, 0x79, 0x92, 0xDD, 0x25, 0xCA, 0xEF, 0xDC, 0x80, 0x75, 0x52, 0xE7, 0xBC, 0x80, 0x63, 0x91, 0xFF, 0xB9, 0xAA, 0xCE, 0x4B, 0xD1, 0x9E, 0x6A, 0xB9, 0x10, 0x75, 0x12, 0x46, 0xF6, 0xB4, 0xEF, 0xEE, 0x81, 0xFD, 0x6F, 0x0F, 0x95, 0xC3, 0x7C, 0xE4, 0x94, 0x9C, 0xBF, 0x09, 0x18, 0x93, 0x6B, 0x04, 0xD2, 0x5D, 0x16, 0xA4, 0x1F, 0x1B, 0xBA, 0x43, 0xFE, 0x10, 0xE7, 0xEA, 0x1F, 0x2A, 0x9E, 0x2E, 0x47, 0x4D, 0xE2, 0xEF, 0x8A, 0x80, 0x31, 0xF1, 0x47, 0xBA, 0x2B, 0x82, 0xF4, 0xEB, 0x8A, 0x0F, 0x70, 0x0D, 0xD2, 0x10, 0x72, 0x43, 0xE5, 0xEF, 0x4A, 0xEF, 0x78, 0x78, 0x55, 0xC0, 0xD8, 0xF2, 0x44, 0xEA, 0x5E, 0xD4, 0x55, 0x41, 0xFA, 0xBD, 0xA8, 0x06, 0x38, 0xF7, 0x5C, 0xA0, 0x8E, 0x6B, 0x57, 0x23, 0xF7, 0xAB, 0x71, 0x5C, 0x5B, 0x14, 0xFD, 0x2E, 0x56, 0xC7, 0xB5, 0x6B, 0xA0, 0xBF, 0x46, 0x71, 0xB3, 0x24, 0xE0, 0x67, 0x2C, 0xE5, 0xB8, 0x76, 0x5D, 0xC0, 0xD8, 0xB5, 0x01, 0x1F, 0xD7, 0x48, 0x5E, 0x18, 0x2D, 0x8B, 0xD0, 0x76, 0x21, 0x38, 0xBF, 0x5E, 0xC5, 0x5D, 0x0A, 0xDD, 0x52, 0xC4, 0x5D, 0x46, 0xB9, 0xAB, 0xB8, 0x37, 0x42, 0x7F, 0xA3, 0x8A, 0x7B, 0x53, 0xC0, 0xCF, 0x72, 0x4A, 0xDC, 0x15, 0x01, 0x63, 0x72, 0x3C, 0x25, 0xF9, 0x86, 0x68, 0x59, 0x86, 0xB6, 0x37, 0x20, 0xEE, 0xCD, 0x2A, 0xEE, 0x2D, 0xD0, 0xDD, 0x82, 0xB8, 0x2B, 0xA3, 0xDF, 0xDB, 0x54, 0xDC, 0x55, 0xD0, 0xAF, 0x52, 0x71, 0x6F, 0x0F, 0xF8, 0x99, 0x51, 0x89, 0xBB, 0x3A, 0x60, 0x4C, 0xEE, 0x53, 0xDD, 0x11, 0xA4, 0xEE, 0x1D, 0x90, 0x6E, 0x4D, 0xB4, 0xDC, 0x01, 0x3F, 0x6B, 0x02, 0x35, 0x5F, 0x13, 0x64, 0x98, 0xAF, 0x09, 0x18, 0x4F, 0x3E, 0xAB, 0x12, 0x30, 0x26, 0xF7, 0xA9, 0xC4, 0x0F, 0xFD, 0xCA, 0x7D, 0xAA, 0x7B, 0x02, 0xCE, 0x81, 0x72, 0xBC, 0x1B, 0xF1, 0x28, 0x36, 0xE1, 0xB7, 0x46, 0xCB, 0x4A, 0xB4, 0xB9, 0x55, 0xD5, 0x70, 0x2F, 0xFA, 0x4C, 0xE4, 0xFB, 0x50, 0x93, 0x8C, 0x9F, 0x75, 0x01, 0xDB, 0x10, 0x2E, 0x73, 0xAE, 0x0F, 0x04, 0x8C, 0xDF, 0x0F, 0x1E, 0xE9, 0x39, 0xD9, 0x07, 0x94, 0x8F, 0x07, 0x3D, 0x9F, 0x0F, 0x79, 0x3E, 0x1F, 0x0E, 0xD8, 0x86, 0x70, 0xB9, 0x4F, 0xF5, 0x48, 0xC0, 0xB8, 0xF8, 0xA4, 0x67, 0x6D, 0x1F, 0x51, 0x3E, 0x1E, 0x0D, 0xF8, 0x79, 0x5C, 0xE1, 0xE3, 0xB1, 0x80, 0x31, 0x3A, 0x67, 0x24, 0xAE, 0x9F, 0x50, 0x5C, 0x93, 0xEE, 0x71, 0x3A, 0xEF, 0x41, 0xBD, 0x8F, 0x2B, 0x3F, 0x4F, 0x07, 0xE9, 0xF7, 0xBB, 0x36, 0xC0, 0xAF, 0xE4, 0xF6, 0x4C, 0xC0, 0x36, 0x1B, 0x54, 0xFF, 0x3C, 0x9B, 0xA1, 0x7F, 0x9E, 0x0B, 0x18, 0x97, 0x76, 0xCF, 0x07, 0xDC, 0xF6, 0x39, 0x15, 0x6B, 0x23, 0xC6, 0xA5, 0x9C, 0xD3, 0xBE, 0x10, 0x30, 0xA6, 0xEF, 0x77, 0xBD, 0x18, 0x70, 0x5B, 0xD2, 0x95, 0xC9, 0xBB, 0x09, 0x01, 0xE3, 0xC9, 0xE7, 0x5D, 0x02, 0x9E, 0x07, 0x17, 0xFD, 0x2B, 0x01, 0x63, 0xC3, 0xF0, 0xEE, 0xD2, 0xAB, 0x01, 0xB7, 0x21, 0xFC, 0x22, 0x60, 0xAF, 0x07, 0x8C, 0xBF, 0x86, 0xFD, 0x1D, 0xBD, 0xCF, 0xF4, 0x66, 0x90, 0x9A, 0x03, 0xAF, 0x42, 0x2D, 0x64, 0xFB, 0x16, 0x74, 0x73, 0xD0, 0xF6, 0xED, 0x80, 0xDB, 0xBF, 0x85, 0xBE, 0xA0, 0xE7, 0x9C, 0xDF, 0x56, 0xF9, 0xBC, 0x13, 0xF0, 0xB3, 0xD0, 0xD2, 0x17, 0x55, 0x01, 0x63, 0xD2, 0x17, 0x5B, 0x54, 0x5F, 0x90, 0x6E, 0x33, 0x5D, 0x87, 0x58, 0xEE, 0x8B, 0xCD, 0x8A, 0xD7, 0x77, 0x33, 0xF0, 0xBA, 0x35, 0x60, 0x5C, 0x38, 0x7B, 0x2F, 0x60, 0x4C, 0xCF, 0x53, 0xBE, 0xEF, 0x8D, 0xA7, 0x6D, 0x01, 0xDB, 0xBD, 0x8F, 0x1C, 0xE9, 0xDD, 0xA9, 0x8F, 0xF1, 0xEE, 0x15, 0xC9, 0xF4, 0x9E, 0xD5, 0xA7, 0x78, 0xC7, 0x6A, 0x44, 0xD4, 0x86, 0xDE, 0xAF, 0xDA, 0x09, 0x9B, 0x4F, 0x83, 0x14, 0x0F, 0xBB, 0xF0, 0x4C, 0xF7, 0xE9, 0x89, 0xEA, 0xF1, 0x3B, 0x54, 0x5F, 0xC1, 0x8E, 0xF0, 0x9A, 0x78, 0x0F, 0xEB, 0x0B, 0xC5, 0xC3, 0xD7, 0xE0, 0xE1, 0xA4, 0xF8, 0x6B, 0x35, 0x89, 0xC4, 0xB7, 0x68, 0xF3, 0x35, 0x78, 0xA3, 0xE7, 0xC1, 0x09, 0x3B, 0x0E, 0xFA, 0xEF, 0xE0, 0x87, 0xF0, 0x0A, 0xCC, 0x93, 0x7E, 0x1F, 0x30, 0x2E, 0x73, 0x62, 0x3F, 0x04, 0x3C, 0x27, 0xB9, 0x2D, 0xE0, 0x79, 0x52, 0x92, 0xC9, 0xC6, 0x9F, 0xE3, 0xFD, 0x31, 0x03, 0x77, 0x3F, 0x05, 0x8C, 0x0B, 0x77, 0x3F, 0x07, 0x8C, 0x69, 0xEE, 0x7E, 0xF1, 0xB8, 0xFB, 0x35, 0x60, 0xBB, 0x5F, 0x14, 0x77, 0xBF, 0x79, 0xDC, 0xED, 0xF1, 0xB8, 0xFB, 0x1D, 0x36, 0x7B, 0x14, 0x77, 0x7F, 0x78, 0xDC, 0xFD, 0x05, 0xBB, 0x3F, 0x14, 0x77, 0x7F, 0x2A, 0xEE, 0xFE, 0xF6, 0xB8, 0xFB, 0x17, 0x6D, 0xFE, 0x06, 0x77, 0xF4, 0xEC, 0xFC, 0xBF, 0x8A, 0x3B, 0x7A, 0xE1, 0xA4, 0x26, 0x9E, 0xA9, 0x17, 0xEE, 0x8C, 0x65, 0x5C, 0xB8, 0x0B, 0x2C, 0xCF, 0xA7, 0xFE, 0x0A, 0xEE, 0x48, 0x26, 0x1B, 0x9F, 0x3B, 0x6B, 0xFF, 0xCB, 0x9D, 0xB3, 0x8C, 0x0B, 0x77, 0xA1, 0x65, 0x4C, 0x73, 0x97, 0x65, 0xD3, 0xB9, 0xAB, 0x66, 0xD9, 0x8E, 0x70, 0xE1, 0xAE, 0xBA, 0x4D, 0xE7, 0xAE, 0x86, 0x4D, 0xE7, 0xAE, 0xA6, 0x65, 0x9B, 0x1A, 0x36, 0xC5, 0xDD, 0x3E, 0x36, 0x9D, 0xBB, 0x7D, 0x2D, 0xDB, 0xED, 0x63, 0x53, 0xDC, 0xD5, 0xB2, 0x6A, 0x3E, 0xC6, 0xA6, 0x73, 0x57, 0xDB, 0x72, 0x1B, 0xC2, 0x89, 0x3B, 0x7A, 0xCF, 0x80, 0x30, 0xE1, 0xAE, 0x0E, 0xFC, 0x10, 0x2E, 0xDC, 0xD5, 0xB5, 0x8C, 0x0B, 0x77, 0xF5, 0x2C, 0xCF, 0x05, 0x57, 0xB3, 0xCC, 0x1D, 0xC9, 0x75, 0x33, 0x70, 0x57, 0x3F, 0x03, 0x77, 0x07, 0x58, 0xC6, 0x93, 0x73, 0x33, 0x96, 0x31, 0xCD, 0x5D, 0x03, 0x8F, 0xBB, 0x86, 0x96, 0xED, 0x1A, 0x28, 0xEE, 0x1A, 0x79, 0xDC, 0x1D, 0xE4, 0x71, 0xD7, 0xD8, 0xB2, 0xCD, 0x41, 0x8A, 0xBB, 0x26, 0x1E, 0x77, 0x07, 0x5B, 0xB6, 0x6B, 0xA2, 0xB8, 0x6B, 0xAA, 0xB8, 0x6B, 0xE6, 0x71, 0xD7, 0xC2, 0x72, 0x9B, 0x66, 0xE0, 0x8E, 0xDE, 0xC9, 0x68, 0xA1, 0xB8, 0x6B, 0x09, 0x3F, 0xCD, 0x15, 0x77, 0x87, 0x58, 0xC6, 0x85, 0xBB, 0x43, 0x2D, 0xCF, 0x63, 0x37, 0x04, 0x77, 0x24, 0x1F, 0x62, 0xD3, 0xEF, 0x6D, 0x6C, 0xC1, 0xB1, 0xA8, 0x95, 0xCA, 0xA5, 0xB5, 0x4D, 0xDF, 0x8F, 0x1E, 0x66, 0x19, 0xA3, 0x63, 0x20, 0xED, 0x47, 0xDB, 0xDA, 0xD4, 0x7E, 0x94, 0x74, 0x6D, 0xA2, 0xA5, 0x2D, 0xF6, 0xA3, 0x6D, 0x6C, 0xAA, 0x4F, 0x0E, 0xCF, 0xD0, 0x27, 0x47, 0x58, 0xC6, 0xA5, 0x4F, 0x8E, 0xB4, 0x8C, 0xE9, 0x3E, 0x39, 0xCA, 0xEB, 0x93, 0x76, 0x96, 0xED, 0x8E, 0x52, 0x7D, 0xD2, 0xDE, 0xF2, 0xFB, 0x9F, 0xD2, 0x27, 0x1D, 0xBC, 0x3E, 0xE9, 0x68, 0xD9, 0xA6, 0x83, 0xEA, 0x93, 0x4E, 0x5E, 0x9F, 0x1C, 0x63, 0xD9, 0xAE, 0x93, 0xCD, 0xBC, 0x1F, 0x3D, 0x16, 0x3C, 0xC8, 0xF3, 0x11, 0x9D, 0x2D, 0x63, 0x74, 0x3C, 0x91, 0x7E, 0xEA, 0x62, 0xD9, 0x4F, 0x67, 0xD5, 0x0F, 0x5D, 0x2D, 0xE3, 0xD2, 0x0F, 0xC7, 0x59, 0xDE, 0x77, 0xB6, 0x43, 0x3F, 0x90, 0xDC, 0x35, 0xC3, 0x18, 0x3E, 0x3E, 0x03, 0x5F, 0xDD, 0x2C, 0xE3, 0xC2, 0x57, 0x77, 0xCB, 0x98, 0xE6, 0xAB, 0x87, 0xC7, 0x57, 0xB6, 0x65, 0xBB, 0x1E, 0x8A, 0xAF, 0x9E, 0x1E, 0x5F, 0xBD, 0x3C, 0xBE, 0x7A, 0x5B, 0xB6, 0xE9, 0xA5, 0xF8, 0xEA, 0xE3, 0xF1, 0x75, 0x82, 0x65, 0xBB, 0x3E, 0x36, 0xF3, 0xBE, 0xB3, 0xAF, 0xC7, 0x57, 0x8E, 0x65, 0x4C, 0xF3, 0xD5, 0xCF, 0xB2, 0x9F, 0x1C, 0xC5, 0x57, 0x7F, 0xCB, 0xB8, 0xF0, 0x35, 0x00, 0xFB, 0xCB, 0x6C, 0xF0, 0x45, 0x72, 0xFF, 0x0C, 0x7C, 0x0D, 0xCC, 0xC0, 0xD7, 0x89, 0x96, 0x71, 0xE1, 0x6B, 0x90, 0x65, 0x4C, 0xF3, 0x35, 0xD8, 0xE3, 0xEB, 0x24, 0xCB, 0x76, 0x83, 0x15, 0x5F, 0x43, 0x3C, 0xBE, 0x86, 0x7A, 0x7C, 0x0D, 0xB3, 0x6C, 0x33, 0x54, 0xF1, 0x75, 0xB2, 0xC7, 0xD7, 0x29, 0x96, 0xED, 0x4E, 0xDE, 0xCB, 0xFE, 0xF2, 0x54, 0x8F, 0xAF, 0xE1, 0x96, 0x31, 0xCD, 0xD7, 0x69, 0x96, 0xFD, 0x0C, 0x57, 0x7C, 0x8D, 0xB0, 0x8C, 0x0B, 0x5F, 0x23, 0xB1, 0x8F, 0x3C, 0x09, 0x7C, 0x91, 0x3C, 0x22, 0x03, 0x5F, 0xA7, 0x67, 0xE0, 0xEB, 0x0C, 0xCB, 0x78, 0xF2, 0x99, 0x1B, 0xCB, 0x98, 0xE6, 0x6B, 0x94, 0xC7, 0xD7, 0x59, 0x96, 0xED, 0x46, 0x29, 0xBE, 0xCE, 0xF6, 0xF8, 0x3A, 0xC7, 0xE3, 0x2B, 0xD7, 0xB2, 0xCD, 0x39, 0x8A, 0xAF, 0xD1, 0x1E, 0x5F, 0x79, 0x96, 0xED, 0x46, 0xEF, 0x65, 0x1F, 0x39, 0xC6, 0xE3, 0x2B, 0xDF, 0x32, 0xA6, 0xF9, 0x1A, 0x6B, 0xD9, 0x4F, 0xBE, 0xE2, 0xAB, 0xC0, 0x32, 0x2E, 0x7C, 0x8D, 0xC3, 0x7E, 0xF1, 0x2C, 0xF0, 0x45, 0x72, 0x81, 0xB7, 0x5F, 0x94, 0xFD, 0x19, 0xFD, 0xEA, 0xFD, 0xE4, 0x16, 0x5C, 0xA3, 0xCA, 0x39, 0xFC, 0x13, 0x90, 0x6F, 0x83, 0x7C, 0x9B, 0xDA, 0x1E, 0xC6, 0x7B, 0xBC, 0x15, 0x5A, 0xC6, 0xE4, 0x1A, 0x9A, 0x74, 0x85, 0x36, 0xFD, 0x3A, 0x8F, 0xAE, 0x85, 0xFE, 0x3F, 0xF7, 0x88, 0x27, 0xD8, 0xFF, 0xDE, 0x23, 0x9E, 0x68, 0x19, 0xCF, 0x74, 0x8F, 0x92, 0xDE, 0xE1, 0x9B, 0xA8, 0xB8, 0x2C, 0xB1, 0x7C, 0x0D, 0x20, 0x73, 0xAF, 0xA5, 0x96, 0xDF, 0xF3, 0x93, 0xF9, 0xD9, 0x32, 0xCB, 0xEF, 0xF9, 0x95, 0xE0, 0xF8, 0x43, 0x72, 0xA9, 0xE2, 0xF0, 0x5C, 0xFB, 0xDF, 0x7B, 0xC4, 0xE5, 0x96, 0xF1, 0x4C, 0xF1, 0xE9, 0x1D, 0xC1, 0x72, 0x15, 0xBF, 0x52, 0xC5, 0x8F, 0xE7, 0x96, 0x2C, 0xBF, 0x47, 0x28, 0xF3, 0x32, 0x53, 0x2C, 0xBF, 0x47, 0x58, 0x89, 0xF8, 0x24, 0x4F, 0x56, 0xF1, 0xA7, 0xD9, 0xFF, 0xDE, 0x23, 0x9E, 0x6E, 0x19, 0xCF, 0x14, 0x9F, 0xDE, 0x41, 0x9C, 0xAE, 0xE2, 0x9F, 0xEF, 0xC5, 0x9F, 0x61, 0xF9, 0x3D, 0x45, 0x89, 0x7F, 0x81, 0xE5, 0xF7, 0x14, 0xCF, 0x47, 0x7C, 0x92, 0x67, 0xA8, 0xF8, 0x33, 0xED, 0x7F, 0xEF, 0x11, 0xCF, 0xB2, 0x8C, 0x67, 0x8A, 0x4F, 0xEF, 0x38, 0xCE, 0x52, 0xF1, 0x2F, 0xF6, 0xE2, 0xCF, 0xB6, 0xFC, 0x1E, 0xA4, 0xC4, 0xBF, 0xC4, 0xF2, 0x7B, 0x90, 0x17, 0x23, 0x3E, 0xC9, 0xB3, 0x31, 0x56, 0x96, 0x63, 0xAC, 0x2C, 0x57, 0x63, 0x6D, 0x0E, 0xFC, 0x25, 0x9F, 0x05, 0xB2, 0x8C, 0xC9, 0x58, 0x23, 0xDD, 0x5C, 0x9B, 0x3E, 0x97, 0xB1, 0x0C, 0xE7, 0xB4, 0xF3, 0x6C, 0x6A, 0xBE, 0xE1, 0x52, 0x8C, 0x7B, 0xFA, 0xA5, 0xF9, 0x86, 0xCB, 0xA2, 0xDF, 0xCB, 0x6D, 0x6A, 0xBE, 0xE1, 0x0A, 0xE8, 0xAF, 0x50, 0xB5, 0x5C, 0x69, 0xF9, 0x1D, 0x4D, 0x39, 0x5F, 0xB8, 0xCA, 0x32, 0x26, 0xEF, 0x11, 0x91, 0x3C, 0x3F, 0x5A, 0x2E, 0x43, 0xDB, 0xF9, 0xAA, 0xED, 0xD5, 0x36, 0xFD, 0x5E, 0xCD, 0x42, 0xF8, 0x92, 0xFD, 0xD1, 0x22, 0xCB, 0x98, 0xBE, 0x57, 0xB3, 0xD8, 0x72, 0xBB, 0x45, 0xCA, 0xEE, 0x1A, 0xCB, 0xB8, 0xBE, 0x57, 0xB3, 0xC4, 0x32, 0xAE, 0xEF, 0xD5, 0x5C, 0x6B, 0x19, 0xCF, 0x51, 0xFE, 0xAE, 0xB7, 0x8C, 0x5F, 0xA7, 0xF2, 0x5A, 0x6A, 0x79, 0xAE, 0x40, 0x6C, 0x6E, 0xB0, 0x6C, 0x47, 0xB8, 0xDC, 0xBF, 0x59, 0x66, 0x19, 0x97, 0xFB, 0x51, 0xCB, 0x6D, 0xEA, 0x7E, 0xD4, 0x32, 0xE5, 0xEB, 0x46, 0xAF, 0xC6, 0x9B, 0xBC, 0x1A, 0x57, 0x58, 0xC6, 0x74, 0x8D, 0x37, 0x5B, 0x6E, 0xB7, 0x42, 0xD9, 0xDD, 0x62, 0x19, 0xD7, 0x35, 0xDE, 0x6A, 0x19, 0xD7, 0x35, 0xAE, 0xB4, 0x8C, 0xEB, 0x1A, 0x6F, 0xB3, 0x8C, 0xEB, 0x1A, 0x57, 0x79, 0x35, 0xDE, 0x6E, 0xD9, 0x6E, 0x95, 0xAA, 0x71, 0xB5, 0x65, 0x5C, 0xEE, 0x1D, 0xAF, 0xB1, 0x5C, 0xA7, 0x7F, 0x8F, 0x8A, 0xDE, 0xC9, 0x5D, 0x63, 0x53, 0x73, 0xE0, 0x77, 0x5A, 0x7E, 0x4F, 0x37, 0x1B, 0xDF, 0x60, 0xBC, 0x53, 0xC5, 0xBD, 0xDB, 0xE3, 0xE3, 0x1E, 0x8F, 0x8F, 0xB5, 0x96, 0x31, 0xCD, 0xC7, 0xBD, 0x96, 0xDB, 0xAD, 0x55, 0x76, 0xF7, 0x59, 0xC6, 0x35, 0x1F, 0xEB, 0x2C, 0xE3, 0x9A, 0x8F, 0x07, 0x2C, 0xE3, 0xF4, 0x3D, 0x90, 0xE4, 0xF3, 0x3A, 0x96, 0x71, 0xCD, 0xC7, 0x83, 0x1E, 0x1F, 0x0F, 0x59, 0xB6, 0x7B, 0x50, 0xF1, 0xF1, 0xB0, 0x65, 0x5C, 0xFA, 0xFC, 0x11, 0xD5, 0xE7, 0x0F, 0x2B, 0x5F, 0x8F, 0x7A, 0x35, 0x3E, 0xE6, 0xD5, 0xF8, 0xB8, 0x65, 0x4C, 0xD7, 0xF8, 0x84, 0xE5, 0x76, 0x8F, 0x2B, 0xBB, 0x27, 0x2D, 0xE3, 0xBA, 0xC6, 0xA7, 0x2C, 0xE3, 0xBA, 0xC6, 0xA7, 0x2D, 0xE3, 0xBA, 0xC6, 0x0D, 0x96, 0x71, 0x5D, 0xE3, 0x33, 0x5E, 0x8D, 0xCF, 0x5A, 0xB6, 0x7B, 0x46, 0xD5, 0xF8, 0x9C, 0x65, 0x5C, 0xEE, 0x4B, 0x3E, 0x6F, 0xB9, 0x4E, 0xBF, 0xCF, 0xE9, 0x3D, 0xEB, 0xE7, 0x6D, 0x6A, 0x9E, 0xFC, 0x05, 0xCB, 0xEF, 0x5E, 0x67, 0xE3, 0xDB, 0x9A, 0x2F, 0xA8, 0xB8, 0x2F, 0x79, 0x7C, 0xBC, 0xEC, 0xF1, 0xF1, 0x8A, 0x65, 0x4C, 0xF3, 0xF1, 0xAA, 0xE5, 0x76, 0xAF, 0x28, 0xBB, 0x4D, 0x96, 0x71, 0xCD, 0xC7, 0x6B, 0x96, 0x71, 0xCD, 0xC7, 0x1B, 0x96, 0xF1, 0xD7, 0x15, 0x1F, 0x6F, 0x5A, 0xC6, 0x35, 0x1F, 0x6F, 0x79, 0x7C, 0xBC, 0x6D, 0xD9, 0xEE, 0x2D, 0xC5, 0xC7, 0x3B, 0x96, 0x71, 0xE9, 0xF3, 0x2A, 0xD5, 0xE7, 0xEF, 0x28, 0x5F, 0x9B, 0xBD, 0x1A, 0xB7, 0x78, 0x35, 0xBE, 0x6B, 0x19, 0xD3, 0x35, 0x6E, 0xB5, 0xDC, 0xEE, 0x5D, 0x65, 0xF7, 0x9E, 0x65, 0x5C, 0xD7, 0xF8, 0xBE, 0x65, 0x5C, 0xD7, 0xB8, 0xCD, 0x32, 0xAE, 0x6B, 0xFC, 0xC0, 0x32, 0xAE, 0x6B, 0xFC, 0xD0, 0xAB, 0xF1, 0x23, 0xCB, 0x76, 0x1F, 0xAA, 0x1A, 0x3F, 0xB6, 0x8C, 0x4B, 0x9F, 0x6F, 0xB7, 0x5C, 0xA7, 0xDF, 0xE7, 0xF4, 0xEE, 0xFC, 0x76, 0xD5, 0xE7, 0x3B, 0x2C, 0xBF, 0x4F, 0x9F, 0x8D, 0x6F, 0xA6, 0xEE, 0xC0, 0xFA, 0xA7, 0xEA, 0x98, 0xF2, 0x19, 0xF6, 0xFB, 0x9F, 0xE1, 0x98, 0xB2, 0x2B, 0xFA, 0xFD, 0x5C, 0x1D, 0x53, 0x76, 0x43, 0xBF, 0x5B, 0xE5, 0xFC, 0x85, 0xE5, 0xF7, 0xF0, 0xE5, 0x98, 0xF2, 0xA5, 0x65, 0x4C, 0xE6, 0xCE, 0x49, 0xDE, 0x19, 0x2D, 0xBB, 0xD0, 0x76, 0xA7, 0x6A, 0xFB, 0x15, 0xDA, 0x26, 0xE7, 0xC3, 0xD0, 0x0F, 0xC9, 0xF7, 0xB3, 0xA0, 0x97, 0x73, 0x9D, 0x6F, 0x71, 0xAE, 0xF3, 0x8D, 0x4D, 0x9D, 0x0F, 0x7D, 0x67, 0x19, 0x97, 0xFD, 0xD9, 0xF7, 0x96, 0xBF, 0x33, 0x20, 0x3E, 0x7E, 0xF0, 0x62, 0xFC, 0x88, 0x18, 0x72, 0xEF, 0xF1, 0x27, 0xCB, 0xF7, 0x1E, 0xC9, 0xEE, 0x47, 0x9B, 0xBA, 0x77, 0xF9, 0xB3, 0x65, 0x9D, 0xDC, 0xBB, 0xFC, 0xC5, 0x72, 0x2C, 0xF2, 0xFF, 0xB3, 0x6A, 0xFF, 0x2B, 0xDA, 0x53, 0x2D, 0x5F, 0x83, 0x53, 0xC2, 0x7E, 0x51, 0x31, 0x7F, 0xF3, 0x72, 0xD8, 0xE3, 0xD5, 0xF9, 0xBB, 0xAA, 0x93, 0xCE, 0x29, 0xFE, 0xC0, 0x39, 0xD5, 0xEF, 0x36, 0x75, 0xDE, 0xF1, 0xA7, 0x65, 0x5C, 0xFA, 0xF3, 0x2F, 0xCB, 0xDF, 0x4B, 0x48, 0xCE, 0x87, 0x79, 0x31, 0xFE, 0xF1, 0xEA, 0xFC, 0x17, 0x79, 0x92, 0xDD, 0x3F, 0xAA, 0x4E, 0xFA, 0x20, 0xCB, 0xBF, 0xAA, 0x4E, 0xE3, 0x38, 0x16, 0xF9, 0x27, 0x9D, 0xB4, 0x0F, 0x1C, 0xB7, 0xA7, 0x5A, 0xF6, 0xA0, 0x4E, 0xC2, 0xC8, 0x5E, 0x62, 0x5A, 0x97, 0x9E, 0x83, 0x73, 0xE9, 0x75, 0x86, 0x2E, 0xBD, 0xCE, 0x2C, 0xC7, 0xE7, 0x6E, 0xA1, 0x4B, 0xD5, 0x59, 0xCD, 0x31, 0x2E, 0x75, 0x56, 0x77, 0xFC, 0xDD, 0x07, 0xF1, 0x51, 0xC3, 0x8B, 0x51, 0xD3, 0xA5, 0xD7, 0xB9, 0x0F, 0xF2, 0x24, 0xBB, 0x9A, 0x2E, 0x55, 0x67, 0x2D, 0xC7, 0x3A, 0xA9, 0x73, 0x5F, 0xC7, 0xB1, 0xC8, 0x7F, 0x2D, 0x55, 0xE7, 0x7E, 0x68, 0x4F, 0xB5, 0x50, 0xFE, 0x54, 0x27, 0x61, 0xFB, 0xAA, 0x3A, 0xF7, 0xF7, 0x72, 0xA8, 0xED, 0xD5, 0x59, 0xC7, 0xAB, 0xB3, 0xAE, 0xE3, 0xFE, 0xAC, 0xA3, 0xEA, 0xAC, 0xE7, 0x18, 0x97, 0x71, 0x5B, 0xDF, 0xA5, 0x8F, 0xDB, 0x03, 0xBC, 0x18, 0x07, 0xAA, 0x3A, 0xC9, 0x67, 0x03, 0xC7, 0xF7, 0x1E, 0xC9, 0xEE, 0x40, 0xE5, 0xB7, 0xA1, 0x63, 0x9D, 0xDC, 0xBB, 0x6C, 0xE4, 0x38, 0x16, 0xF9, 0x6F, 0xE8, 0x52, 0xED, 0x0F, 0x42, 0x7B, 0xAA, 0xA5, 0x36, 0xEA, 0x24, 0xAC, 0x91, 0xAA, 0xB3, 0xB1, 0x97, 0x43, 0x13, 0xAF, 0xCE, 0xA6, 0x5E, 0x9D, 0x07, 0xA3, 0x3F, 0x9B, 0xAA, 0x7C, 0x9A, 0x39, 0xC6, 0xA5, 0x3F, 0x9B, 0xBB, 0xF4, 0x71, 0xDB, 0xC2, 0x8B, 0xD1, 0xD2, 0xAB, 0xF3, 0x10, 0xE4, 0x49, 0x76, 0x2D, 0x95, 0xDF, 0x43, 0x1D, 0xEB, 0xA4, 0xCE, 0x56, 0x8E, 0x63, 0x91, 0xFF, 0x43, 0x55, 0x9D, 0xAD, 0xD1, 0x9E, 0x6A, 0x69, 0x82, 0x3A, 0x09, 0x6B, 0xA5, 0xEA, 0x3C, 0xCC, 0xCB, 0xA1, 0x8D, 0x57, 0x67, 0x5B, 0xAF, 0xCE, 0xC3, 0x1D, 0x9F, 0xF3, 0xB7, 0x55, 0xF9, 0x1C, 0xE1, 0x18, 0x97, 0x3A, 0x8F, 0xF4, 0xC6, 0xED, 0x51, 0x5E, 0x8C, 0x76, 0x5E, 0x9D, 0x47, 0x23, 0x4F, 0xB2, 0x6B, 0xA7, 0xFC, 0xB6, 0x77, 0xAC, 0x93, 0x3A, 0x3B, 0x38, 0x8E, 0x45, 0xFE, 0xDB, 0xAB, 0x3A, 0x3B, 0xA2, 0x3D, 0xD5, 0xD2, 0x06, 0x75, 0x12, 0x46, 0xF6, 0xB4, 0xEF, 0xFE, 0x1C, 0xFB, 0xDF, 0xCF, 0x55, 0x0E, 0x9D, 0x90, 0x53, 0xF2, 0xD9, 0x27, 0xC7, 0x98, 0x5C, 0x8B, 0x90, 0xEE, 0x18, 0x97, 0x7E, 0x6C, 0xD8, 0x85, 0x6B, 0x93, 0xCB, 0x21, 0x5F, 0xAE, 0xFC, 0x1D, 0x8B, 0x9A, 0x92, 0xEF, 0xA8, 0x39, 0xC6, 0xC4, 0x1F, 0xE9, 0x3A, 0xBB, 0xF4, 0xEB, 0x97, 0xCB, 0xE0, 0x6F, 0x31, 0xAE, 0x75, 0x16, 0xAB, 0x6B, 0xA5, 0x2E, 0x2E, 0xFD, 0x78, 0xD8, 0xD5, 0x31, 0x26, 0xF7, 0xA2, 0x49, 0xD7, 0xD5, 0xA5, 0xDF, 0x6F, 0x5E, 0x24, 0xCF, 0x58, 0x39, 0xF5, 0x8C, 0x95, 0xC3, 0x33, 0x56, 0x0E, 0xCF, 0x58, 0x11, 0xBF, 0x4E, 0x3D, 0x63, 0x05, 0x7D, 0xB6, 0x1A, 0x13, 0x3D, 0x1D, 0x7F, 0x4F, 0x46, 0xE4, 0x5E, 0x8E, 0xBF, 0xE7, 0x24, 0xC7, 0xB9, 0xDE, 0x8E, 0x6D, 0x7A, 0x39, 0x3E, 0xCE, 0x91, 0xDC, 0x2D, 0x5A, 0xBA, 0xC3, 0x57, 0x37, 0xF4, 0x41, 0x1F, 0x95, 0xC7, 0x09, 0xD0, 0x9D, 0x80, 0x3C, 0x72, 0xA2, 0xDF, 0x7E, 0x2A, 0x8F, 0xFE, 0xD0, 0xF7, 0x57, 0x71, 0x07, 0x38, 0xFE, 0x8E, 0x8D, 0xC8, 0x03, 0x5D, 0xFA, 0x73, 0xBD, 0x27, 0x3A, 0xB6, 0x19, 0x88, 0x3C, 0x48, 0xEE, 0x4B, 0x31, 0xE1, 0xAB, 0x2F, 0xF2, 0x18, 0xA4, 0xF2, 0x18, 0x0C, 0xDD, 0x60, 0xE4, 0x31, 0x84, 0xBE, 0x83, 0xAE, 0xF2, 0x18, 0x06, 0xFD, 0x30, 0x15, 0xF7, 0x64, 0xC7, 0xDF, 0xCF, 0x29, 0xAE, 0xC3, 0xE7, 0x21, 0xA7, 0x38, 0xFE, 0x06, 0xA7, 0xBC, 0x97, 0x7B, 0xAA, 0x63, 0x4C, 0xF2, 0x1A, 0xEE, 0xB8, 0xCD, 0xA9, 0xC8, 0x8B, 0xE4, 0x93, 0xA2, 0x65, 0x08, 0x7C, 0x9F, 0xA4, 0x7C, 0x9F, 0xE6, 0x71, 0x3D, 0xC2, 0xAB, 0x79, 0x24, 0x62, 0x8B, 0x7C, 0xBA, 0x67, 0x7F, 0x86, 0x67, 0x7F, 0x26, 0xEC, 0xE9, 0xFD, 0x62, 0xFA, 0x7E, 0xE0, 0x59, 0xD8, 0xA7, 0x53, 0x3B, 0xB2, 0x3D, 0xD3, 0xA5, 0xDE, 0x33, 0x38, 0x1B, 0x7A, 0x7A, 0x1F, 0x97, 0xE4, 0x73, 0x1C, 0xBF, 0x8F, 0xDB, 0x06, 0xBA, 0x35, 0x89, 0x94, 0x9F, 0x5C, 0xF8, 0xA1, 0x7C, 0x29, 0xC7, 0x91, 0xE0, 0x96, 0xF0, 0x73, 0x54, 0xFC, 0xD1, 0x5E, 0x7E, 0x79, 0x5E, 0x7E, 0x63, 0xBC, 0x7A, 0xF2, 0x3D, 0xFB, 0xB1, 0x9E, 0x7D, 0x81, 0x57, 0xCF, 0x38, 0x6C, 0xEB, 0xD4, 0x8E, 0x6C, 0x0B, 0x54, 0x3D, 0xE3, 0xA1, 0x97, 0x7A, 0x0A, 0x55, 0x3D, 0xE3, 0xBD, 0x7A, 0x8A, 0xE0, 0x87, 0xF2, 0xA5, 0x1C, 0xC7, 0xA0, 0x1E, 0xC2, 0x0B, 0xB1, 0x5D, 0x0D, 0x45, 0x7F, 0x0D, 0x55, 0xF9, 0x4C, 0x40, 0x3E, 0xC9, 0x77, 0xD8, 0x1C, 0x63, 0xB2, 0x9D, 0xC7, 0xDF, 0xD8, 0x77, 0xE9, 0x63, 0x6D, 0x88, 0x6A, 0x5F, 0xEC, 0xD5, 0x5B, 0x82, 0x7A, 0xE5, 0x18, 0x5C, 0x0A, 0x9E, 0xC9, 0xAE, 0x44, 0x1D, 0xC3, 0xCB, 0x1C, 0xEB, 0x92, 0x73, 0x53, 0x2E, 0xFD, 0xFD, 0xAE, 0xC9, 0x8E, 0x31, 0x7D, 0x3D, 0x3D, 0xC5, 0x31, 0xAE, 0xDF, 0xE5, 0x9A, 0xEA, 0x52, 0xF7, 0xB1, 0xFB, 0xA9, 0xEB, 0x80, 0x69, 0x8E, 0x75, 0x72, 0x2E, 0x3F, 0xDD, 0x71, 0xFB, 0x69, 0x2A, 0xE6, 0x79, 0x8E, 0xEF, 0xFF, 0x8B, 0xFF, 0xF3, 0x1D, 0xDB, 0x9D, 0xA7, 0x6C, 0x66, 0xA0, 0x3E, 0xF1, 0x73, 0x81, 0x63, 0x4C, 0xDF, 0xB7, 0xBF, 0xD0, 0x71, 0xDB, 0x0B, 0x14, 0x8F, 0x33, 0x1D, 0xE3, 0xFA, 0x1D, 0xB0, 0x59, 0x8E, 0xDF, 0x01, 0x9B, 0xA9, 0xFC, 0x5F, 0x84, 0xBF, 0x6D, 0x20, 0xED, 0x2E, 0x76, 0x6C, 0x77, 0x91, 0xB2, 0x99, 0x0D, 0x4E, 0x93, 0xEF, 0xA5, 0x39, 0xC6, 0xF4, 0x35, 0xCD, 0x1C, 0xC7, 0x6D, 0x49, 0x27, 0xD7, 0x17, 0x73, 0x1D, 0xE3, 0x72, 0x0D, 0x35, 0x0F, 0xDF, 0xD1, 0xCC, 0x81, 0x4E, 0xFC, 0x5F, 0xEA, 0x71, 0x3F, 0xDF, 0x31, 0xA6, 0xB9, 0xBF, 0xCC, 0x31, 0xAE, 0xB9, 0xBF, 0x7C, 0x2F, 0xDC, 0x5F, 0xE1, 0x58, 0x97, 0x7C, 0x27, 0xCD, 0x71, 0xFB, 0x2B, 0x54, 0xCC, 0xAB, 0x3C, 0xEE, 0x17, 0x38, 0xB6, 0xBB, 0x4A, 0xD9, 0x5C, 0xED, 0x71, 0xBF, 0xD0, 0x31, 0xA6, 0xB9, 0x5F, 0xE4, 0xB8, 0xED, 0x42, 0xC5, 0xFD, 0x62, 0xC7, 0xB8, 0xE6, 0xFE, 0x1A, 0x70, 0xBF, 0x58, 0xF9, 0x5F, 0xE2, 0x71, 0x7F, 0xAD, 0x63, 0xBB, 0x25, 0xCA, 0xE6, 0x3A, 0x8F, 0xFB, 0xEB, 0x1D, 0x63, 0x9A, 0xFB, 0xA5, 0x8E, 0xDB, 0x5E, 0xAF, 0xB8, 0xBF, 0xC1, 0x31, 0x3E, 0x21, 0x3A, 0xD6, 0x13, 0xEF, 0x65, 0xE0, 0x73, 0x19, 0xF6, 0xCD, 0xE2, 0x7F, 0xB9, 0xC7, 0xFD, 0x8D, 0x8E, 0xB1, 0x2A, 0xF5, 0x4D, 0x85, 0x9B, 0x14, 0xCF, 0xCB, 0xBD, 0x6F, 0x2A, 0xAD, 0x70, 0xAC, 0x97, 0x7D, 0xF7, 0xCD, 0x8E, 0x31, 0xD9, 0x77, 0xDF, 0xE2, 0xD8, 0x27, 0xE1, 0x74, 0x1F, 0x71, 0xA5, 0x4B, 0xDD, 0x47, 0x24, 0xDD, 0xAD, 0xD1, 0xB2, 0x12, 0xDB, 0xF5, 0xAD, 0xAA, 0xEE, 0xDB, 0xBC, 0xED, 0x7A, 0x95, 0xDA, 0xAE, 0xE9, 0x1C, 0xE5, 0x76, 0xEC, 0x6F, 0xC8, 0x6E, 0x95, 0x3A, 0xC7, 0x59, 0xED, 0x58, 0x27, 0xED, 0xD6, 0x78, 0xF5, 0xDD, 0xE1, 0x18, 0xD3, 0xEF, 0x6F, 0xDF, 0xE9, 0x18, 0xD7, 0x63, 0xEB, 0xAE, 0xBD, 0x8C, 0xAD, 0xBB, 0x1D, 0xEB, 0xA4, 0x3F, 0xEE, 0x71, 0xDC, 0xFE, 0x6E, 0x15, 0x73, 0xAD, 0x37, 0xB6, 0xEE, 0x75, 0x6C, 0xB7, 0x56, 0xD9, 0xDC, 0xE7, 0x8D, 0xAD, 0x75, 0x8E, 0x31, 0x3D, 0xB6, 0xEE, 0x77, 0xDC, 0x76, 0x9D, 0x1A, 0x5B, 0x0F, 0x38, 0xC6, 0xF5, 0xD8, 0x5A, 0x8F, 0xB1, 0xF5, 0x80, 0xF2, 0xFF, 0xA0, 0x37, 0xB6, 0x1E, 0x72, 0x6C, 0xF7, 0xA0, 0xB2, 0x79, 0xD8, 0x1B, 0x5B, 0x8F, 0x38, 0xC6, 0xF4, 0xD8, 0x7A, 0xD4, 0x71, 0xDB, 0x47, 0xD4, 0xD8, 0x7A, 0xCC, 0x31, 0x2E, 0xDB, 0xF5, 0xE3, 0x6A, 0xBB, 0x7E, 0x4C, 0xF9, 0x7F, 0xC2, 0xE3, 0xFE, 0x49, 0xC7, 0x98, 0xE6, 0xFE, 0x29, 0xC7, 0xB8, 0xE6, 0xFE, 0xE9, 0xBD, 0x70, 0xBF, 0xC1, 0xB1, 0x4E, 0xF2, 0x7D, 0xC6, 0x71, 0xFB, 0x0D, 0x2A, 0xE6, 0xB3, 0x1E, 0xF7, 0xCF, 0x39, 0xB6, 0x7B, 0x56, 0xD9, 0x3C, 0xEF, 0x71, 0xBF, 0xD1, 0x31, 0xA6, 0xB9, 0x7F, 0xC1, 0x71, 0xDB, 0x8D, 0x8A, 0xFB, 0x17, 0x1D, 0xE3, 0x9A, 0xFB, 0x97, 0xC0, 0xFD, 0x8B, 0xCA, 0xFF, 0xCB, 0x1E, 0xF7, 0xAF, 0x38, 0xB6, 0x7B, 0x59, 0xD9, 0xBC, 0xEA, 0x71, 0xBF, 0xC9, 0x31, 0xA6, 0xB9, 0x7F, 0xCD, 0x71, 0xDB, 0x4D, 0x8A, 0xFB, 0xD7, 0x1D, 0xE3, 0xB4, 0x5D, 0x13, 0xEF, 0xAB, 0xBD, 0xED, 0x9A, 0x8E, 0x93, 0xB2, 0x3D, 0xAD, 0xC4, 0x71, 0xB3, 0x1F, 0xE4, 0x7E, 0x2A, 0xFE, 0x1B, 0x88, 0x9F, 0x9C, 0x27, 0x73, 0x8C, 0xC9, 0x71, 0x97, 0x74, 0x6F, 0xBA, 0xF4, 0x73, 0xCD, 0x1C, 0xC8, 0x3D, 0x20, 0xF7, 0x50, 0xFE, 0xDE, 0x02, 0xA7, 0xC9, 0x39, 0x35, 0xC7, 0x58, 0xF2, 0x59, 0x54, 0xC7, 0x98, 0x3E, 0x87, 0xEE, 0xAE, 0xDA, 0x57, 0x61, 0xAC, 0x64, 0xE3, 0xEF, 0xE2, 0x54, 0xC1, 0x76, 0x33, 0x6C, 0x37, 0xE3, 0xFC, 0xF2, 0xDD, 0xE8, 0x77, 0xAB, 0xAA, 0xF5, 0x3D, 0xE8, 0xDF, 0x53, 0xBE, 0xDE, 0x77, 0xFC, 0x3D, 0x46, 0xE1, 0x6C, 0x9B, 0x63, 0x4C, 0xF4, 0x1F, 0x78, 0xE3, 0xF2, 0x43, 0xC7, 0x58, 0x61, 0x22, 0xD5, 0xE6, 0x23, 0xC7, 0xB8, 0xEC, 0x03, 0x3F, 0xFE, 0x1F, 0xFB, 0xC0, 0xED, 0x8E, 0xF5, 0x74, 0x9E, 0x14, 0x7F, 0xAB, 0x1E, 0xE7, 0x49, 0xAD, 0xE1, 0x87, 0xF4, 0xF7, 0x61, 0x7F, 0xB8, 0xC3, 0x71, 0x3E, 0x9F, 0xE0, 0x5C, 0x96, 0xE4, 0x2D, 0xD1, 0xF2, 0x2E, 0xEA, 0xD8, 0xA2, 0xF2, 0xFC, 0xCC, 0xC9, 0xF7, 0xF6, 0xF8, 0x5E, 0xEE, 0x4E, 0xF7, 0xDF, 0x7B, 0xB9, 0xBB, 0x1C, 0xE3, 0x52, 0xCB, 0xE7, 0x8E, 0xDB, 0xED, 0xC2, 0xF9, 0x17, 0x7D, 0x87, 0xF2, 0x73, 0x70, 0xB9, 0x1B, 0x31, 0x76, 0x83, 0xCB, 0x2F, 0xA3, 0xDF, 0xAF, 0x14, 0x97, 0x5F, 0x43, 0xFF, 0xB5, 0xCA, 0xE1, 0x1B, 0xC7, 0xDF, 0xB2, 0x14, 0x5E, 0xBE, 0x75, 0x8C, 0x89, 0xFE, 0x3B, 0x6F, 0x7B, 0xFB, 0xDE, 0x31, 0x96, 0xAB, 0xB8, 0xFC, 0xC1, 0x31, 0x2E, 0x5C, 0xFE, 0xE8, 0x71, 0xA9, 0xBF, 0xD1, 0xF3, 0x93, 0x63, 0xBD, 0x70, 0xF9, 0xB3, 0xE2, 0x92, 0xFC, 0xFC, 0xA4, 0xB8, 0xFC, 0xC5, 0x71, 0x3E, 0x3F, 0x83, 0x4B, 0x92, 0xBF, 0x88, 0x96, 0x2F, 0x51, 0xC7, 0x17, 0x2A, 0xCF, 0xDF, 0xB0, 0x4D, 0x66, 0xE3, 0xEF, 0x2B, 0xFD, 0x06, 0x4E, 0xF6, 0xC0, 0x76, 0x0F, 0x38, 0xF9, 0x83, 0xE6, 0xAC, 0x14, 0x27, 0x7F, 0x41, 0xFF, 0x97, 0xF2, 0xF5, 0xB7, 0xE3, 0xEF, 0x79, 0x26, 0xE7, 0xC7, 0xBC, 0xED, 0xFD, 0x5F, 0xC7, 0x58, 0xAE, 0xFA, 0x36, 0x0F, 0x7D, 0x30, 0x50, 0xBE, 0xCD, 0xF3, 0x2F, 0xF6, 0x19, 0x72, 0x8C, 0x34, 0x21, 0xFB, 0x24, 0x1B, 0xAA, 0x83, 0xE4, 0xDF, 0xA9, 0x26, 0xC4, 0xFE, 0x5D, 0xC5, 0x72, 0x21, 0xF7, 0x47, 0x72, 0x1E, 0x2C, 0xE4, 0xB1, 0x3E, 0x0C, 0xDF, 0x4C, 0xCF, 0x0A, 0xD9, 0x86, 0xF0, 0x6C, 0xFC, 0xFD, 0x28, 0xC2, 0x64, 0x0C, 0x55, 0xC3, 0xB7, 0x47, 0xF5, 0x18, 0xAA, 0x1E, 0x32, 0x2E, 0xDF, 0x1D, 0xA9, 0x11, 0x32, 0x26, 0xDF, 0x1D, 0xD9, 0x27, 0x4C, 0x1D, 0xB3, 0x49, 0x57, 0x93, 0xBE, 0xE5, 0x1D, 0x72, 0x6E, 0x35, 0x95, 0xEF, 0x5A, 0x19, 0x7C, 0xEF, 0x1B, 0x32, 0x2E, 0xDC, 0xEC, 0x17, 0x32, 0x96, 0xA3, 0xC6, 0xF5, 0xFE, 0x68, 0xA7, 0xBF, 0x6F, 0x59, 0x3B, 0x64, 0x3C, 0xF9, 0x0D, 0xA4, 0x90, 0x31, 0xD9, 0x9F, 0xD0, 0xF7, 0x52, 0xF7, 0x43, 0x8D, 0xF4, 0xAD, 0x54, 0xD2, 0x27, 0xE7, 0xBB, 0x42, 0xEE, 0x9F, 0xF8, 0x19, 0xF3, 0x90, 0xE5, 0xE3, 0xD0, 0x0F, 0x07, 0x86, 0xFC, 0x6D, 0x7E, 0x6A, 0x4F, 0xED, 0xEA, 0x87, 0xA9, 0xE3, 0x58, 0x83, 0x30, 0x75, 0x1C, 0x3B, 0x10, 0xBE, 0x09, 0x5B, 0xA3, 0x72, 0x6D, 0x98, 0x21, 0xD7, 0x46, 0x21, 0xE3, 0xC2, 0xDF, 0x41, 0x21, 0x63, 0xC2, 0x5F, 0x13, 0xC5, 0x1F, 0xE9, 0x1A, 0x47, 0x4B, 0x13, 0xF0, 0xD7, 0x58, 0xF1, 0xD7, 0x34, 0x03, 0x7F, 0x07, 0x87, 0x8C, 0x0B, 0x0F, 0xCD, 0x42, 0xC6, 0x34, 0x7F, 0xCD, 0x33, 0xE4, 0xD4, 0x22, 0x64, 0x5C, 0xDA, 0xB5, 0x0C, 0x19, 0xCB, 0x01, 0x7F, 0xF4, 0xFD, 0xD8, 0x66, 0xA8, 0x91, 0xBE, 0x1D, 0xDB, 0x52, 0xF1, 0xD7, 0x5A, 0xF1, 0x47, 0xDF, 0x91, 0x6D, 0xAD, 0xF8, 0x3B, 0x0C, 0xFC, 0x51, 0x7B, 0x6A, 0xD7, 0x4A, 0xF1, 0xD7, 0x46, 0xF1, 0x77, 0x18, 0x7C, 0xB7, 0x01, 0x7F, 0xB4, 0x2D, 0x49, 0xCD, 0x4D, 0x54, 0xCD, 0x6D, 0x33, 0xE4, 0x7E, 0x78, 0xC8, 0xB8, 0xEC, 0x3F, 0x8E, 0x08, 0x19, 0x93, 0xFD, 0xC7, 0x91, 0xE1, 0xDE, 0xF7, 0xC5, 0x47, 0x85, 0xAC, 0xA7, 0xE7, 0x45, 0x48, 0x6E, 0x17, 0x32, 0x56, 0xA0, 0xBE, 0xAB, 0x73, 0x74, 0xC8, 0x3E, 0x49, 0x47, 0xFD, 0xD3, 0x41, 0xF5, 0x0F, 0xE9, 0xDA, 0x47, 0x4B, 0x07, 0xE4, 0xDA, 0x5E, 0xE5, 0xDA, 0x31, 0x43, 0xFF, 0x74, 0x0A, 0x19, 0x4F, 0xCE, 0x7B, 0x85, 0x8C, 0xE9, 0xFE, 0x39, 0x36, 0x43, 0x8D, 0x9D, 0x43, 0xC6, 0xA5, 0x5D, 0x97, 0x90, 0x31, 0xF9, 0xE6, 0x0E, 0x7D, 0xAF, 0xF7, 0x18, 0x70, 0x48, 0xDF, 0xEA, 0xED, 0xA2, 0xFA, 0xA7, 0x9B, 0xEA, 0x1F, 0xFA, 0x6E, 0x6F, 0x37, 0xD5, 0x3F, 0xDD, 0xD1, 0x3F, 0xD4, 0x9E, 0xDA, 0x1D, 0xAF, 0xFA, 0xA7, 0x87, 0xEA, 0x9F, 0xEE, 0xF0, 0xDD, 0x43, 0xF5, 0x8F, 0xD4, 0x4C, 0xBF, 0x24, 0xCB, 0x36, 0xBE, 0x8F, 0xE2, 0x20, 0x3B, 0x03, 0x07, 0x3D, 0x43, 0xC6, 0xA5, 0xBF, 0x7A, 0x85, 0x8C, 0x49, 0x7F, 0xF5, 0x0E, 0xF7, 0xBE, 0xBF, 0xEF, 0x13, 0xB2, 0x5E, 0xFA, 0xEB, 0x84, 0x90, 0x31, 0xDD, 0x5F, 0x7D, 0x43, 0xF6, 0x79, 0x02, 0xFA, 0xAB, 0x9F, 0xEA, 0x2F, 0xD2, 0xE5, 0x44, 0x4B, 0x3F, 0xE4, 0x9A, 0xA3, 0x72, 0xED, 0x9F, 0x21, 0xD7, 0x01, 0x21, 0xE3, 0xC2, 0xFB, 0xC0, 0x90, 0xB1, 0x42, 0xD5, 0x5F, 0x27, 0x66, 0xE8, 0xAF, 0x41, 0x21, 0xE3, 0xD2, 0x6E, 0x70, 0xC8, 0x98, 0xEC, 0x8F, 0xE8, 0x7B, 0xC9, 0x03, 0xC1, 0x29, 0x7D, 0x2B, 0x79, 0xB0, 0xEA, 0xAF, 0x61, 0xAA, 0xBF, 0xE8, 0xBB, 0xC9, 0xC3, 0x54, 0x7F, 0x9D, 0x8C, 0xFE, 0xA2, 0xF6, 0xD4, 0x6E, 0xA8, 0xEA, 0xAF, 0x53, 0x54, 0x7F, 0x9D, 0x0C, 0xDF, 0xA7, 0x78, 0xFB, 0xA3, 0x53, 0x33, 0xE4, 0x3A, 0x3C, 0x64, 0x5C, 0xF8, 0x3B, 0x2D, 0x64, 0x4C, 0xF6, 0x47, 0x23, 0x15, 0x7F, 0xA4, 0x1B, 0x11, 0x2D, 0x23, 0xC1, 0xDF, 0x08, 0xC5, 0xDF, 0xE9, 0x19, 0xF8, 0x3B, 0x23, 0x64, 0x5C, 0x78, 0x38, 0x33, 0x64, 0x4C, 0xF3, 0x37, 0x2A, 0x43, 0x4E, 0x67, 0x85, 0x8C, 0x27, 0xBF, 0xD7, 0x14, 0x32, 0x26, 0xFB, 0x23, 0xFA, 0x7E, 0xF4, 0x99, 0xA8, 0x91, 0xBE, 0x1D, 0x7D, 0xB6, 0xE2, 0x2F, 0x4F, 0xF1, 0x47, 0xDF, 0x91, 0xCE, 0x53, 0xFC, 0x8D, 0x01, 0x7F, 0xD4, 0x9E, 0xDA, 0x8D, 0x56, 0xFC, 0xE5, 0x2B, 0xFE, 0xC6, 0xC0, 0x77, 0xBE, 0x1A, 0xEF, 0x52, 0xF3, 0x48, 0x55, 0xF3, 0xD8, 0x0C, 0xB9, 0x17, 0x84, 0x8C, 0xCB, 0xF8, 0x1E, 0x17, 0x32, 0x26, 0xE3, 0x7B, 0xFC, 0xFF, 0xD8, 0x1F, 0x15, 0x86, 0xAC, 0x97, 0xF1, 0x5D, 0x14, 0x32, 0xA6, 0xC7, 0xF7, 0x84, 0x90, 0x7D, 0x16, 0x61, 0x7C, 0x17, 0xAB, 0xFE, 0x21, 0xDD, 0xC4, 0x68, 0x29, 0x46, 0xAE, 0x13, 0x55, 0xAE, 0x25, 0x19, 0xFA, 0xA7, 0x34, 0x64, 0x5C, 0x78, 0x2E, 0x0B, 0x19, 0xD3, 0xFD, 0x33, 0x29, 0x43, 0x8D, 0xE7, 0x86, 0x8C, 0x4B, 0xBB, 0xF2, 0x90, 0x31, 0xD9, 0x1F, 0xD1, 0xF7, 0xBA, 0xCB, 0xC0, 0x21, 0x7D, 0xAB, 0xBB, 0x5C, 0xF5, 0xCF, 0x14, 0xD5, 0x3F, 0xF4, 0xDD, 0xEE, 0x29, 0xAA, 0x7F, 0xA6, 0xA2, 0x7F, 0xA8, 0x3D, 0xB5, 0x9B, 0xAC, 0xFA, 0x67, 0x9A, 0xEA, 0x9F, 0xA9, 0xF0, 0x3D, 0x4D, 0xF5, 0x8F, 0xD4, 0x5C, 0x8C, 0xFD, 0x91, 0x6C, 0xE3, 0xFD, 0x14, 0x07, 0xD3, 0x33, 0xD4, 0x72, 0x5E, 0xC8, 0xB8, 0xF0, 0x7B, 0x7E, 0xC8, 0x98, 0x8C, 0xFF, 0x0B, 0x14, 0xBF, 0xA4, 0x9B, 0x11, 0x2D, 0x17, 0xC0, 0xF7, 0x0C, 0xE5, 0xFB, 0xC2, 0x0C, 0xFC, 0xCE, 0x0C, 0x19, 0x17, 0x9E, 0x66, 0x85, 0x8C, 0x55, 0x29, 0x7E, 0x2F, 0xCA, 0x90, 0xD3, 0xC5, 0x21, 0xE3, 0xD2, 0x6E, 0x76, 0xC8, 0x98, 0x8C, 0x7F, 0xFA, 0xBE, 0xF9, 0x2C, 0x70, 0x40, 0xDF, 0x36, 0x9F, 0xAD, 0xF8, 0x9D, 0xA7, 0xF8, 0xA5, 0xEF, 0x9C, 0xCF, 0x53, 0xFC, 0x5E, 0x0A, 0x7E, 0xA9, 0x3D, 0xB5, 0x9B, 0xAB, 0xF8, 0x9D, 0xAF, 0xF8, 0xBD, 0x14, 0xBE, 0xE7, 0x2B, 0x7E, 0xA5, 0xE6, 0x0B, 0x54, 0xCD, 0x97, 0x65, 0xC8, 0xFD, 0xF2, 0x90, 0x71, 0x19, 0xFF, 0x57, 0x84, 0x8C, 0xC9, 0xF8, 0xBF, 0xF2, 0x7F, 0x8C, 0xFF, 0xAB, 0x42, 0xD6, 0xCB, 0xF8, 0x5F, 0x10, 0x32, 0xA6, 0xC7, 0xFF, 0xD5, 0x21, 0xFB, 0x5C, 0x80, 0xF1, 0xBF, 0x48, 0xF5, 0x0F, 0xE9, 0x16, 0x46, 0xCB, 0x22, 0xE4, 0xBA, 0x50, 0xE5, 0xBA, 0x38, 0x43, 0xFF, 0x5C, 0x13, 0x32, 0x2E, 0x3C, 0x2F, 0x09, 0x19, 0xD3, 0xFD, 0x73, 0x6D, 0x86, 0x1A, 0xAF, 0x0B, 0x19, 0x4F, 0x3E, 0x1F, 0x16, 0x32, 0x26, 0xE3, 0x9F, 0xBE, 0x27, 0xBF, 0x04, 0x1C, 0xD2, 0xB7, 0xE4, 0xAF, 0x57, 0xFD, 0xB3, 0x5C, 0xF5, 0x0F, 0x7D, 0x57, 0x7E, 0xB9, 0xEA, 0x9F, 0x1B, 0xD1, 0x3F, 0xD4, 0x9E, 0xDA, 0x2D, 0x53, 0xFD, 0x73, 0x93, 0xEA, 0x9F, 0x1B, 0xE1, 0xFB, 0x26, 0xD5, 0x3F, 0x52, 0xF3, 0x22, 0x8C, 0xFF, 0x3F, 0x71, 0x3D, 0xF0, 0xA7, 0x3A, 0xFF, 0x5F, 0x81, 0xD8, 0xC9, 0x67, 0xC8, 0x42, 0xC6, 0xAA, 0xD4, 0xB5, 0xCE, 0xCD, 0x61, 0xFA, 0xB5, 0xCE, 0x1F, 0xB8, 0xF6, 0xF9, 0x0A, 0xF2, 0x57, 0xCA, 0xDF, 0x2D, 0xB8, 0xBE, 0x10, 0x7F, 0xB7, 0x86, 0x8C, 0xC9, 0x37, 0xE1, 0x49, 0x77, 0x6B, 0x98, 0x7E, 0x3D, 0xF9, 0x25, 0xFC, 0x6D, 0x85, 0xBC, 0x55, 0xF9, 0x5B, 0x89, 0xEB, 0x93, 0xE4, 0x33, 0x69, 0x21, 0x63, 0x55, 0xEA, 0x5A, 0xFF, 0xB6, 0x30, 0xFD, 0x5A, 0x9F, 0xAE, 0x85, 0xE9, 0xBB, 0xE7, 0x5D, 0xA3, 0xA5, 0x33, 0x9E, 0xF1, 0xAD, 0x89, 0x6F, 0xFF, 0xD2, 0xDF, 0x7C, 0xEB, 0x12, 0xB5, 0xAB, 0x86, 0xBF, 0xC3, 0x17, 0x9F, 0x9F, 0xA0, 0x1F, 0xC9, 0xAE, 0x3E, 0xF0, 0x27, 0x30, 0xB6, 0x1A, 0x00, 0x3B, 0x00, 0xDB, 0x7E, 0x23, 0xF5, 0x5D, 0xED, 0x06, 0xF8, 0x9B, 0x9D, 0xCD, 0xE1, 0xA7, 0xA1, 0xF2, 0xD3, 0x18, 0x7E, 0xE6, 0x20, 0x7E, 0x13, 0xFC, 0x8D, 0xC8, 0xC6, 0x0A, 0x3B, 0x18, 0x78, 0xD3, 0xF8, 0xDB, 0xB9, 0x41, 0x2C, 0xC7, 0xDF, 0xE1, 0x51, 0x7E, 0x5A, 0x78, 0xF9, 0x1C, 0x02, 0xAC, 0x25, 0xF2, 0x69, 0xA5, 0xF2, 0x91, 0xBF, 0xF9, 0x7A, 0x34, 0xFC, 0x1C, 0xAA, 0xFC, 0x1C, 0x96, 0xFC, 0x3B, 0x8A, 0xD5, 0x62, 0xB9, 0x2D, 0xFE, 0xDE, 0xD7, 0x41, 0xD0, 0xB5, 0x51, 0x79, 0x1D, 0x8E, 0xEB, 0xE5, 0xB6, 0x09, 0x7E, 0x07, 0x2F, 0x0B, 0x7F, 0x23, 0xF6, 0x70, 0xFC, 0x5D, 0x4A, 0xB1, 0x3B, 0x0A, 0xB8, 0xE4, 0x7F, 0x14, 0xE2, 0x1E, 0xAD, 0xE2, 0x76, 0x40, 0x5C, 0xF1, 0xD3, 0x09, 0x58, 0xC7, 0x38, 0x97, 0xAC, 0x18, 0x3B, 0x06, 0xB9, 0x34, 0x81, 0x5E, 0xFC, 0x1F, 0x8B, 0xE7, 0x61, 0x8F, 0x51, 0xED, 0xBB, 0x00, 0xEF, 0xAC, 0xEC, 0xBA, 0x02, 0x97, 0x3C, 0xBA, 0x22, 0x8F, 0x56, 0xF1, 0xF7, 0x85, 0xF9, 0xFB, 0xF7, 0x8D, 0xB0, 0x2E, 0x63, 0x22, 0xFE, 0x7E, 0x0B, 0xB8, 0xDB, 0x0F, 0x63, 0x22, 0xBE, 0x96, 0x54, 0xEB, 0xB5, 0xD5, 0x7A, 0x1D, 0xF8, 0xAC, 0xA7, 0xB6, 0xF9, 0xEE, 0xB0, 0x91, 0x79, 0xC7, 0x01, 0x89, 0xCC, 0xF3, 0x8E, 0x03, 0xA1, 0x93, 0xB9, 0xBA, 0x13, 0xD1, 0x76, 0xA0, 0x3E, 0x3F, 0x44, 0xEC, 0xE4, 0xF9, 0x21, 0xEC, 0x06, 0xA9, 0x76, 0x27, 0xE1, 0xFB, 0xEE, 0x83, 0x55, 0xBB, 0x21, 0xC8, 0x4D, 0xDA, 0x0D, 0x85, 0xDD, 0x10, 0x70, 0x31, 0x34, 0xE6, 0xC7, 0x24, 0xFE, 0x0F, 0x08, 0x92, 0x7F, 0xB9 -}; diff --git a/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.cso.inl b/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.cso.inl deleted file mode 100644 index 9c22e8014..000000000 --- a/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.cso.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_6_64_fp16.comp.cso */ -const int internal_shaders_output_convolution_concat_64_6_64_fp16_comp_cso_size = 6994; -const unsigned char internal_shaders_output_convolution_concat_64_6_64_fp16_comp_cso[6994] = { - 0x78, 0xDA, 0xED, 0x7A, 0x7B, 0x54, 0x13, 0xD7, 0xDE, 0xF6, 0x4C, 0x32, 0x4C, 0x26, 0x61, 0x08, 0x89, 0x80, 0x04, 0xC2, 0x25, 0xE1, 0x2E, 0xA6, 0x76, 0xB8, 0x08, 0x28, 0x5E, 0x72, 0xC1, 0x88, 0x16, 0xDB, 0xA0, 0xA8, 0x60, 0xB5, 0x4E, 0x50, 0x10, 0x2C, 0x60, 0x04, 0xC4, 0x6B, 0xED, 0xE4, 0x42, 0x82, 0x0A, 0x8A, 0x4A, 0x2D, 0xDE, 0x6A, 0xF0, 0x56, 0xEA, 0xD1, 0x73, 0xA2, 0x52, 0x15, 0x8F, 0xB6, 0x09, 0x20, 0x22, 0xA2, 0x45, 0xAA, 0x6D, 0xAA, 0xD4, 0x03, 0x8A, 0x14, 0xAD, 0x6D, 0x29, 0x47, 0xAD, 0x5A, 0xDB, 0xF3, 0xEE, 0x81, 0x84, 0x5A, 0xBF, 0xB3, 0xD6, 0xF7, 0xBD, 0xEB, 0xFB, 0xE7, 0x7D, 0xD7, 0x3A, 0x59, 0x6B, 0x67, 0x66, 0xEF, 0xFD, 0xFC, 0xEE, 0x7B, 0xEF, 0x79, 0x02, 0x93, 0x94, 0x2E, 0x57, 0xB8, 0x5D, 0x5F, 0x51, 0xF5, 0xF8, 0x92, 0x00, 0x2F, 0xCE, 0x58, 0x7C, 0xEF, 0xF7, 0xF0, 0x6B, 0x79, 0x30, 0x04, 0x41, 0x44, 0x38, 0x04, 0xB1, 0xC0, 0x75, 0x02, 0x68, 0x29, 0xA0, 0xCD, 0x07, 0x2D, 0x0F, 0xB4, 0x75, 0x60, 0xD2, 0xEC, 0x0A, 0x41, 0xE7, 0x40, 0x9B, 0xA5, 0x9C, 0x46, 0x60, 0x10, 0xFD, 0x41, 0x06, 0xBF, 0xA7, 0xCD, 0x9A, 0x1A, 0x35, 0xD4, 0x87, 0x20, 0xFA, 0xFA, 0xD6, 0x2B, 0x7D, 0xD5, 0xAC, 0x39, 0x04, 0x06, 0xE4, 0x09, 0xE8, 0xDF, 0x7F, 0xFE, 0x05, 0x3E, 0x2E, 0x2F, 0xF5, 0x79, 0xA0, 0xC1, 0x0E, 0x59, 0xBA, 0x09, 0x40, 0x63, 0xBC, 0x22, 0xE3, 0xE6, 0xB8, 0xC2, 0x8E, 0x2B, 0xD3, 0xD1, 0xB8, 0x2F, 0xF5, 0x9D, 0x1E, 0x22, 0x2F, 0xC9, 0x3B, 0xC7, 0x5D, 0x1C, 0x8D, 0xF1, 0x12, 0x0E, 0x72, 0xF4, 0xE9, 0xE6, 0xFA, 0xCA, 0x38, 0xCB, 0xD1, 0x5E, 0x1D, 0x77, 0xFA, 0xE8, 0xFA, 0x12, 0xEE, 0xE5, 0xCF, 0xAB, 0x78, 0xFA, 0x33, 0x2B, 0x4D, 0x96, 0xE6, 0xC7, 0x81, 0xA0, 0x4C, 0xE0, 0x81, 0x09, 0x18, 0x4B, 0x4A, 0x9F, 0x96, 0xC2, 0x80, 0x87, 0xE2, 0x46, 0xC0, 0xB8, 0x5C, 0x61, 0xBD, 0x2D, 0xC6, 0x21, 0x68, 0x3D, 0x98, 0x73, 0xD5, 0x89, 0x06, 0xFD, 0xF1, 0xA0, 0x75, 0x6B, 0x83, 0xB7, 0xCA, 0x5A, 0x90, 0x69, 0x28, 0x2F, 0x7A, 0xDC, 0x36, 0xD8, 0x80, 0x87, 0xBA, 0x60, 0x3E, 0x01, 0xC8, 0xA6, 0x4C, 0x4A, 0x30, 0x85, 0x21, 0xDF, 0xE6, 0x2A, 0x6F, 0xE2, 0x45, 0x7B, 0x26, 0x60, 0x82, 0x37, 0x38, 0xD1, 0x99, 0x65, 0xC9, 0x95, 0x9E, 0x22, 0x85, 0xB2, 0xEC, 0x10, 0xE4, 0x13, 0x2D, 0xEF, 0x49, 0xE6, 0x56, 0xF2, 0x83, 0x9B, 0x54, 0xB2, 0x54, 0x6D, 0x79, 0xB7, 0xFE, 0xDE, 0x46, 0x24, 0x4A, 0x89, 0xA6, 0x0A, 0x86, 0xFC, 0x16, 0x96, 0x77, 0xD1, 0xE9, 0x67, 0x49, 0x19, 0xB5, 0x6E, 0x86, 0x7E, 0xFA, 0x96, 0x29, 0xCA, 0x27, 0x8C, 0xF4, 0x4D, 0x20, 0xC4, 0xAE, 0x85, 0xA6, 0x09, 0x86, 0x72, 0xE6, 0xA1, 0x23, 0xE5, 0xA2, 0x14, 0x0C, 0xA5, 0xFD, 0xDF, 0x20, 0x82, 0xA0, 0x95, 0xE0, 0x1A, 0x1D, 0x54, 0xC6, 0x16, 0x2D, 0x2E, 0x45, 0x3C, 0x82, 0x0F, 0x1A, 0xC0, 0xD7, 0x5D, 0x43, 0x4D, 0xA5, 0xE7, 0x88, 0x94, 0xF2, 0x72, 0x57, 0x43, 0x53, 0x0A, 0xCF, 0x6E, 0xC3, 0xA4, 0x6C, 0x88, 0xD3, 0x8B, 0x59, 0xCD, 0x78, 0x23, 0xC1, 0x8B, 0xE2, 0xA8, 0x38, 0x8B, 0x08, 0x5C, 0xBF, 0x59, 0x2E, 0xD0, 0xAB, 0x55, 0xD1, 0x53, 0xA9, 0xF6, 0xC2, 0x2F, 0x34, 0xCF, 0x3C, 0x9E, 0xF0, 0xB6, 0x05, 0x32, 0xAE, 0x58, 0x78, 0x11, 0x64, 0x2B, 0x03, 0xBF, 0x42, 0x08, 0x8C, 0x6A, 0x09, 0x73, 0x5C, 0x29, 0xB8, 0x88, 0xFA, 0x0E, 0x77, 0x0F, 0x84, 0x3F, 0x14, 0x87, 0xBC, 0x1F, 0x7A, 0xF0, 0x83, 0xEA, 0x17, 0xFB, 0xBF, 0x4A, 0x55, 0x0B, 0x8C, 0x51, 0x55, 0x0A, 0xDF, 0x5D, 0xEA, 0x74, 0x74, 0x57, 0x36, 0xD4, 0xAA, 0x72, 0xF3, 0xCA, 0x88, 0x77, 0xFB, 0x70, 0xB2, 0xDA, 0x5D, 0xFC, 0x6C, 0xB4, 0xF8, 0x58, 0x53, 0x8F, 0xF7, 0xE9, 0x8A, 0x8D, 0x47, 0x8E, 0x1C, 0xA9, 0x21, 0xEC, 0xED, 0xB1, 0xB3, 0x67, 0xCF, 0x6E, 0x24, 0xD2, 0xAA, 0xFC, 0xC7, 0xCE, 0xFF, 0xDD, 0x30, 0xD1, 0xD0, 0x53, 0x24, 0x9C, 0x7D, 0xB4, 0xA9, 0x27, 0xF8, 0x74, 0x45, 0x19, 0x50, 0x22, 0xCF, 0x53, 0xC4, 0xF0, 0x56, 0x5E, 0x1F, 0x32, 0xFE, 0x45, 0x7E, 0xDA, 0xF1, 0x11, 0xDB, 0x17, 0x76, 0xC6, 0x05, 0x01, 0x51, 0x4E, 0xB7, 0xDB, 0x15, 0xE9, 0x3F, 0xFC, 0x64, 0xAA, 0xF2, 0xEC, 0x74, 0xA3, 0x38, 0x64, 0xB9, 0x88, 0x14, 0x68, 0x6B, 0xB3, 0x97, 0xEA, 0x97, 0x93, 0x26, 0x4D, 0xB5, 0x69, 0xB5, 0x86, 0x39, 0x2F, 0x82, 0xB5, 0xCE, 0x6C, 0x5A, 0x53, 0x69, 0x2A, 0xAC, 0x64, 0xCE, 0xEC, 0x62, 0xAE, 0x8D, 0x30, 0x2D, 0x37, 0x9B, 0x56, 0x56, 0xB2, 0x26, 0x11, 0xAC, 0x92, 0x55, 0x26, 0x8D, 0x99, 0x15, 0x07, 0x31, 0xC7, 0xF7, 0x33, 0x89, 0x7E, 0xE6, 0xC4, 0x76, 0x7D, 0x49, 0x32, 0x6B, 0x55, 0xB5, 0x69, 0xA1, 0xD9, 0xB4, 0x8E, 0x32, 0x15, 0x4A, 0x6D, 0xC4, 0x76, 0x41, 0x39, 0x33, 0xD1, 0xD0, 0x38, 0xA1, 0x4D, 0x2F, 0x6C, 0x97, 0x8F, 0xEB, 0x62, 0x4E, 0xBC, 0xAE, 0x9F, 0x50, 0xA5, 0xF7, 0xAB, 0x64, 0x04, 0xDA, 0x15, 0xE3, 0xCA, 0x99, 0x13, 0xCF, 0xE9, 0x27, 0xF4, 0x6B, 0xC7, 0x59, 0x1A, 0x13, 0x0D, 0xCC, 0x89, 0x16, 0x58, 0xD0, 0xAE, 0x0D, 0xA4, 0xB4, 0x81, 0xA2, 0x9A, 0xD8, 0xFB, 0x13, 0x52, 0x76, 0x05, 0x4D, 0xAF, 0x7E, 0xE1, 0xB6, 0x1B, 0xCB, 0x17, 0x04, 0xC9, 0xB7, 0xC5, 0x1D, 0x89, 0x28, 0xC3, 0x5C, 0x98, 0x87, 0x3E, 0x9E, 0x36, 0x2B, 0x89, 0xBD, 0xFD, 0xF3, 0x06, 0x61, 0x1C, 0xFF, 0x26, 0x91, 0x64, 0x08, 0xC9, 0x4F, 0x4B, 0xE5, 0xF1, 0x39, 0xE8, 0x3C, 0x13, 0x1F, 0x44, 0x29, 0xAB, 0x35, 0xF2, 0x0D, 0xDD, 0xBE, 0xB9, 0x1B, 0x23, 0xD4, 0x03, 0xB3, 0x44, 0x0C, 0x01, 0x7B, 0xD4, 0xB1, 0x44, 0xBC, 0x51, 0xE5, 0xF6, 0xD3, 0xDA, 0x8A, 0x5B, 0xA2, 0x52, 0x8F, 0xA8, 0x51, 0x3C, 0xB8, 0xDC, 0xC0, 0xA8, 0xBE, 0xB3, 0xFB, 0xE0, 0xA8, 0xFD, 0x86, 0x4B, 0x4B, 0xE0, 0xDE, 0x8C, 0xB2, 0xB2, 0xBD, 0xD4, 0x06, 0xA9, 0x4D, 0xFA, 0x4F, 0x3F, 0x38, 0x82, 0xAE, 0xB7, 0x67, 0xA1, 0xD5, 0x54, 0x4C, 0x9A, 0xE2, 0x72, 0x4C, 0xAB, 0x73, 0x98, 0xE0, 0xDE, 0xED, 0xAF, 0x2A, 0x6E, 0x7E, 0x3B, 0x77, 0x0D, 0xF8, 0x86, 0xDC, 0xD7, 0x10, 0xAC, 0x42, 0x33, 0xAB, 0x48, 0xC4, 0xCA, 0xAF, 0xE4, 0x2E, 0x77, 0xDE, 0xAC, 0x32, 0xB3, 0x56, 0xB5, 0xA3, 0xF7, 0x79, 0xAC, 0x12, 0x33, 0x6B, 0x39, 0x49, 0x8F, 0x80, 0x71, 0x1A, 0x09, 0x06, 0x49, 0x56, 0xB1, 0x99, 0x55, 0x22, 0x65, 0xE5, 0x93, 0x5C, 0x30, 0xB5, 0x06, 0x60, 0xDA, 0xD1, 0xDE, 0x61, 0x25, 0x24, 0x17, 0x4C, 0xAD, 0x01, 0x98, 0x76, 0xF4, 0x47, 0x6A, 0x70, 0x76, 0x70, 0x9C, 0x1E, 0x21, 0x7A, 0xD8, 0xD4, 0xF0, 0xC6, 0x21, 0x5B, 0x14, 0x10, 0xCC, 0x73, 0x74, 0xAC, 0x95, 0x26, 0x88, 0x21, 0x72, 0x74, 0x28, 0xF1, 0x17, 0x30, 0x22, 0x75, 0xE2, 0x14, 0x1F, 0x21, 0xD8, 0xB0, 0x94, 0x71, 0x02, 0x97, 0x37, 0xBC, 0xCD, 0xF1, 0xD5, 0x22, 0xD1, 0x70, 0x47, 0x30, 0x90, 0x22, 0x85, 0x70, 0x47, 0x87, 0xE8, 0x39, 0x4E, 0x41, 0xD8, 0xB0, 0xA1, 0xED, 0x30, 0x4C, 0xFC, 0x61, 0x88, 0xC9, 0x20, 0xFF, 0x30, 0xC4, 0x42, 0xAC, 0xC3, 0x86, 0x02, 0xA2, 0xA0, 0x3F, 0xA6, 0x24, 0xC0, 0x35, 0x1F, 0x7A, 0x5F, 0x04, 0x54, 0x0B, 0x7C, 0xF8, 0x29, 0x95, 0xE5, 0xEC, 0xB0, 0xA9, 0xCD, 0x88, 0xC2, 0x77, 0xBA, 0x19, 0x53, 0x42, 0x1B, 0x6B, 0x78, 0xD3, 0xF7, 0x7B, 0xB6, 0xEE, 0xC7, 0x5B, 0x6B, 0x44, 0x1C, 0xC2, 0x2C, 0xE5, 0x1C, 0xD6, 0x70, 0x6A, 0x2B, 0x39, 0x47, 0x2C, 0x9C, 0xA3, 0x5D, 0x1C, 0x8D, 0x99, 0x62, 0x6E, 0xAC, 0x15, 0x79, 0xB7, 0xCE, 0x31, 0x27, 0x6C, 0xDC, 0xDF, 0x12, 0xE1, 0x07, 0x9B, 0xCF, 0x5A, 0x61, 0x98, 0x9F, 0xBC, 0x17, 0x16, 0x95, 0xA0, 0x54, 0x97, 0x0F, 0xB4, 0x71, 0x09, 0x94, 0xFC, 0x11, 0x2C, 0x5A, 0x83, 0x52, 0xED, 0xB4, 0x09, 0x68, 0x35, 0xD8, 0x97, 0xF7, 0xC1, 0xD5, 0x97, 0x99, 0x52, 0xA9, 0x64, 0x78, 0x24, 0x6D, 0xC1, 0x97, 0x3D, 0xFC, 0x61, 0x06, 0x1E, 0xD2, 0x7C, 0xAF, 0x79, 0x8A, 0x32, 0x4C, 0xD9, 0x5C, 0x8A, 0xA2, 0xC8, 0x21, 0xDC, 0x98, 0xDD, 0x5C, 0x1E, 0x26, 0x51, 0x86, 0x65, 0x29, 0x78, 0x29, 0x3C, 0x63, 0xB6, 0x8E, 0x48, 0x10, 0x1A, 0xB4, 0xD5, 0x22, 0xFC, 0x0B, 0xD4, 0x46, 0x44, 0x94, 0x5F, 0x99, 0xC1, 0x43, 0x73, 0x1A, 0xA9, 0x90, 0x26, 0x04, 0x76, 0xEB, 0xA1, 0x2E, 0x7D, 0x33, 0x77, 0xD7, 0xAD, 0xB9, 0xF3, 0x6E, 0xED, 0x6C, 0x43, 0xD4, 0x65, 0x61, 0x98, 0xBE, 0x4E, 0x46, 0xEC, 0x71, 0xDB, 0x70, 0x9C, 0x50, 0xC6, 0xF0, 0x9A, 0x1B, 0x7B, 0x1E, 0x8E, 0xBE, 0xF2, 0xC3, 0xE8, 0x63, 0x3F, 0xE4, 0x01, 0x1D, 0x29, 0xC2, 0x6D, 0xEA, 0x0D, 0x78, 0xAE, 0xA8, 0x7C, 0x89, 0xCE, 0x8C, 0xE6, 0x49, 0xE9, 0x29, 0xB7, 0xBF, 0x6E, 0x1E, 0x03, 0x66, 0x54, 0xC2, 0x11, 0xBA, 0x23, 0x78, 0xA6, 0x05, 0x27, 0x75, 0x44, 0x5A, 0xCA, 0xD5, 0xCF, 0x7E, 0x6C, 0xED, 0xB8, 0xDA, 0xDE, 0xD7, 0x0B, 0x94, 0x7D, 0x2A, 0xB6, 0xD5, 0xB6, 0xB5, 0xA3, 0x97, 0xA1, 0xB2, 0x3D, 0xEF, 0x6D, 0x38, 0x54, 0x7A, 0xE5, 0x03, 0x60, 0xDB, 0xF8, 0xAE, 0xA2, 0x43, 0xB5, 0xE7, 0x9A, 0xDB, 0x0E, 0x38, 0x2F, 0xC2, 0x7C, 0xFF, 0xE6, 0x39, 0x36, 0x43, 0x58, 0x07, 0x6F, 0x3F, 0xF9, 0xB7, 0xD3, 0xE3, 0xCF, 0xBE, 0x7E, 0x7C, 0xFC, 0x49, 0xB6, 0x5C, 0x50, 0x6B, 0x33, 0x5E, 0x80, 0xF4, 0x04, 0x51, 0x6E, 0x1B, 0xC1, 0x8C, 0xE2, 0x31, 0x49, 0x05, 0x81, 0x7A, 0x20, 0xE3, 0x28, 0x66, 0xDC, 0xEC, 0x82, 0xDC, 0xEC, 0x65, 0x85, 0xF9, 0x2A, 0x75, 0xA1, 0x3A, 0xBF, 0xC8, 0xC3, 0x00, 0xDF, 0xA2, 0x04, 0x59, 0x24, 0x6A, 0x8C, 0xDA, 0x03, 0x5B, 0xC4, 0x52, 0x3D, 0x9B, 0xE1, 0xDF, 0x44, 0x2B, 0xAA, 0xB7, 0xC4, 0x25, 0x9C, 0x8A, 0xAE, 0x77, 0x2B, 0xAB, 0x41, 0xDF, 0x25, 0x49, 0x3D, 0x9C, 0x87, 0xD9, 0x49, 0xE6, 0xCF, 0x5B, 0x65, 0xBE, 0x75, 0x36, 0x04, 0xE6, 0x76, 0x52, 0x86, 0xF9, 0xDF, 0x08, 0xBE, 0x45, 0x83, 0xB5, 0xCC, 0xB6, 0xF6, 0x90, 0xE8, 0xDC, 0x82, 0x92, 0x85, 0xB9, 0xF9, 0x4B, 0x16, 0x16, 0xE5, 0xAE, 0xC9, 0xF2, 0x30, 0x88, 0x6F, 0x91, 0x21, 0x85, 0xD4, 0x15, 0x6D, 0xAF, 0x65, 0x5A, 0x91, 0xFE, 0x2F, 0x07, 0x7E, 0xDD, 0x75, 0x60, 0xFB, 0x1B, 0xC1, 0xA3, 0x37, 0xED, 0x14, 0xE1, 0x37, 0xD1, 0xE0, 0x4F, 0x98, 0x6D, 0xDC, 0x3A, 0xE3, 0x8C, 0x5D, 0xC2, 0xF9, 0xFE, 0xDF, 0x7E, 0xED, 0xB7, 0x77, 0xBE, 0x6F, 0x06, 0x9D, 0x33, 0x7B, 0x9C, 0x80, 0x1D, 0x40, 0xAE, 0x36, 0x8F, 0xCD, 0xBB, 0xFD, 0xA0, 0xAF, 0xEB, 0x41, 0xDF, 0x67, 0xBD, 0x7D, 0x3D, 0x1D, 0x2D, 0xAD, 0x61, 0x18, 0xF3, 0xB4, 0x2D, 0xF9, 0x09, 0x74, 0x97, 0x79, 0x4C, 0xAC, 0xF8, 0xA5, 0x77, 0xCE, 0x57, 0x23, 0xD1, 0x5F, 0x6E, 0x3C, 0x51, 0xCE, 0x89, 0x93, 0x09, 0xCE, 0xBA, 0x29, 0xEF, 0xB0, 0xEC, 0x81, 0x39, 0x6E, 0xDB, 0x63, 0xE3, 0xFF, 0xFE, 0xB7, 0x93, 0x96, 0x53, 0xA7, 0x2C, 0xEC, 0x86, 0xAE, 0x7C, 0x62, 0x9B, 0xCA, 0x9A, 0x24, 0x2B, 0x4A, 0x5F, 0x67, 0x2B, 0xDD, 0x7A, 0x09, 0x94, 0x6D, 0x99, 0x7E, 0x6B, 0x25, 0x63, 0x0E, 0x67, 0x9E, 0xA2, 0xE7, 0xD8, 0xE6, 0x1F, 0x37, 0x49, 0x8E, 0xE5, 0x17, 0xE8, 0x08, 0xCA, 0x86, 0x06, 0x8F, 0x73, 0xC1, 0xBD, 0x62, 0x37, 0x4C, 0xDD, 0x75, 0xCB, 0x3B, 0x63, 0xDE, 0xAD, 0x4E, 0x44, 0x8D, 0xE9, 0xDD, 0x94, 0xFB, 0x39, 0xF6, 0xC8, 0x9C, 0x0E, 0xE3, 0x3D, 0xFC, 0x0E, 0xC5, 0xFD, 0x51, 0xEA, 0xFE, 0x1C, 0xF2, 0x54, 0xDA, 0x3C, 0x67, 0x6A, 0xBD, 0xC2, 0xB0, 0xE5, 0xFD, 0x68, 0xD2, 0xD5, 0xCF, 0xBA, 0x1A, 0x7A, 0x1A, 0x6E, 0xF6, 0xC6, 0xF1, 0x2E, 0x8D, 0x26, 0x9B, 0xD1, 0x6E, 0x9C, 0x54, 0x2B, 0xD4, 0xE7, 0x64, 0xA3, 0xCF, 0xC8, 0x25, 0x29, 0x3C, 0x84, 0x64, 0x5A, 0xD4, 0x44, 0x8E, 0x76, 0x64, 0x1C, 0xF2, 0xA9, 0x45, 0x2D, 0xC8, 0xB6, 0x8D, 0x4C, 0xAE, 0x2B, 0x3D, 0x54, 0x3F, 0x83, 0xF7, 0x80, 0x74, 0x8B, 0xC3, 0x8B, 0x88, 0x62, 0x21, 0x16, 0xEC, 0xED, 0xBB, 0xC0, 0xAE, 0x6A, 0x63, 0x8C, 0x81, 0x0A, 0x2C, 0xAE, 0xE5, 0x0D, 0x3D, 0x3D, 0x0D, 0x03, 0x9F, 0xD9, 0x6F, 0x37, 0x37, 0xD8, 0x3F, 0x6B, 0x1A, 0xE8, 0x6B, 0xA5, 0xEB, 0x2C, 0xE0, 0x71, 0xB6, 0x6F, 0x77, 0xBD, 0xFC, 0x6B, 0xE6, 0x5A, 0xA1, 0xEB, 0xA2, 0x5F, 0x33, 0x83, 0x77, 0x1F, 0xD8, 0x2D, 0xC2, 0x17, 0x49, 0x93, 0x52, 0xC6, 0xB4, 0xE5, 0xE3, 0xC7, 0xF2, 0x80, 0xE7, 0x95, 0xB0, 0x5B, 0xCC, 0xA9, 0xD3, 0xC4, 0xD9, 0x71, 0x23, 0x73, 0x0B, 0x8A, 0x8A, 0x41, 0xF1, 0x6A, 0xF0, 0xE4, 0x83, 0xF5, 0xD7, 0xE8, 0xB5, 0x18, 0x23, 0x92, 0xCF, 0x35, 0xFE, 0x72, 0xE1, 0xC9, 0x48, 0x25, 0x48, 0xCE, 0x55, 0x0A, 0x5B, 0xE0, 0x73, 0xFB, 0xC3, 0x5B, 0xBB, 0xE7, 0x0B, 0x3D, 0xCE, 0x46, 0x9F, 0xFB, 0xDB, 0xB8, 0xB3, 0xF1, 0xF5, 0x27, 0xD8, 0x0D, 0x14, 0x2A, 0x79, 0xD0, 0xD1, 0x49, 0xAF, 0x29, 0x85, 0x6F, 0x9E, 0x79, 0x8D, 0xCD, 0x7B, 0x3D, 0xEC, 0xD7, 0x20, 0xF3, 0x6B, 0xEE, 0xC6, 0x5B, 0x6A, 0xFC, 0xDA, 0xBA, 0xFD, 0xDA, 0xC5, 0xFE, 0xD7, 0x6B, 0xDE, 0x66, 0x95, 0xE4, 0xB0, 0x56, 0xD6, 0x36, 0x34, 0x67, 0x7F, 0xDD, 0xBB, 0x4D, 0x39, 0xA7, 0x57, 0x19, 0x1F, 0x8A, 0x1D, 0xA9, 0xEC, 0xAE, 0xB7, 0x7F, 0x70, 0xE9, 0xCA, 0xA1, 0xF3, 0xF5, 0x33, 0xD8, 0x65, 0x61, 0x8B, 0x57, 0x8D, 0x29, 0x51, 0xE7, 0x95, 0x64, 0x15, 0xCE, 0x62, 0x1C, 0xE0, 0xFA, 0x7C, 0x74, 0xD9, 0x6F, 0x9E, 0x20, 0x63, 0xE7, 0xFC, 0x2F, 0x85, 0x19, 0x3E, 0xB7, 0xAA, 0x44, 0xA3, 0x14, 0xC6, 0xEF, 0x82, 0xE6, 0xC6, 0xFD, 0x32, 0x27, 0x3C, 0x7E, 0x4E, 0x5C, 0x7C, 0x68, 0x8E, 0x7E, 0x3A, 0x80, 0x17, 0xAF, 0xD6, 0x64, 0xC9, 0x0A, 0x0A, 0x96, 0x15, 0xAB, 0x8B, 0x73, 0x97, 0x15, 0x14, 0xCD, 0x32, 0xA4, 0x5B, 0x4A, 0xC7, 0x83, 0xF1, 0xAC, 0x82, 0xE2, 0xC2, 0xD5, 0xAA, 0x65, 0xB9, 0x05, 0xC5, 0x45, 0xB3, 0x74, 0x0B, 0xFA, 0xE4, 0xC6, 0xEF, 0xA2, 0x9F, 0xCC, 0xF9, 0x4E, 0x39, 0x37, 0x2C, 0x3E, 0x3E, 0x54, 0xC3, 0x72, 0xEE, 0xD5, 0x54, 0x70, 0x8D, 0xC1, 0x28, 0xBF, 0xA6, 0x6E, 0xBF, 0x6C, 0x4F, 0x78, 0x62, 0x99, 0x22, 0xC1, 0xD0, 0x58, 0x2E, 0xA7, 0x58, 0xAB, 0x57, 0xB1, 0x8A, 0xAA, 0x97, 0xE3, 0xBD, 0x90, 0xFB, 0x0F, 0x3C, 0xEE, 0x23, 0x8A, 0x1B, 0x83, 0xCB, 0x03, 0x1A, 0x6C, 0xFE, 0x57, 0x6B, 0xFC, 0xB2, 0x09, 0x97, 0x41, 0x98, 0x5E, 0xD8, 0xC6, 0x9C, 0xD8, 0xA2, 0x98, 0x08, 0x1E, 0x11, 0x6D, 0xAB, 0xCA, 0x8B, 0x35, 0xAC, 0xB5, 0x18, 0x6B, 0x75, 0xB2, 0x49, 0xA3, 0x61, 0xAD, 0xD1, 0x30, 0xE9, 0xC7, 0x8E, 0xC8, 0xE4, 0xD3, 0xC6, 0xE7, 0x3E, 0xAC, 0xE4, 0x76, 0x13, 0xEE, 0x05, 0x84, 0xFB, 0xDD, 0x7E, 0x6E, 0xBF, 0x8A, 0x1B, 0xC3, 0x6B, 0xF2, 0xBF, 0x2D, 0xF6, 0xB3, 0x8B, 0xFD, 0x1B, 0xD4, 0x01, 0xD9, 0xC4, 0x86, 0xC4, 0x73, 0xFA, 0xC4, 0x76, 0xC5, 0xB8, 0x3A, 0xE6, 0x04, 0xF0, 0x9C, 0x31, 0x30, 0x13, 0xDB, 0xFA, 0x3D, 0x4B, 0x48, 0xD6, 0xDA, 0x1C, 0x56, 0x7C, 0x8E, 0xA9, 0x10, 0x7C, 0x53, 0x26, 0x4D, 0xA5, 0x49, 0x43, 0xB2, 0x4A, 0x22, 0x58, 0x25, 0x4F, 0x5D, 0x80, 0xDA, 0x95, 0x94, 0x69, 0x21, 0x66, 0x5A, 0x2E, 0x30, 0x15, 0x82, 0x47, 0x5F, 0xB5, 0x56, 0xF2, 0x63, 0x3F, 0xF7, 0xC7, 0x2E, 0xEE, 0x63, 0x2B, 0xF7, 0x21, 0xC1, 0xCC, 0x04, 0xB9, 0xEE, 0x01, 0xE9, 0x1E, 0xFC, 0xEE, 0x54, 0xFB, 0xB5, 0x8A, 0xFD, 0x9A, 0xB4, 0xFE, 0xAD, 0x6A, 0xF4, 0xAB, 0x4A, 0xC5, 0xB8, 0x16, 0xC5, 0xB8, 0xEA, 0xC1, 0xEF, 0x33, 0x8D, 0x09, 0x55, 0x8A, 0x84, 0x32, 0x66, 0x62, 0x55, 0xE3, 0xEB, 0xC0, 0xE8, 0x0B, 0x5D, 0xE2, 0x75, 0x66, 0xA2, 0xA5, 0x11, 0x6F, 0x12, 0xB3, 0xD6, 0x69, 0x98, 0x6B, 0x22, 0x4C, 0x25, 0x94, 0xC9, 0xE7, 0x9A, 0x82, 0xFB, 0xB4, 0x0B, 0xED, 0x11, 0x71, 0xBF, 0xEB, 0x42, 0x9F, 0xF0, 0xB8, 0x03, 0x56, 0x6E, 0x77, 0xA5, 0xFB, 0x4F, 0x2A, 0xF7, 0x47, 0x84, 0x5E, 0xDB, 0x02, 0x07, 0x76, 0x4A, 0x69, 0x13, 0x0D, 0x6A, 0x7F, 0xFA, 0x86, 0xE6, 0x7A, 0xCB, 0xC1, 0x89, 0x1F, 0x0F, 0xAE, 0x4A, 0xC8, 0xED, 0xC3, 0x9F, 0x26, 0xAC, 0xA7, 0x62, 0xA5, 0x86, 0x67, 0x53, 0x8E, 0xED, 0x86, 0x63, 0xE7, 0x7F, 0xF6, 0xCF, 0xA7, 0x70, 0x07, 0xC4, 0xEF, 0x0D, 0x3E, 0x9D, 0xEF, 0x7A, 0x4B, 0xF3, 0xEC, 0xEA, 0x5D, 0x57, 0x78, 0xB6, 0x67, 0x52, 0xDA, 0x78, 0xAB, 0x6A, 0x04, 0x2A, 0x22, 0xD7, 0x2F, 0xBF, 0x75, 0xD8, 0x42, 0x8B, 0x7C, 0xC6, 0x53, 0x4D, 0x91, 0x25, 0x1D, 0x62, 0xE2, 0xA1, 0x6A, 0x88, 0x41, 0x83, 0xF1, 0x8E, 0x41, 0x30, 0x1F, 0x4E, 0x49, 0xC2, 0x62, 0x1B, 0xE5, 0xE9, 0xD2, 0x41, 0x55, 0xCA, 0x1E, 0xD5, 0x96, 0x84, 0xA7, 0x2D, 0xF9, 0xB7, 0x6C, 0x63, 0xE9, 0x2E, 0x9F, 0xA4, 0x1F, 0xAF, 0xA9, 0xF7, 0x21, 0xFD, 0xC2, 0xEB, 0x67, 0xBD, 0xC8, 0xC6, 0x7B, 0x89, 0x5B, 0x02, 0xE1, 0xAF, 0x94, 0x5E, 0x2E, 0xFC, 0xE3, 0xDB, 0x3D, 0xF8, 0xEB, 0x53, 0xBF, 0xDF, 0xA1, 0x1A, 0x54, 0x8E, 0x10, 0x5F, 0xC8, 0xAB, 0x92, 0xA6, 0x48, 0x80, 0xB9, 0x38, 0x11, 0x3D, 0xF2, 0x7B, 0x52, 0x92, 0x07, 0x23, 0xA9, 0x1A, 0x48, 0xB1, 0x17, 0xD3, 0x52, 0x93, 0xFD, 0xF9, 0x30, 0x7E, 0x47, 0x14, 0x47, 0x02, 0xFD, 0x5B, 0x3A, 0x4F, 0x89, 0x27, 0xD0, 0x83, 0x6F, 0x8D, 0x05, 0x51, 0x5C, 0xC8, 0x17, 0x42, 0x36, 0x28, 0xD9, 0x41, 0x50, 0x93, 0x65, 0xB3, 0x92, 0x3D, 0x9D, 0xFC, 0x78, 0x21, 0x82, 0x6F, 0x39, 0xB3, 0xFC, 0x9D, 0xD3, 0xD7, 0x7A, 0x7F, 0x1B, 0x3B, 0x73, 0xF6, 0x54, 0x9A, 0x2F, 0xE6, 0x09, 0x87, 0xF8, 0xE3, 0x2D, 0xF4, 0xCF, 0xFC, 0x31, 0x4D, 0xF8, 0x07, 0x7F, 0xEC, 0x40, 0xFF, 0xE7, 0xF2, 0xC7, 0xB5, 0xFF, 0x37, 0xFE, 0xF8, 0xE2, 0x3F, 0xFC, 0xF1, 0x7F, 0x2D, 0x7F, 0x0C, 0xD1, 0xC9, 0x4A, 0x38, 0x02, 0x43, 0xB8, 0x6C, 0xCA, 0x73, 0x4F, 0xC8, 0x27, 0x0D, 0xFE, 0x9F, 0xC5, 0x27, 0xA1, 0xFF, 0x4D, 0x7C, 0x92, 0xFF, 0xEF, 0xF9, 0x64, 0x6B, 0x8D, 0x40, 0x09, 0x71, 0x6A, 0x42, 0xA6, 0xD7, 0x48, 0x5A, 0xCD, 0x83, 0x7C, 0x92, 0xE6, 0x8C, 0x6B, 0x10, 0x33, 0xCD, 0x1A, 0xCB, 0x00, 0x6B, 0x5C, 0x8D, 0x52, 0x7D, 0x3E, 0xD0, 0xCC, 0x25, 0x10, 0xB6, 0x17, 0x76, 0x3E, 0x83, 0xF2, 0xFF, 0x3F, 0xF8, 0xA2, 0xFA, 0x4F, 0x7C, 0x91, 0x26, 0x88, 0x39, 0x3C, 0x14, 0x01, 0x4F, 0xFC, 0x58, 0x99, 0xE0, 0xB0, 0x5B, 0xC3, 0x40, 0x5E, 0xF2, 0xC8, 0xC3, 0x19, 0x7B, 0xB4, 0xE9, 0x66, 0x76, 0x83, 0x34, 0x3F, 0x19, 0x3D, 0x9C, 0x71, 0x90, 0xBE, 0xD7, 0xF9, 0x52, 0x36, 0x44, 0x5D, 0x1B, 0x17, 0x82, 0xDC, 0x90, 0x34, 0xA9, 0x5E, 0xB3, 0x22, 0x6A, 0x4B, 0x5C, 0x88, 0xF7, 0x0D, 0x49, 0xF3, 0xE0, 0xFD, 0x99, 0xB8, 0x10, 0xEE, 0x0D, 0xC9, 0x37, 0xE0, 0xDE, 0x18, 0xB4, 0x4B, 0x92, 0xB2, 0x5B, 0x64, 0x91, 0xC5, 0xCB, 0x30, 0x66, 0x7E, 0xE3, 0x09, 0xCD, 0x95, 0x13, 0xF8, 0xEC, 0xAF, 0x57, 0x58, 0x8D, 0xD6, 0xDD, 0xA2, 0x16, 0x6D, 0xBC, 0x4C, 0x60, 0x71, 0x6B, 0x61, 0xA0, 0x60, 0x50, 0x0D, 0xE5, 0x61, 0x4D, 0xA4, 0x4E, 0xCA, 0xFA, 0x07, 0xBA, 0x58, 0xAC, 0xCF, 0xAE, 0x37, 0xBA, 0xD8, 0x79, 0x55, 0x36, 0x34, 0xF3, 0xD7, 0x66, 0x2B, 0x1E, 0x86, 0x31, 0xA4, 0xFB, 0x5F, 0x93, 0x5C, 0xC9, 0xD7, 0xA9, 0x58, 0x80, 0x0E, 0xB5, 0xC4, 0xE1, 0xEF, 0x12, 0x8B, 0x85, 0x65, 0x53, 0xDC, 0xFC, 0xE2, 0xEC, 0x2A, 0xB3, 0xCC, 0x17, 0x5A, 0xD2, 0x8E, 0x86, 0xB4, 0x37, 0xD8, 0xDB, 0x9E, 0x9E, 0xFB, 0xB4, 0xFE, 0x90, 0xED, 0xFC, 0xB5, 0x0F, 0xEA, 0xAF, 0x69, 0xCB, 0x6B, 0x4A, 0x2F, 0x45, 0xED, 0x9A, 0xFE, 0xAE, 0x7E, 0xD1, 0x68, 0xA6, 0xCF, 0x1A, 0x9F, 0x79, 0x19, 0x70, 0xCD, 0x08, 0x0E, 0xE7, 0x26, 0xAF, 0xC9, 0x86, 0xD4, 0x70, 0x4F, 0xB9, 0x31, 0xFD, 0x5A, 0x6C, 0x7E, 0x79, 0x82, 0xDB, 0x14, 0xB7, 0x97, 0x6C, 0x54, 0xB1, 0x56, 0x10, 0x2C, 0x49, 0x9B, 0xFD, 0x76, 0x43, 0x5F, 0x1C, 0xBE, 0x52, 0xCA, 0x2A, 0xB2, 0xA8, 0xAD, 0xCC, 0x09, 0xD5, 0xFA, 0xC8, 0xBC, 0xBC, 0x92, 0xFC, 0x31, 0xB9, 0x8B, 0x01, 0x13, 0x98, 0xA5, 0x33, 0x73, 0x7C, 0x3E, 0xDA, 0xB4, 0x60, 0x67, 0xE7, 0xFC, 0x9B, 0xBB, 0x6F, 0x55, 0x51, 0x39, 0x80, 0x0E, 0x64, 0x7A, 0x37, 0x67, 0x03, 0x36, 0x10, 0x4A, 0x3C, 0x00, 0x14, 0xA4, 0xAD, 0xA6, 0x74, 0xEB, 0x07, 0x97, 0xC6, 0x9E, 0xDF, 0xFA, 0xC1, 0xF1, 0x19, 0xEC, 0x6D, 0xD1, 0x80, 0x3F, 0x14, 0x66, 0x15, 0x2D, 0x5B, 0x51, 0xB8, 0x28, 0xAB, 0x68, 0x16, 0x23, 0xA6, 0x16, 0x10, 0x8F, 0x99, 0xBD, 0xCA, 0xF0, 0x0F, 0x59, 0x8F, 0x77, 0x00, 0xD6, 0x02, 0xA8, 0x07, 0xF3, 0x3F, 0xFC, 0xE1, 0x3F, 0xFC, 0xE1, 0xBF, 0xC9, 0x1F, 0xD4, 0x20, 0xC6, 0x0E, 0x04, 0x9C, 0xB9, 0xC8, 0xC7, 0x3C, 0x57, 0x70, 0x0D, 0x02, 0xF1, 0xC6, 0xB6, 0x41, 0x9E, 0x73, 0xBF, 0xB9, 0x21, 0xCD, 0xE0, 0x78, 0x1E, 0x96, 0x5E, 0xF2, 0x5A, 0x58, 0x5F, 0x35, 0x5D, 0xE6, 0xB5, 0x4C, 0xFA, 0x0C, 0xF5, 0x3C, 0x28, 0x87, 0xB9, 0x55, 0xA9, 0xCF, 0xBC, 0xCC, 0x32, 0x7F, 0x4F, 0x52, 0x6E, 0x0B, 0xF3, 0x5C, 0x25, 0xDF, 0xEA, 0xE9, 0xF1, 0xDA, 0x14, 0x15, 0x1A, 0x4A, 0x30, 0xA4, 0xCD, 0x98, 0x15, 0x87, 0x66, 0xC7, 0x40, 0xC1, 0xD0, 0x22, 0xC4, 0xFC, 0xEB, 0xBE, 0xF3, 0x71, 0x4A, 0xEB, 0x9D, 0xBA, 0x3E, 0x93, 0x4D, 0xA0, 0x3D, 0xF6, 0x63, 0xF8, 0xC3, 0x0A, 0xFE, 0xD3, 0x7F, 0xEE, 0x3D, 0xFD, 0x0F, 0x01, 0x1C, 0xF9, 0x9D, 0xE4, 0x45, 0x05, 0x9F, 0x8A, 0xFA, 0xFC, 0xA3, 0xF3, 0x84, 0x12, 0xBA, 0x5D, 0x7B, 0x75, 0xE5, 0x22, 0xE4, 0xF9, 0xB7, 0xFF, 0x3C, 0x11, 0xAF, 0x34, 0x7F, 0x7E, 0xE8, 0x93, 0xF5, 0x8B, 0x10, 0x11, 0xA6, 0xEB, 0xA7, 0xC9, 0x70, 0x30, 0xCA, 0x86, 0x74, 0xA4, 0x08, 0x35, 0x4B, 0xD1, 0xF6, 0x80, 0x87, 0x5A, 0xBF, 0x72, 0x41, 0x08, 0x84, 0xE9, 0xB4, 0x02, 0x83, 0xDC, 0x47, 0xBA, 0x96, 0x64, 0x15, 0x11, 0x99, 0x95, 0x90, 0x08, 0x43, 0x33, 0x45, 0x9C, 0x6C, 0x5E, 0xB7, 0x2D, 0xB0, 0xDD, 0x56, 0x26, 0x63, 0x50, 0x22, 0x41, 0x99, 0x2D, 0x62, 0x8F, 0xD6, 0x93, 0x53, 0xA3, 0x62, 0x39, 0x15, 0x1C, 0xA4, 0xD0, 0x2F, 0x23, 0xFA, 0xB5, 0xFE, 0x4E, 0x05, 0x55, 0x72, 0x5F, 0x95, 0xB9, 0x9F, 0xB5, 0xD2, 0xA9, 0x80, 0xE4, 0x2C, 0xD5, 0x94, 0x32, 0x02, 0xBB, 0x86, 0x15, 0x8C, 0x3A, 0x2A, 0x0B, 0xE3, 0xEC, 0xAF, 0x04, 0x0A, 0x50, 0xA0, 0x40, 0xDA, 0xD6, 0xE0, 0x53, 0xDE, 0x50, 0xA6, 0x85, 0xC1, 0x1C, 0xAF, 0x8E, 0x42, 0x6B, 0x89, 0x4C, 0x92, 0x96, 0x4B, 0x7A, 0xED, 0x20, 0x1C, 0x59, 0x2E, 0x10, 0x00, 0x9D, 0x70, 0xAA, 0x6B, 0x2E, 0xC9, 0x71, 0xC0, 0xED, 0x3A, 0xDF, 0xDA, 0x86, 0x14, 0x83, 0x3F, 0x5E, 0x11, 0xD1, 0x96, 0x64, 0xB7, 0xB5, 0x97, 0x35, 0xA4, 0x20, 0x01, 0x83, 0x9D, 0xAE, 0xFF, 0x4E, 0xC7, 0x10, 0x80, 0x5F, 0x01, 0x9D, 0x3E, 0x5B, 0x7B, 0xF9, 0xFF, 0x63, 0x47, 0xB7, 0xE0, 0xB4, 0x86, 0xF1, 0x97, 0xF5, 0xDD, 0xC8, 0x48, 0x4C, 0x64, 0x91, 0xF8, 0xBD, 0x49, 0x7E, 0x33, 0x66, 0x8F, 0x95, 0x58, 0x9E, 0xA0, 0x75, 0x61, 0x60, 0x4A, 0x9C, 0x0B, 0x21, 0x36, 0x4A, 0xC1, 0x9A, 0xFB, 0x74, 0x95, 0x3A, 0x56, 0xCC, 0x33, 0x0A, 0x37, 0x77, 0xE1, 0x4A, 0x0F, 0xA3, 0xFA, 0x0C, 0xCC, 0xBE, 0x6A, 0x36, 0x92, 0x26, 0x21, 0x77, 0x16, 0xA1, 0xE7, 0x18, 0xF6, 0x66, 0x11, 0xA5, 0xA2, 0xDA, 0x83, 0xFE, 0x05, 0x3B, 0xA4, 0x82, 0x5A, 0xC1, 0x4C, 0x99, 0xB9, 0x82, 0x6C, 0x92, 0xC2, 0x52, 0x1E, 0x7E, 0x78, 0x8D, 0xA5, 0x34, 0x9E, 0x57, 0x0C, 0x7B, 0x76, 0x02, 0x71, 0x68, 0x29, 0xC9, 0x1A, 0xB5, 0x12, 0x23, 0xBF, 0xD1, 0xFB, 0x9C, 0x53, 0x10, 0x79, 0x52, 0xC4, 0x00, 0x55, 0xFD, 0xCC, 0x9D, 0xF9, 0x33, 0xCF, 0x7A, 0x82, 0x35, 0xB6, 0xD2, 0x44, 0xDA, 0x29, 0x8C, 0x0B, 0x47, 0x5C, 0x08, 0x28, 0x19, 0x92, 0x0D, 0x7B, 0xFF, 0xA9, 0xCB, 0x04, 0xAC, 0x59, 0xEC, 0xF5, 0x23, 0x2D, 0xBB, 0xF1, 0x13, 0xD6, 0x27, 0xEF, 0x01, 0xD9, 0x46, 0x61, 0x97, 0x43, 0xF6, 0xBA, 0xDE, 0x7D, 0xE6, 0xEF, 0x40, 0xD6, 0x34, 0xCE, 0xEE, 0x90, 0xAD, 0xCD, 0x0D, 0x74, 0xC8, 0x1E, 0xDE, 0x2E, 0x35, 0xA9, 0x30, 0xBB, 0x6C, 0xA4, 0x34, 0x13, 0xC8, 0x1E, 0x19, 0x60, 0x7D, 0xB2, 0x15, 0xC8, 0x32, 0x03, 0x0C, 0x49, 0x43, 0xB2, 0x9E, 0x23, 0x47, 0xCC, 0x0C, 0xE3, 0x03, 0xBB, 0x93, 0x44, 0x1B, 0x1C, 0x76, 0xAF, 0x86, 0x38, 0xED, 0x56, 0x97, 0xB1, 0x66, 0x63, 0x0F, 0xD4, 0xDE, 0x33, 0x69, 0xD9, 0xD6, 0x44, 0xF6, 0xA8, 0x6D, 0x40, 0x56, 0x11, 0x51, 0xEB, 0x90, 0x4D, 0x13, 0xD4, 0x1A, 0xAE, 0x4F, 0x43, 0x2C, 0x0F, 0x6B, 0x3C, 0xE7, 0x05, 0x09, 0xE2, 0x44, 0x3A, 0x05, 0x54, 0x8E, 0x2F, 0x66, 0xA0, 0x8D, 0x6E, 0xDA, 0x14, 0xCA, 0x26, 0x69, 0x14, 0x21, 0x27, 0x91, 0x26, 0xE9, 0x05, 0x4D, 0x00, 0x56, 0x8D, 0x7B, 0xD5, 0x22, 0x1F, 0x58, 0x46, 0x64, 0x97, 0x90, 0x1E, 0xA2, 0xDA, 0x44, 0xEB, 0x86, 0xBD, 0xA1, 0x11, 0x68, 0x24, 0x3A, 0x56, 0xDC, 0x5C, 0x13, 0x31, 0xB1, 0x7D, 0xC3, 0x31, 0x2B, 0xC5, 0x41, 0x6B, 0xA9, 0xF0, 0x9C, 0x33, 0xB6, 0x91, 0xC5, 0x0C, 0xBC, 0xCD, 0xFD, 0x4D, 0x06, 0xE2, 0xF5, 0x02, 0xC9, 0xE0, 0x8D, 0x14, 0x55, 0x17, 0xF4, 0x6F, 0xA0, 0x04, 0x51, 0x09, 0x10, 0x0F, 0x61, 0x5E, 0x95, 0xA4, 0xEF, 0xF7, 0x6E, 0x06, 0xBE, 0xF0, 0xF2, 0xB0, 0x24, 0x95, 0x8C, 0xE1, 0x55, 0x79, 0x21, 0x43, 0xA4, 0xB5, 0xEA, 0xEA, 0x12, 0x6C, 0x65, 0x5A, 0x7A, 0xE9, 0xA5, 0x68, 0xF8, 0x1E, 0x7D, 0xBC, 0xEB, 0x4D, 0x93, 0x0E, 0x5E, 0xC8, 0x91, 0x43, 0x79, 0xEB, 0xFA, 0x5D, 0xEA, 0xAA, 0x8D, 0x6E, 0x65, 0x52, 0x1E, 0x34, 0xDA, 0x74, 0x0A, 0xD2, 0x8E, 0xD2, 0x62, 0x91, 0x95, 0x66, 0xDD, 0xA9, 0x04, 0xD7, 0x38, 0x5E, 0xBA, 0xC8, 0x3B, 0x5C, 0x10, 0xA5, 0x02, 0x6A, 0xF5, 0xA3, 0x5E, 0x2F, 0x0E, 0x0A, 0x60, 0xEC, 0x13, 0xB1, 0xEB, 0x05, 0x33, 0x30, 0xAA, 0xC2, 0xBD, 0x97, 0xE7, 0xDD, 0x69, 0x81, 0xF9, 0x18, 0x43, 0xF5, 0xCE, 0x82, 0x4A, 0x97, 0x95, 0x30, 0xE3, 0x00, 0x83, 0x9F, 0x66, 0x95, 0xB9, 0xAC, 0x5C, 0x3E, 0xB2, 0x0A, 0xC6, 0x24, 0x5D, 0x9B, 0x3C, 0xCA, 0x05, 0x11, 0x60, 0xD5, 0xDA, 0x62, 0x7D, 0x17, 0x1F, 0x77, 0x87, 0xE7, 0x9D, 0x41, 0x16, 0x96, 0x87, 0x21, 0xD6, 0x66, 0xD3, 0x4A, 0xBB, 0x6B, 0x0C, 0x48, 0x03, 0x43, 0x06, 0x45, 0xBA, 0xFD, 0xAE, 0x93, 0x60, 0x6E, 0xBC, 0x6A, 0xEF, 0x32, 0x33, 0x23, 0x86, 0xE2, 0xC8, 0xEF, 0x4A, 0x56, 0x31, 0x79, 0xE9, 0xA4, 0xAF, 0xD3, 0xE6, 0x27, 0x63, 0x3B, 0xF7, 0x87, 0x30, 0xEA, 0xAD, 0xEC, 0x2F, 0x87, 0x6C, 0x3E, 0x55, 0xF9, 0x6A, 0xE8, 0xA4, 0xEA, 0xA0, 0x74, 0xBF, 0x5A, 0x14, 0x37, 0x0A, 0x19, 0x37, 0x20, 0x7D, 0x06, 0x7A, 0x00, 0x8B, 0x9B, 0xF4, 0x94, 0xB9, 0xD4, 0x8C, 0xBA, 0x18, 0xED, 0x4F, 0xFB, 0xDD, 0x8F, 0xD4, 0xF8, 0x7A, 0x0A, 0x32, 0xEF, 0x32, 0x93, 0x2D, 0xE8, 0xBB, 0x2A, 0xB2, 0xAC, 0xC2, 0x5D, 0xDC, 0xED, 0xFB, 0x57, 0x99, 0x56, 0x1C, 0x37, 0xA9, 0x1A, 0xC9, 0x6B, 0x1F, 0x04, 0x69, 0x46, 0x9C, 0x50, 0x0B, 0x07, 0x41, 0xD3, 0xDB, 0xD1, 0x82, 0x41, 0xD0, 0x28, 0xB5, 0xF0, 0x2C, 0x00, 0x65, 0xB3, 0x37, 0x6B, 0x37, 0xAA, 0x47, 0x72, 0xCF, 0x44, 0x49, 0x5A, 0x58, 0xBC, 0x34, 0xAB, 0x77, 0xA6, 0x2D, 0x92, 0xB2, 0x32, 0xFA, 0x87, 0x93, 0xF7, 0x9D, 0xD6, 0x97, 0xE4, 0x5B, 0x8C, 0xF3, 0xA9, 0x8B, 0x20, 0x79, 0xF6, 0xD1, 0x14, 0x8A, 0x47, 0x12, 0x56, 0xDD, 0xC0, 0xF0, 0xFC, 0xC3, 0x6B, 0xBE, 0x59, 0xFC, 0xA6, 0xE6, 0x05, 0x55, 0xF4, 0xBC, 0xE0, 0xB5, 0x32, 0x30, 0x9F, 0x6E, 0x65, 0x3C, 0x1E, 0x9E, 0xFF, 0x59, 0x2C, 0x5C, 0xCA, 0xB7, 0xA3, 0x0B, 0x6B, 0xE9, 0xF9, 0xB4, 0xAA, 0x00, 0xCB, 0x43, 0x99, 0xE4, 0x7A, 0xB0, 0xD9, 0xCA, 0x0B, 0x46, 0x31, 0xB0, 0xB1, 0x35, 0x7D, 0xA6, 0x82, 0x72, 0x2D, 0xC8, 0x9D, 0x88, 0xCE, 0xDD, 0xF1, 0xC0, 0xBF, 0x8B, 0xD1, 0xE9, 0x44, 0x26, 0x45, 0x1F, 0x05, 0xAC, 0xF7, 0xFB, 0x95, 0x02, 0x81, 0xCD, 0x02, 0xA7, 0x22, 0x0C, 0xD5, 0xD7, 0x6B, 0xC1, 0x4A, 0x3E, 0x49, 0x6D, 0xA1, 0x18, 0x0A, 0x07, 0x16, 0x0E, 0xEA, 0x5A, 0x8E, 0xA6, 0x39, 0xB0, 0x53, 0xCB, 0x0C, 0x26, 0x1F, 0xA9, 0xAD, 0x0C, 0xA6, 0x6D, 0xFA, 0x05, 0x05, 0x05, 0x64, 0x59, 0x91, 0x46, 0x34, 0x89, 0x8F, 0x49, 0x57, 0x3C, 0x82, 0x2F, 0x07, 0x74, 0x36, 0x4C, 0x62, 0x70, 0xF0, 0xA8, 0x21, 0xAC, 0x69, 0x43, 0xF5, 0x45, 0x9F, 0x1C, 0x27, 0x36, 0xBC, 0x30, 0x20, 0x9B, 0x74, 0x71, 0x38, 0x63, 0xC6, 0xD6, 0x54, 0x69, 0x3D, 0x71, 0x21, 0x6F, 0x8A, 0x08, 0x1A, 0x8B, 0x3E, 0x07, 0x92, 0xBD, 0xBA, 0xC9, 0x7F, 0x48, 0xB2, 0x36, 0x59, 0x2E, 0xFA, 0x52, 0x32, 0xA7, 0xCD, 0x4D, 0x75, 0x26, 0x5F, 0x8D, 0x53, 0xCF, 0x98, 0x3B, 0x01, 0xB9, 0x94, 0xCB, 0xA0, 0x4D, 0xEA, 0x90, 0x6C, 0x83, 0x95, 0x3C, 0x23, 0xC6, 0xF8, 0x44, 0x75, 0x96, 0x74, 0xB3, 0xB5, 0xB7, 0x3B, 0x89, 0x24, 0x3A, 0x79, 0x55, 0x2C, 0x41, 0x5B, 0x74, 0x48, 0x12, 0xF1, 0x86, 0x19, 0x4F, 0xC3, 0x4F, 0xCF, 0x42, 0x23, 0xAB, 0xDA, 0x46, 0x48, 0x98, 0x5E, 0x4C, 0xD7, 0x51, 0xF5, 0x41, 0x68, 0xA8, 0x19, 0xBB, 0x51, 0x19, 0x94, 0xAD, 0x78, 0x9B, 0xB2, 0xEA, 0x60, 0xC4, 0x3B, 0xAD, 0x64, 0x59, 0xEA, 0x4E, 0xF6, 0x49, 0x38, 0xD0, 0x23, 0x87, 0x39, 0x29, 0x18, 0x65, 0x01, 0xE7, 0xFA, 0x6F, 0x60, 0xEF, 0xD7, 0x35, 0x97, 0xD3, 0x8B, 0x2A, 0x47, 0xC7, 0x4B, 0x17, 0xB7, 0x5C, 0x34, 0xC8, 0x27, 0x35, 0xBA, 0xB5, 0x6D, 0x32, 0xDB, 0x24, 0x4C, 0x0F, 0xD4, 0x56, 0x66, 0x63, 0x02, 0x3F, 0x16, 0x4F, 0xEC, 0x08, 0xFC, 0x54, 0x26, 0xD4, 0x93, 0x01, 0xBD, 0xFC, 0x20, 0xB1, 0x3C, 0xE8, 0x5E, 0xD4, 0x2E, 0x1E, 0x74, 0x80, 0x2D, 0x27, 0x76, 0x11, 0xD8, 0x01, 0x76, 0x93, 0xE5, 0x31, 0x3C, 0xB6, 0x38, 0x69, 0x2A, 0x58, 0xFE, 0x66, 0x01, 0x75, 0xCC, 0xFD, 0x93, 0xE3, 0xC1, 0x93, 0xA3, 0xC1, 0x02, 0xBB, 0x00, 0xE5, 0xBD, 0xA7, 0x72, 0x0B, 0x78, 0xB6, 0x55, 0xCD, 0x0C, 0x8A, 0x40, 0xC9, 0xEF, 0x1B, 0x97, 0x3E, 0xC2, 0x36, 0x83, 0x34, 0xC8, 0xA2, 0xA0, 0x37, 0x02, 0xD3, 0x1B, 0xA7, 0x4A, 0x38, 0x47, 0xA2, 0xFC, 0xF8, 0xE7, 0x4C, 0x03, 0x57, 0xA2, 0x13, 0x66, 0x90, 0x0D, 0x6B, 0x5B, 0x96, 0xEC, 0x10, 0xF9, 0x6E, 0x16, 0xDC, 0x56, 0x3C, 0xCB, 0xF6, 0x31, 0x83, 0xD5, 0x4B, 0xD0, 0x1B, 0x71, 0xD3, 0x8C, 0x34, 0x83, 0x05, 0x9A, 0xD4, 0x13, 0x33, 0x74, 0x92, 0xEF, 0xD8, 0x7D, 0x34, 0x99, 0x94, 0xAD, 0x6B, 0xB9, 0xA8, 0x7B, 0x4A, 0x7D, 0x21, 0x91, 0x2D, 0x9E, 0xB6, 0xCE, 0xBA, 0xA4, 0xC9, 0x0A, 0x81, 0x13, 0x44, 0x32, 0x4E, 0xBB, 0xD5, 0xCA, 0x78, 0x56, 0xB9, 0xC5, 0x65, 0x00, 0xDE, 0x97, 0xA1, 0xCB, 0x31, 0x1F, 0x38, 0xE1, 0x7B, 0x8F, 0x6F, 0x76, 0x2D, 0xBF, 0xF5, 0x14, 0x0A, 0x28, 0xD0, 0xA1, 0x20, 0x89, 0x22, 0xCC, 0xEA, 0x88, 0x67, 0x65, 0x61, 0xF0, 0x4F, 0xDD, 0x01, 0xFE, 0xAC, 0x20, 0xD1, 0x89, 0xE0, 0x65, 0x77, 0x82, 0xFF, 0xF5, 0x6A, 0x3C, 0xE2, 0x09, 0x7D, 0x86, 0x37, 0x9D, 0xF1, 0xDC, 0x49, 0x0D, 0x5F, 0xED, 0x8C, 0x47, 0xE0, 0x9E, 0x78, 0x69, 0xBB, 0x23, 0x1E, 0xE6, 0xEA, 0xCE, 0x0D, 0x7B, 0x9C, 0xF1, 0xB4, 0x32, 0xDF, 0xEA, 0xA2, 0x74, 0x4B, 0xF1, 0xA9, 0xC8, 0xA8, 0xFD, 0xEB, 0x4E, 0xE2, 0xDB, 0x3D, 0xAB, 0x2B, 0x83, 0x06, 0x76, 0x86, 0x5A, 0x8C, 0xC1, 0x46, 0xCF, 0xD4, 0xCF, 0x32, 0x8C, 0x1B, 0x39, 0x4A, 0x1C, 0x07, 0xE7, 0xBA, 0x35, 0xDA, 0x2B, 0x5A, 0x2C, 0x51, 0xF1, 0x9F, 0x0D, 0x3D, 0x8E, 0xB4, 0xA5, 0x91, 0x59, 0x23, 0xD2, 0x2D, 0x41, 0x03, 0xC7, 0xC9, 0x29, 0x5D, 0x31, 0x6F, 0x90, 0x19, 0x27, 0x82, 0xFA, 0x7D, 0x1C, 0x91, 0xCF, 0xBE, 0x1E, 0x62, 0xA1, 0xA6, 0xF4, 0x2C, 0x82, 0x37, 0x59, 0x97, 0xEC, 0xB0, 0xFA, 0xF6, 0xD5, 0x4A, 0xA6, 0xD5, 0x18, 0x1E, 0x30, 0xEE, 0xC6, 0x4D, 0xEA, 0x61, 0x1D, 0x29, 0x6B, 0x18, 0x3C, 0x37, 0x88, 0xCC, 0x7E, 0x3A, 0x2D, 0x19, 0x47, 0x9B, 0xA6, 0x6D, 0x34, 0xB7, 0xF8, 0xDB, 0xB5, 0x9B, 0xFB, 0x92, 0xF7, 0xD6, 0x71, 0x3E, 0xEA, 0x69, 0x01, 0x1B, 0xA3, 0x3C, 0x0C, 0xB3, 0xE5, 0x34, 0x88, 0xCA, 0xC3, 0x78, 0x8D, 0x5F, 0xB1, 0x7E, 0xD3, 0x78, 0xCD, 0xF5, 0x01, 0x07, 0x67, 0x26, 0x74, 0x6A, 0xD2, 0xC3, 0x8B, 0x7F, 0x69, 0x6B, 0x05, 0xF2, 0x9E, 0x4C, 0xCB, 0x63, 0xED, 0x64, 0x32, 0x6B, 0x8E, 0x33, 0xD4, 0xDF, 0xF8, 0xA3, 0x8F, 0x0E, 0x85, 0x2A, 0x79, 0xAF, 0xDF, 0x3D, 0x23, 0xD5, 0x65, 0xB0, 0x44, 0xE5, 0x1B, 0x40, 0x89, 0xC8, 0xB9, 0x64, 0x43, 0x35, 0x28, 0x11, 0x29, 0xDC, 0x2C, 0x68, 0x4E, 0x02, 0x25, 0xAA, 0x93, 0x38, 0x4A, 0xE4, 0x3A, 0xFF, 0x85, 0xC1, 0x42, 0xA5, 0x0C, 0x97, 0xE8, 0xCC, 0x8B, 0x69, 0xA4, 0x6C, 0x27, 0x28, 0x51, 0xB4, 0xF6, 0x0B, 0x89, 0x2D, 0x7B, 0xDA, 0xCE, 0xE1, 0x12, 0x15, 0x89, 0x3F, 0xB0, 0x32, 0x62, 0xB6, 0x6E, 0x71, 0xC9, 0x66, 0x80, 0x12, 0xE5, 0x83, 0x12, 0x8D, 0x09, 0xF5, 0xA8, 0xA3, 0x4B, 0x24, 0x0A, 0xBE, 0xD3, 0xE0, 0xFA, 0xA7, 0x12, 0x7D, 0x7F, 0x22, 0x72, 0x51, 0x50, 0xD8, 0x71, 0xC8, 0xB5, 0x58, 0x1E, 0xFE, 0xB7, 0xCC, 0x31, 0x27, 0xA2, 0xC3, 0x0F, 0xB0, 0x61, 0x62, 0x97, 0x08, 0x39, 0xC0, 0xD6, 0x13, 0xBB, 0xA4, 0xF8, 0xDB, 0x81, 0xD9, 0xC8, 0x82, 0xF6, 0x2C, 0xF0, 0x1C, 0xD9, 0x08, 0xDB, 0x9F, 0x4B, 0x83, 0xEF, 0x77, 0x8C, 0x01, 0xF2, 0x2A, 0xDC, 0xFA, 0x95, 0xC9, 0x37, 0xF5, 0xC3, 0x12, 0x67, 0xA8, 0xF6, 0x96, 0xB3, 0xD5, 0x97, 0x87, 0x42, 0x7D, 0xD4, 0xAD, 0xB4, 0x97, 0xFA, 0x45, 0xD4, 0x36, 0x6B, 0x92, 0xDA, 0xC3, 0x5B, 0xE3, 0x2F, 0xB7, 0x2F, 0xD7, 0xB2, 0xDF, 0x0B, 0xDA, 0x97, 0xC1, 0x20, 0x04, 0x9B, 0x05, 0xCF, 0xE9, 0x90, 0x26, 0xBD, 0xEE, 0x08, 0xE9, 0x8D, 0x85, 0x9A, 0x52, 0x8B, 0xF5, 0x2D, 0x67, 0x48, 0x23, 0x3F, 0xEF, 0x99, 0x4E, 0xDA, 0xF6, 0x81, 0x90, 0x26, 0x83, 0x90, 0x60, 0x41, 0xFA, 0x40, 0xB8, 0xB3, 0x4A, 0xAE, 0x8B, 0xD7, 0x85, 0x5A, 0xA0, 0x34, 0x50, 0xA5, 0x5A, 0x50, 0x25, 0x08, 0x47, 0xC7, 0x47, 0x6E, 0x9A, 0x35, 0xA1, 0xFB, 0xEF, 0xD6, 0x33, 0x15, 0xEE, 0xEF, 0x36, 0xBC, 0xFE, 0x64, 0xE8, 0xA4, 0x6D, 0x1B, 0x51, 0xE6, 0xDC, 0x4A, 0xA1, 0xB3, 0xC6, 0xAC, 0x6F, 0x08, 0xFF, 0xDE, 0xCC, 0xFD, 0xEB, 0x9D, 0xC8, 0xFB, 0xDB, 0xC6, 0x3C, 0xEC, 0x88, 0x7C, 0x35, 0x2E, 0x7B, 0xD2, 0xE2, 0xA4, 0x6C, 0x47, 0x5C, 0xED, 0x61, 0xC1, 0x45, 0xD1, 0x8E, 0xB8, 0x58, 0xF1, 0xE2, 0x9D, 0xDB, 0x9D, 0x71, 0x9D, 0x9B, 0x76, 0x89, 0x6A, 0x1B, 0x8C, 0x8B, 0xFC, 0x9D, 0x18, 0x23, 0x4A, 0x7F, 0xCE, 0x0B, 0x0F, 0xF7, 0x50, 0xA9, 0x2A, 0xE8, 0x64, 0x5A, 0xC3, 0x23, 0x15, 0x23, 0xFE, 0x94, 0xCC, 0x98, 0x98, 0xD7, 0x8F, 0xEE, 0x8F, 0x7C, 0x46, 0xB9, 0x9F, 0x6B, 0x18, 0xFD, 0xCB, 0x89, 0xE8, 0xE7, 0x27, 0x46, 0xBF, 0x6A, 0x74, 0x00, 0xC9, 0x26, 0x9D, 0x46, 0xCD, 0xE1, 0x51, 0xB3, 0x62, 0x9C, 0xC9, 0x9C, 0xB8, 0x75, 0xE7, 0x2E, 0xA7, 0xD1, 0xFE, 0x4B, 0x6D, 0x67, 0xDA, 0x1C, 0xC9, 0xAC, 0x79, 0x2B, 0xA7, 0xB9, 0xC6, 0xEC, 0xEB, 0x2D, 0x38, 0xFD, 0x33, 0x3C, 0xBB, 0x20, 0x2C, 0x6C, 0xF0, 0xE1, 0x47, 0xF1, 0xF5, 0x2C, 0x48, 0x46, 0xB4, 0x58, 0xD1, 0xC5, 0x85, 0xF7, 0xE6, 0xA4, 0xEC, 0x0F, 0xE9, 0x08, 0x5D, 0x90, 0x6C, 0x5C, 0xF2, 0x26, 0xBA, 0x40, 0xE9, 0xC1, 0x20, 0x63, 0x65, 0x98, 0xD2, 0x03, 0x55, 0xC7, 0x6A, 0x05, 0xA7, 0x26, 0x55, 0x4D, 0xFF, 0xE2, 0x91, 0x43, 0xD5, 0x63, 0x5B, 0xDA, 0x3A, 0x65, 0x9E, 0x73, 0x09, 0x7E, 0x3C, 0x10, 0x93, 0x19, 0xE3, 0xD8, 0x6D, 0x52, 0x2F, 0xCB, 0x37, 0x3B, 0x87, 0x76, 0xDB, 0x7D, 0xC5, 0x11, 0xC3, 0x15, 0xA5, 0x6C, 0xEC, 0x18, 0xA2, 0xE0, 0x2E, 0xF3, 0x58, 0x65, 0xC5, 0x5B, 0x60, 0xE3, 0x69, 0x45, 0x80, 0x79, 0xBA, 0x83, 0x53, 0xAC, 0xF2, 0xD3, 0x19, 0x97, 0xAB, 0x5D, 0xEB, 0xDB, 0x0C, 0x29, 0xF6, 0x4D, 0xE7, 0x9B, 0xF0, 0x9B, 0xED, 0x29, 0xE7, 0x1D, 0x27, 0x5A, 0x79, 0x18, 0xDE, 0x90, 0xC3, 0x88, 0xCA, 0x7B, 0xAF, 0xCC, 0xEB, 0xD3, 0xD4, 0xDD, 0x8E, 0x8D, 0xAB, 0x3F, 0x7A, 0xF4, 0xCA, 0xAD, 0xA1, 0x8D, 0x0B, 0x56, 0x51, 0x69, 0xFE, 0x6D, 0x67, 0xE0, 0xD2, 0xD1, 0xF9, 0xFA, 0xB8, 0xA1, 0xC0, 0x3B, 0x4C, 0xF3, 0x96, 0x0B, 0x63, 0xCD, 0x8E, 0x00, 0xE7, 0xDF, 0xC9, 0x7E, 0x6D, 0x28, 0xC0, 0x0C, 0x46, 0x14, 0x71, 0xCA, 0x22, 0x14, 0xE0, 0xF1, 0x48, 0x09, 0x13, 0x3D, 0x89, 0x2F, 0xB2, 0x20, 0xC2, 0xC0, 0xB6, 0xD2, 0x82, 0x3E, 0x23, 0x43, 0x91, 0xB7, 0x2E, 0xC1, 0xFB, 0xEF, 0xC7, 0x85, 0x1C, 0xFC, 0xF8, 0xCF, 0xF0, 0x82, 0x7E, 0x74, 0x59, 0x04, 0xD1, 0xD4, 0x6C, 0x2A, 0xBE, 0x26, 0x3C, 0x5F, 0x63, 0xE5, 0x09, 0x03, 0x3B, 0x4B, 0x97, 0x49, 0x4D, 0x34, 0x68, 0x95, 0xF7, 0xE7, 0x7C, 0xFF, 0x41, 0xD0, 0x3B, 0x52, 0x53, 0xF1, 0x20, 0x68, 0x15, 0xDF, 0xFF, 0x4B, 0x00, 0x3A, 0x89, 0x2C, 0x26, 0x54, 0x51, 0xD7, 0x19, 0x3E, 0xE6, 0x4E, 0x41, 0xBA, 0x6A, 0x8C, 0xA8, 0x16, 0xCA, 0x6F, 0x4A, 0x5A, 0x94, 0x47, 0xAA, 0xB4, 0xD0, 0xC8, 0xBA, 0xAB, 0x6C, 0x25, 0xEE, 0x09, 0x4E, 0x10, 0x72, 0xFF, 0xDE, 0xB3, 0xB9, 0x3B, 0x45, 0xCB, 0xD6, 0x1F, 0x5E, 0x01, 0x92, 0x6A, 0x7D, 0xF3, 0x2E, 0x98, 0xB7, 0xC1, 0x23, 0x5B, 0x86, 0xE7, 0x5B, 0xFD, 0xCF, 0x6F, 0xDD, 0x69, 0x5D, 0xD6, 0xA2, 0x2C, 0xA1, 0xE7, 0xD3, 0x17, 0xE5, 0x93, 0x2A, 0x98, 0x39, 0xB2, 0x73, 0x78, 0x7E, 0x60, 0xEF, 0xE7, 0xF5, 0x3B, 0xC9, 0xE2, 0x8E, 0x5E, 0x7A, 0xDE, 0x1C, 0x72, 0x4B, 0x9B, 0xE5, 0xFE, 0x7A, 0x51, 0x22, 0xEC, 0x62, 0x14, 0x44, 0x49, 0x69, 0xC2, 0x70, 0x77, 0xDD, 0x9B, 0x26, 0x7C, 0x0F, 0xD9, 0x04, 0xD1, 0xC4, 0x8C, 0xFB, 0x48, 0xB6, 0x37, 0x4A, 0xA5, 0xE3, 0x33, 0x11, 0x50, 0xD7, 0x84, 0x8E, 0xF0, 0x15, 0x4D, 0x56, 0x0C, 0x64, 0x22, 0x88, 0x47, 0x35, 0xAC, 0x62, 0xED, 0x98, 0xD8, 0x9E, 0xF2, 0x13, 0x02, 0x28, 0xC0, 0x10, 0x76, 0xF3, 0x93, 0x5C, 0xFF, 0x58, 0xB3, 0x13, 0xDB, 0x79, 0x71, 0xC5, 0x55, 0x08, 0x9C, 0x7A, 0x3C, 0x60, 0xB3, 0x6B, 0xD5, 0xBE, 0xAF, 0xA3, 0x98, 0x61, 0x80, 0xB1, 0x6C, 0x94, 0x42, 0xAD, 0xAE, 0x81, 0xE9, 0x4F, 0x2C, 0x31, 0x77, 0x3D, 0x00, 0x65, 0x70, 0x60, 0x7B, 0x97, 0x94, 0xB4, 0x4B, 0x5D, 0x1D, 0x58, 0x73, 0xE0, 0xCD, 0x71, 0xCC, 0xD1, 0x0E, 0x67, 0x0E, 0xAC, 0x5F, 0x7A, 0x11, 0x3F, 0x08, 0xE8, 0x62, 0x04, 0x03, 0x8E, 0x88, 0x4E, 0x00, 0x92, 0x50, 0xDC, 0xFD, 0x97, 0x24, 0x07, 0xC2, 0x57, 0xDA, 0x21, 0xDC, 0x69, 0xF3, 0xD1, 0xD4, 0x95, 0x5F, 0x51, 0x4E, 0x3D, 0xF6, 0x7D, 0xDF, 0xA6, 0x32, 0x25, 0x43, 0x36, 0x53, 0xDC, 0x7A, 0x58, 0x34, 0x59, 0xFC, 0x15, 0x90, 0x45, 0x85, 0x4F, 0xA5, 0x8C, 0xFC, 0x5E, 0x36, 0x99, 0x10, 0x14, 0x60, 0x69, 0x2C, 0x3C, 0xDB, 0xA7, 0x4D, 0xCA, 0xCE, 0x66, 0x5F, 0x25, 0xCD, 0x99, 0x11, 0xA5, 0x63, 0x45, 0x93, 0x63, 0xAA, 0x43, 0xA5, 0x7A, 0xED, 0x46, 0xDB, 0x8B, 0xAB, 0x5D, 0xEE, 0xD7, 0xCD, 0x86, 0x67, 0x5B, 0x47, 0x30, 0xD2, 0x9F, 0x74, 0xC5, 0x3D, 0x19, 0x34, 0xAA, 0x67, 0x02, 0x33, 0xC9, 0xD3, 0xB1, 0x95, 0xBA, 0x1B, 0x60, 0x53, 0x18, 0xA5, 0xD0, 0x03, 0x6B, 0xE0, 0x27, 0xC1, 0x54, 0x96, 0x7B, 0xE1, 0xC9, 0xC9, 0x83, 0x19, 0xA4, 0xD9, 0xA3, 0x3E, 0xA9, 0x74, 0x4D, 0x38, 0xB5, 0x57, 0xCD, 0xCC, 0xC4, 0x10, 0xB2, 0xA9, 0x8B, 0x3E, 0xFA, 0xCE, 0x8C, 0x98, 0x17, 0xF8, 0x19, 0xBB, 0xE6, 0x9A, 0x01, 0xB2, 0x50, 0x0B, 0x92, 0x54, 0x6F, 0x7D, 0x23, 0x75, 0x61, 0xA4, 0x49, 0xE5, 0x73, 0x17, 0x7F, 0x39, 0x59, 0xA5, 0x45, 0xBC, 0x70, 0xD2, 0xC6, 0xD9, 0x4B, 0x36, 0x59, 0xE9, 0x2C, 0xFA, 0xF9, 0x6E, 0xDB, 0xF7, 0x15, 0xFB, 0x47, 0x56, 0x87, 0xFF, 0xB7, 0xD7, 0xF6, 0xDE, 0xCE, 0xA8, 0x19, 0xB2, 0xD9, 0xF5, 0x4E, 0xED, 0xFA, 0x94, 0x25, 0x06, 0xA5, 0x87, 0x8E, 0x3C, 0x63, 0x7B, 0x87, 0x11, 0x5B, 0x9D, 0x95, 0xCC, 0x1C, 0xEB, 0xFC, 0xAD, 0xB0, 0x5D, 0xFC, 0x62, 0x9A, 0xBF, 0xB7, 0xEF, 0x0C, 0x0C, 0x72, 0x7D, 0x34, 0x05, 0xB9, 0x81, 0xA8, 0x60, 0x7C, 0xC1, 0x6B, 0x70, 0xBA, 0x4A, 0x01, 0x9E, 0xA2, 0x1A, 0xFA, 0x94, 0xBA, 0x68, 0x7A, 0xFA, 0x5D, 0x89, 0x8E, 0x77, 0xA4, 0xC5, 0xB4, 0xAE, 0xE5, 0xBB, 0x75, 0x4B, 0x73, 0x76, 0x48, 0xDD, 0x1E, 0x9E, 0x14, 0xD3, 0x8B, 0x38, 0x1A, 0x01, 0x8B, 0xF8, 0x5D, 0x0A, 0xD5, 0x6E, 0x80, 0xB9, 0x36, 0x40, 0x2F, 0xAC, 0x62, 0x40, 0x2F, 0x48, 0x7D, 0x0C, 0xD6, 0x56, 0xB0, 0x14, 0x43, 0x86, 0x48, 0x02, 0xB4, 0xE1, 0xDA, 0xAF, 0x08, 0x11, 0xDB, 0x49, 0xC5, 0xC3, 0xBE, 0x6D, 0xD1, 0x75, 0xDA, 0x51, 0x80, 0x6C, 0x17, 0x80, 0x85, 0xDA, 0xE6, 0x32, 0xAA, 0xE5, 0x6D, 0x61, 0xB9, 0xC0, 0x8F, 0xFE, 0x5D, 0xE5, 0xAD, 0x0C, 0x37, 0x24, 0x8E, 0x8D, 0xDD, 0xC5, 0x73, 0x0A, 0xED, 0x4D, 0xC5, 0x0E, 0xA5, 0x10, 0x9D, 0xD0, 0x78, 0xD8, 0xA7, 0x2D, 0xFA, 0x1C, 0x4C, 0x0B, 0x69, 0x80, 0xD0, 0x0B, 0x43, 0x44, 0x59, 0xA7, 0x53, 0x68, 0x89, 0x52, 0x72, 0x3D, 0x71, 0x3C, 0x10, 0x82, 0xE6, 0x8C, 0x5F, 0x8C, 0xE8, 0x86, 0x42, 0xA5, 0x6E, 0xF6, 0x19, 0x18, 0xEA, 0x33, 0xDD, 0xC5, 0x8C, 0xE8, 0xEA, 0xAC, 0x32, 0x66, 0x2A, 0x96, 0xCD, 0xEE, 0x01, 0xC5, 0x69, 0x61, 0xA9, 0xA8, 0xFA, 0x04, 0x50, 0xB3, 0x56, 0x0C, 0xD4, 0xAC, 0xB7, 0x8B, 0xCB, 0x50, 0x5C, 0x77, 0x7A, 0x68, 0xAD, 0xE7, 0xBB, 0x7D, 0xB0, 0xC5, 0xB7, 0x22, 0x0C, 0xA1, 0x5C, 0xF4, 0x58, 0x64, 0xFA, 0x81, 0x93, 0x52, 0x86, 0xD6, 0x45, 0x53, 0x0C, 0xD6, 0x05, 0x7D, 0x1E, 0x69, 0x06, 0xFA, 0x8C, 0x3D, 0xE1, 0x5D, 0x62, 0xDE, 0xF3, 0x7D, 0xFF, 0x7A, 0x16, 0xC8, 0xD7, 0x1D, 0xE8, 0x36, 0x7E, 0x5C, 0x61, 0x25, 0x77, 0x68, 0xB9, 0x0F, 0x44, 0x96, 0xE9, 0x9B, 0xDF, 0x24, 0x32, 0xBB, 0xE8, 0x63, 0xFE, 0x6A, 0xC0, 0x3D, 0xDE, 0x6F, 0xC8, 0xA4, 0x10, 0xB9, 0xD8, 0x53, 0x2E, 0x4E, 0x92, 0x17, 0xC6, 0xBE, 0x41, 0xFF, 0x32, 0x1D, 0xD4, 0xFF, 0x0D, 0xDF, 0xFD, 0xD3, 0x41, 0xFD, 0x32, 0x97, 0x89, 0x48, 0xA3, 0x5B, 0x1A, 0x04, 0xB2, 0x56, 0xA2, 0x61, 0x69, 0x67, 0x97, 0x38, 0xBD, 0xEE, 0x7A, 0x12, 0x51, 0xDE, 0xF3, 0xDD, 0x66, 0x7A, 0xCB, 0xE9, 0x64, 0x88, 0x57, 0xD7, 0xB5, 0x8C, 0x7E, 0xF0, 0x7B, 0x61, 0xD2, 0x78, 0x40, 0x59, 0xE9, 0x23, 0x38, 0xE1, 0x70, 0x92, 0xF2, 0x5F, 0x1E, 0x07, 0x53, 0x5D, 0x8F, 0xF3, 0x5C, 0x8F, 0xB7, 0xBB, 0x3E, 0xBE, 0x26, 0xB1, 0xF9, 0x3B, 0x33, 0x37, 0x7D, 0x89, 0x61, 0xF2, 0x0A, 0x3A, 0x09, 0x5E, 0x66, 0x3E, 0x1E, 0xBF, 0x18, 0x06, 0x8C, 0xAE, 0x0B, 0x0E, 0x44, 0x50, 0x74, 0x3F, 0xC2, 0xB8, 0x95, 0xC4, 0x76, 0xC6, 0xB8, 0x77, 0xA6, 0xF0, 0xD9, 0x17, 0x11, 0x83, 0x31, 0x1A, 0x30, 0x89, 0x48, 0xAA, 0x92, 0x8D, 0xDA, 0xEB, 0x92, 0x07, 0x31, 0x5C, 0xD3, 0xEE, 0x03, 0x08, 0x17, 0x40, 0xBA, 0xDA, 0x66, 0xFA, 0x1D, 0x57, 0x91, 0x53, 0xC7, 0x57, 0x29, 0xC6, 0x55, 0x29, 0x26, 0x1C, 0x9C, 0xDE, 0xE8, 0x96, 0xAB, 0x99, 0x4E, 0x12, 0x97, 0x2B, 0x59, 0x6B, 0x78, 0x69, 0xDB, 0xA6, 0x2F, 0x81, 0xFD, 0x00, 0x0D, 0x9F, 0x3B, 0xEC, 0xD3, 0xE9, 0xB4, 0xA9, 0x84, 0x67, 0xDF, 0x56, 0xF7, 0xC7, 0x2A, 0xF7, 0xC7, 0x3C, 0x41, 0x7D, 0x87, 0x44, 0x1B, 0xE0, 0xF0, 0x29, 0xFC, 0x8D, 0x55, 0x55, 0xF2, 0xC3, 0x74, 0x35, 0xBD, 0x7A, 0x80, 0x4F, 0x56, 0x19, 0x1D, 0xF0, 0x5A, 0x2B, 0x4B, 0x7B, 0x41, 0x2B, 0xD1, 0x3A, 0xD7, 0xF4, 0xDB, 0x0F, 0x82, 0xBD, 0x77, 0x1D, 0xA2, 0xD7, 0x34, 0xC9, 0xD3, 0xA6, 0xC2, 0x58, 0x64, 0xED, 0xA1, 0x93, 0x94, 0xBB, 0x94, 0xD4, 0x8E, 0x71, 0xAE, 0xE5, 0x3D, 0xCB, 0x39, 0xA1, 0x01, 0x9C, 0x94, 0x69, 0x15, 0x1D, 0x11, 0x15, 0x1D, 0x65, 0x15, 0xC5, 0xB9, 0x3B, 0x28, 0x77, 0xA3, 0x70, 0xA0, 0x6B, 0x07, 0x48, 0x7E, 0x8D, 0xFB, 0x0B, 0x51, 0xC4, 0xF8, 0x96, 0x43, 0x7F, 0x91, 0xEE, 0xB0, 0xEA, 0x54, 0x90, 0xD6, 0xE5, 0xF3, 0xE1, 0x72, 0xB5, 0x5F, 0xAA, 0x6A, 0x88, 0x48, 0x3F, 0x14, 0x5F, 0x18, 0x1C, 0x5F, 0x78, 0x20, 0xE1, 0xF9, 0xA1, 0x0C, 0xC6, 0x64, 0xC7, 0xEF, 0xB2, 0x82, 0x3D, 0x33, 0xA7, 0x99, 0x0A, 0x72, 0x63, 0xC5, 0x58, 0xA4, 0x2A, 0x14, 0xAC, 0x85, 0x52, 0x08, 0x2F, 0x77, 0x6F, 0x61, 0x23, 0x27, 0xF1, 0xF7, 0x21, 0x8E, 0xAE, 0x82, 0x31, 0x6E, 0xD8, 0xB9, 0xE2, 0x35, 0xA1, 0x44, 0xE4, 0xC7, 0x0E, 0xE7, 0xBC, 0x80, 0x73, 0x09, 0x1F, 0x9F, 0xB4, 0x7A, 0x49, 0x49, 0x38, 0x71, 0xD8, 0xB9, 0x35, 0xBB, 0x42, 0xE3, 0x39, 0x9A, 0x0D, 0x5B, 0x9E, 0xE4, 0x6C, 0x79, 0xD2, 0xB2, 0xC5, 0x9E, 0xBB, 0x03, 0xF2, 0x74, 0x6C, 0x28, 0x7D, 0xF8, 0xDB, 0xE3, 0x83, 0x0B, 0xC1, 0x86, 0xA2, 0x1C, 0x4B, 0xF2, 0x21, 0x7B, 0x47, 0x9A, 0x58, 0x50, 0x40, 0xD2, 0x4B, 0xB2, 0x52, 0xAF, 0x02, 0x4B, 0x32, 0xC9, 0xF6, 0x8E, 0xF8, 0x23, 0x29, 0x91, 0xA9, 0xA1, 0x57, 0xCE, 0xFC, 0x89, 0x3F, 0x8C, 0x10, 0x1E, 0xFA, 0x32, 0x47, 0xCE, 0x73, 0xE4, 0xAF, 0xEE, 0xAD, 0x4F, 0xAF, 0x27, 0xDA, 0x34, 0x4C, 0x7E, 0x25, 0xE0, 0xD1, 0x7E, 0xE5, 0x72, 0xE2, 0x0D, 0x29, 0x67, 0x87, 0xEB, 0x13, 0x44, 0xD7, 0x6D, 0xA4, 0xBC, 0xDB, 0xC9, 0x1D, 0x36, 0xB7, 0xE9, 0xE2, 0xEA, 0x50, 0xC2, 0x05, 0x2F, 0xA3, 0xFF, 0x7E, 0xF5, 0x36, 0xDD, 0x8C, 0x89, 0xD8, 0x03, 0xF2, 0xB2, 0x85, 0x25, 0xF3, 0xCF, 0xF3, 0x49, 0x12, 0xD7, 0xEA, 0x5F, 0xD3, 0x8F, 0x42, 0x56, 0x58, 0xB2, 0x72, 0x4A, 0xCD, 0xDC, 0x53, 0xF8, 0x71, 0xDE, 0x75, 0xDB, 0x0E, 0xD8, 0x5B, 0x37, 0xDE, 0x1E, 0xDD, 0x2F, 0x57, 0xB1, 0xDE, 0x36, 0xBE, 0x47, 0x83, 0x55, 0x23, 0x68, 0x30, 0x19, 0x04, 0xC0, 0x8D, 0x6F, 0xD2, 0x60, 0x68, 0x13, 0x0D, 0xCE, 0xE4, 0x03, 0xB0, 0x56, 0x42, 0x83, 0xAB, 0xA7, 0x00, 0x30, 0x5A, 0x47, 0x83, 0xCD, 0x23, 0x69, 0xB0, 0x9D, 0x06, 0xEB, 0xDF, 0xA6, 0xC1, 0x82, 0x0A, 0x1A, 0xFC, 0x31, 0x0D, 0x96, 0x8D, 0xA5, 0xC1, 0x67, 0x94, 0xB4, 0x66, 0xFB, 0xA0, 0x66, 0x21, 0x0D, 0xD6, 0x04, 0x03, 0x30, 0x73, 0x19, 0x0D, 0x16, 0x6D, 0x85, 0xDC, 0x4F, 0xE1, 0xE3, 0x46, 0xD0, 0x6E, 0xCC, 0x60, 0x4C, 0xB0, 0x47, 0x3F, 0x9A, 0x46, 0x6B, 0x9E, 0xC3, 0xEE, 0x27, 0x2F, 0xF3, 0xC6, 0xD0, 0xE0, 0xAE, 0x50, 0xAB, 0xFE, 0x35, 0xC5, 0x25, 0x1A, 0x6C, 0xD9, 0x39, 0x08, 0xF6, 0xA0, 0xC1, 0xF9, 0x34, 0xF8, 0xE8, 0x0C, 0x1A, 0x7C, 0x9E, 0x06, 0xB7, 0xC7, 0xD3, 0xE0, 0xF4, 0x70, 0x00, 0x6E, 0xFC, 0x9E, 0x06, 0xD7, 0xEE, 0xA5, 0xDD, 0x38, 0x4D, 0x83, 0xC5, 0x2B, 0x69, 0x37, 0x1E, 0xBE, 0x49, 0xBB, 0x71, 0x9B, 0x0D, 0xDC, 0xE8, 0x4F, 0xA4, 0xC1, 0x0D, 0xE1, 0x74, 0x80, 0x4F, 0x69, 0x70, 0xCB, 0x3E, 0x1A, 0xFC, 0xDB, 0xA0, 0x66, 0x03, 0x0D, 0xAE, 0x54, 0xD1, 0x60, 0x0F, 0x0E, 0x9D, 0x3A, 0x39, 0x0D, 0x9E, 0x1F, 0x41, 0x07, 0x88, 0xBB, 0xD0, 0xD9, 0x38, 0x30, 0x98, 0x0D, 0x4F, 0x00, 0xB6, 0x95, 0xD3, 0x60, 0x73, 0xAA, 0xEA, 0x4F, 0xAF, 0x72, 0xC1, 0x2F, 0x5D, 0xE9, 0x89, 0x25, 0x0B, 0x8B, 0xD4, 0xF9, 0x9A, 0xBC, 0xAC, 0xC2, 0x57, 0xDE, 0xF7, 0x62, 0xBE, 0xF4, 0x8E, 0x19, 0x3C, 0x88, 0xCB, 0x2D, 0xA0, 0xDF, 0x2B, 0x88, 0x7E, 0x05, 0xF7, 0xF2, 0x3B, 0x69, 0x2F, 0xE3, 0x62, 0x5E, 0xC1, 0xB9, 0xFC, 0x1B, 0x9C, 0x66, 0x45, 0x71, 0xD4, 0xAB, 0xEF, 0xD0, 0x31, 0x5E, 0x7A, 0xF7, 0x6C, 0x08, 0xB7, 0x32, 0x2B, 0x77, 0x49, 0x4E, 0x71, 0xD1, 0x2B, 0x38, 0xD6, 0xFF, 0x81, 0xCB, 0xCC, 0x55, 0x17, 0x65, 0xBD, 0x0A, 0x1B, 0xFC, 0xCF, 0xC5, 0x9F, 0x71, 0xCB, 0x56, 0x14, 0x2F, 0xCC, 0x5C, 0x91, 0xFD, 0x6F, 0xDE, 0xDF, 0xC3, 0x5E, 0xC2, 0xFD, 0x17, 0x5E, 0x7D, 0xC5, 0x0A -}; diff --git a/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.spv.inl b/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.spv.inl deleted file mode 100644 index 20a74ea1d..000000000 --- a/internal/shaders/output/convolution_concat_64_6_64_fp16.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_6_64_fp16.comp.spv */ -const int internal_shaders_output_convolution_concat_64_6_64_fp16_comp_spv_size = 4916; -const unsigned char internal_shaders_output_convolution_concat_64_6_64_fp16_comp_spv[4916] = { - 0x78, 0xDA, 0x7D, 0x5B, 0x07, 0xB8, 0x55, 0xC5, 0xB5, 0x3E, 0x33, 0xFB, 0x70, 0xE9, 0x06, 0x62, 0xA1, 0x8A, 0x14, 0x15, 0x23, 0x82, 0x48, 0xA8, 0x41, 0xB8, 0x94, 0x5C, 0x40, 0xA4, 0x24, 0x41, 0x08, 0x11, 0x10, 0x90, 0x2B, 0x1A, 0x82, 0x22, 0x4F, 0x40, 0x44, 0x54, 0xF0, 0xC5, 0x58, 0x68, 0x1A, 0x44, 0xC8, 0xF7, 0xC4, 0x06, 0xE6, 0x0B, 0xE0, 0x0B, 0x58, 0xB8, 0xA0, 0x80, 0x11, 0x02, 0x04, 0x22, 0x44, 0x63, 0xF0, 0x3D, 0xE9, 0x1D, 0x51, 0x9A, 0x0D, 0x41, 0x51, 0x79, 0xB3, 0xF6, 0xFA, 0xD7, 0x3D, 0xFF, 0x99, 0xE0, 0xE3, 0xFB, 0x36, 0xE7, 0xAC, 0x7F, 0xF5, 0x35, 0x6B, 0x66, 0xCF, 0x9E, 0xB3, 0x6F, 0xE2, 0x1B, 0x94, 0xCD, 0x24, 0x2E, 0x53, 0x31, 0x53, 0x2E, 0x73, 0x4F, 0x36, 0x93, 0xFE, 0xAB, 0x9A, 0xF1, 0x19, 0x87, 0xCF, 0xF2, 0xF8, 0xFC, 0x79, 0xD5, 0x4C, 0x90, 0x29, 0x48, 0xF1, 0xAE, 0x3D, 0xFA, 0xF4, 0x68, 0x72, 0xD7, 0x98, 0xE2, 0x26, 0xCD, 0x5B, 0x34, 0x15, 0xF9, 0xF3, 0x32, 0x49, 0xAA, 0x27, 0xBC, 0x1F, 0x64, 0xCA, 0x66, 0xCA, 0x84, 0x4F, 0x31, 0x75, 0xFB, 0xD0, 0x5F, 0xDF, 0x21, 0xF8, 0x2F, 0xC3, 0x35, 0x20, 0x5C, 0x55, 0x82, 0x7E, 0x36, 0xB5, 0x27, 0xDF, 0x55, 0xBE, 0x5C, 0xB8, 0xBA, 0x05, 0x8D, 0x8E, 0xEA, 0x3A, 0xD3, 0x00, 0x9F, 0x86, 0x39, 0x60, 0x55, 0x08, 0xF3, 0xC0, 0xAA, 0x13, 0x96, 0x00, 0xAB, 0x4D, 0x58, 0x16, 0x58, 0x5D, 0xC2, 0xCA, 0x00, 0xBB, 0x94, 0xB0, 0x02, 0x60, 0x57, 0x10, 0x56, 0x16, 0xD8, 0x55, 0x84, 0x95, 0x03, 0xD6, 0x94, 0xB0, 0xF2, 0xC0, 0x5A, 0x03, 0xEB, 0x14, 0xE5, 0xD1, 0x35, 0x44, 0xD6, 0x09, 0x31, 0x77, 0x0D, 0x11, 0x49, 0x2D, 0x2A, 0x86, 0xAB, 0x26, 0xE8, 0x01, 0xA0, 0x6B, 0x81, 0xFE, 0x13, 0xE2, 0xF1, 0xA9, 0xBD, 0x6C, 0x66, 0x01, 0xEC, 0x9C, 0x1F, 0xD1, 0x96, 0xFB, 0x82, 0x73, 0xF8, 0x5B, 0x40, 0xFE, 0x16, 0x85, 0xCF, 0xFA, 0xA5, 0x3C, 0xA5, 0xEB, 0x21, 0x17, 0xA1, 0x77, 0x47, 0xFE, 0xF6, 0x44, 0xFE, 0xF6, 0x44, 0xFE, 0xF6, 0x9C, 0xC3, 0xDF, 0x1E, 0xF2, 0xB7, 0x2F, 0xF2, 0xB7, 0x0F, 0xFE, 0x8C, 0x7F, 0xAD, 0xCB, 0xF7, 0xD7, 0xCE, 0xE5, 0xFB, 0x33, 0xDA, 0xFC, 0x19, 0xCD, 0xFE, 0x04, 0x33, 0x7B, 0x85, 0x2E, 0xDF, 0x9F, 0xD0, 0xF5, 0x30, 0x7E, 0x42, 0x1F, 0x89, 0xF8, 0x47, 0xC0, 0xCF, 0x82, 0x3E, 0x11, 0xF1, 0x4F, 0x80, 0x9F, 0x80, 0xBE, 0xDA, 0xE7, 0xF3, 0x85, 0xAE, 0x87, 0x3E, 0x12, 0x3A, 0x49, 0xF2, 0xF3, 0xC9, 0x26, 0xF9, 0xF9, 0x18, 0x5D, 0x03, 0xF9, 0x18, 0xCD, 0xF9, 0x08, 0x66, 0xF9, 0x14, 0x24, 0xF9, 0xFE, 0x84, 0xAE, 0x57, 0x3A, 0x26, 0x3E, 0x95, 0xAB, 0x17, 0x74, 0x12, 0xF8, 0xBC, 0x28, 0x7C, 0x2B, 0x40, 0x8F, 0xD7, 0x0D, 0xF2, 0x65, 0x91, 0x7B, 0x41, 0x2A, 0x97, 0x4D, 0xC7, 0xB9, 0x00, 0xD8, 0x85, 0x81, 0xAE, 0x04, 0x59, 0x07, 0xF9, 0xCA, 0xE0, 0x55, 0x4A, 0xE5, 0x0B, 0xC2, 0x5C, 0xD6, 0xEF, 0x95, 0xE9, 0x6A, 0x24, 0x71, 0xA4, 0xFA, 0x99, 0xCC, 0x5B, 0xDF, 0xFE, 0xAB, 0xC5, 0x05, 0xC1, 0xF3, 0x45, 0x84, 0x5F, 0x1C, 0xAE, 0x85, 0xBD, 0xE7, 0xB5, 0x37, 0x5A, 0xE2, 0xEF, 0x77, 0x2C, 0x69, 0x67, 0xF4, 0xE5, 0xE1, 0x3A, 0xF0, 0xDF, 0xEF, 0x15, 0x1A, 0x2D, 0xF3, 0xEC, 0xFE, 0x5D, 0x3B, 0x4A, 0xE5, 0x1B, 0x85, 0xEB, 0xCE, 0xB5, 0x1D, 0x56, 0x18, 0x2D, 0xF3, 0xEB, 0x60, 0x97, 0xA2, 0x52, 0x7E, 0xB3, 0x70, 0xED, 0xA9, 0xBF, 0xB9, 0xAD, 0xD1, 0x2D, 0xC3, 0xF5, 0xFB, 0x17, 0x1F, 0x48, 0xED, 0x49, 0xAC, 0x6D, 0xC3, 0xD5, 0x01, 0xF9, 0xB5, 0x43, 0x7E, 0xF2, 0xAF, 0x5A, 0xA0, 0xDB, 0x87, 0xCF, 0x76, 0x18, 0x6F, 0xA1, 0x0B, 0xA9, 0xDF, 0x85, 0xEE, 0x00, 0xBE, 0xD0, 0x75, 0x82, 0x35, 0x99, 0xD3, 0xA2, 0x53, 0x88, 0x3A, 0xF0, 0x55, 0x80, 0xCF, 0x0E, 0xB8, 0xEA, 0x60, 0x6E, 0x77, 0x44, 0x2D, 0x3B, 0x63, 0x3D, 0xE8, 0x94, 0xC6, 0xA4, 0xF4, 0x4F, 0x81, 0x59, 0xAC, 0x45, 0x88, 0xCD, 0xE8, 0x2E, 0x88, 0x4D, 0xF4, 0xBB, 0x42, 0xB6, 0x12, 0x62, 0xFB, 0x05, 0xBE, 0x27, 0xA0, 0xFB, 0x22, 0xD6, 0x04, 0xF2, 0xFD, 0x30, 0x8E, 0x7D, 0xE1, 0xAF, 0x1F, 0xD6, 0x5A, 0x47, 0xF4, 0x00, 0xD0, 0xE6, 0x6F, 0x30, 0xEA, 0xD3, 0x08, 0xB5, 0x1A, 0x12, 0xC5, 0x53, 0x8C, 0x5A, 0x18, 0x7F, 0x04, 0xE9, 0x0B, 0x3D, 0x8A, 0xF8, 0x22, 0x3F, 0x1E, 0x31, 0x4B, 0x3C, 0xF7, 0xE0, 0x7B, 0x3B, 0xF4, 0xE5, 0x5C, 0xAC, 0xDB, 0xA6, 0xFB, 0x0C, 0x72, 0xAD, 0x1D, 0xFE, 0x7F, 0x36, 0x7C, 0xCE, 0x05, 0x26, 0xF4, 0x73, 0xE1, 0xF3, 0x59, 0xD8, 0x17, 0x5B, 0xCF, 0xA3, 0x2F, 0x9F, 0x4B, 0xFB, 0x2B, 0x49, 0xD7, 0xC5, 0xB9, 0xA8, 0xB9, 0xAC, 0x6F, 0x7F, 0x82, 0xDC, 0x42, 0xD4, 0x68, 0x01, 0x72, 0x16, 0x7A, 0x11, 0x30, 0xE1, 0x2F, 0xC6, 0xF7, 0xB9, 0xA0, 0x5F, 0x81, 0xDD, 0xB9, 0x94, 0x43, 0x49, 0x54, 0xA3, 0xD5, 0xD2, 0xE7, 0x88, 0x6B, 0x3B, 0x64, 0x2D, 0xAE, 0x1D, 0xD0, 0xDF, 0x8E, 0xB8, 0x76, 0x53, 0x5C, 0xB2, 0x0E, 0xEE, 0x86, 0xDC, 0x5E, 0xF8, 0xDD, 0x83, 0xB8, 0x84, 0xDE, 0x07, 0xCC, 0xFC, 0x1C, 0x0E, 0xD7, 0xD9, 0xF0, 0x4F, 0xEC, 0xC8, 0xBA, 0x68, 0x76, 0x64, 0x7D, 0x13, 0x5A, 0xEC, 0xB4, 0x77, 0xAA, 0x23, 0x58, 0x5B, 0xD0, 0x85, 0x2E, 0xDF, 0x4E, 0x67, 0xA7, 0x3D, 0x61, 0xF4, 0xA0, 0x40, 0x4F, 0x72, 0x39, 0xFA, 0xAD, 0xF0, 0xFD, 0x87, 0xC4, 0xDF, 0x84, 0x35, 0xD8, 0xE6, 0xD3, 0x0E, 0x5D, 0x63, 0x0B, 0xAF, 0x0A, 0xEB, 0x93, 0xF4, 0xFD, 0x4E, 0xA7, 0xD8, 0x0E, 0xC4, 0xB0, 0xDB, 0xE9, 0xB8, 0x16, 0xA6, 0xEB, 0x58, 0xF9, 0xCC, 0x47, 0xD0, 0xC7, 0xD2, 0x5C, 0xFA, 0xCF, 0x68, 0xD1, 0xF9, 0x18, 0xC4, 0x47, 0x88, 0x5B, 0xE8, 0x23, 0xC0, 0x6A, 0x86, 0x0E, 0x3A, 0x06, 0xDB, 0xC7, 0x81, 0x1D, 0x83, 0x9C, 0xD0, 0x27, 0x80, 0xD5, 0x0A, 0x59, 0x7D, 0xEA, 0xD4, 0x86, 0xC5, 0xFA, 0x85, 0xCB, 0xCD, 0xED, 0x93, 0xA8, 0x83, 0x4F, 0xEF, 0xD3, 0x65, 0x52, 0xFA, 0x4B, 0xA7, 0x75, 0x3D, 0x0C, 0x99, 0x53, 0x88, 0x35, 0x4B, 0x32, 0x65, 0xBC, 0xF2, 0x8B, 0x08, 0x3B, 0x1F, 0x58, 0x09, 0x61, 0xF5, 0x80, 0x15, 0x67, 0x72, 0x39, 0xC8, 0xFA, 0xCF, 0xF3, 0x65, 0x64, 0xA0, 0x3B, 0x78, 0xA5, 0x65, 0xFC, 0x4E, 0x83, 0x2F, 0x63, 0x2A, 0xF7, 0x06, 0x1B, 0x53, 0x59, 0xE3, 0x85, 0x96, 0x9C, 0xCB, 0x24, 0x1A, 0xB7, 0x60, 0x6D, 0x41, 0x17, 0x24, 0xF9, 0x63, 0x7A, 0x71, 0xA2, 0xF7, 0x68, 0xA3, 0xC7, 0x86, 0x04, 0x1E, 0xF1, 0x39, 0x7A, 0x5C, 0xA0, 0xFB, 0x13, 0x7D, 0x77, 0xA0, 0xEF, 0xF4, 0xB9, 0x3A, 0x8D, 0x0F, 0x74, 0xA5, 0x3E, 0x7B, 0x3B, 0xB7, 0x0C, 0xB9, 0x78, 0xE4, 0x9F, 0xC1, 0xDA, 0x71, 0x3A, 0x20, 0x65, 0x90, 0x93, 0xAC, 0xEF, 0xD3, 0xD0, 0xD3, 0x46, 0xCF, 0x22, 0x5A, 0xE6, 0xE1, 0x0B, 0x11, 0xFD, 0x62, 0x24, 0xFF, 0x46, 0x44, 0x6F, 0x24, 0x5A, 0xE6, 0xCB, 0xCE, 0x88, 0x7F, 0x30, 0xE2, 0x9F, 0x89, 0xE8, 0xCA, 0x2E, 0x9F, 0xBE, 0xC4, 0xE5, 0xEB, 0xFF, 0x38, 0xA2, 0x87, 0x45, 0xF4, 0xEB, 0x11, 0xBD, 0x26, 0xB2, 0xF7, 0x21, 0xD1, 0xF2, 0xF9, 0x75, 0xC4, 0x3F, 0x1B, 0xF1, 0xCB, 0xF9, 0x28, 0x3E, 0x9F, 0xCF, 0xBF, 0x28, 0xE2, 0xD7, 0x8A, 0xF8, 0x97, 0xFA, 0xFC, 0x78, 0x06, 0x45, 0xF4, 0xD4, 0x88, 0xDE, 0x17, 0xD1, 0x1F, 0x47, 0xF4, 0xB5, 0x49, 0x3E, 0xDD, 0x2D, 0xA2, 0xFB, 0x47, 0xF4, 0xF8, 0x88, 0xBE, 0x27, 0xA2, 0x27, 0x44, 0xF4, 0xA3, 0x11, 0xFD, 0x58, 0x44, 0x4F, 0x89, 0xE8, 0x67, 0x22, 0xFA, 0xD9, 0x88, 0x7E, 0x2E, 0xA2, 0x5F, 0x8D, 0xE8, 0xD7, 0x22, 0x7A, 0x69, 0x44, 0xAF, 0x8D, 0xE8, 0x75, 0x11, 0xBD, 0x3E, 0xA2, 0xB7, 0x46, 0xF4, 0xB6, 0x88, 0xDE, 0x1E, 0xD1, 0x1F, 0x47, 0xF4, 0x91, 0x88, 0x3E, 0x1A, 0xD1, 0x67, 0x23, 0x5A, 0x26, 0x17, 0xD3, 0x0E, 0xF4, 0xA9, 0x30, 0xDB, 0x7A, 0x61, 0xE2, 0x9D, 0x09, 0xDF, 0xE5, 0x5E, 0xDB, 0x3B, 0xAB, 0xF3, 0x4F, 0x3E, 0xDB, 0xE1, 0x9E, 0xDE, 0x1F, 0xF7, 0xED, 0x89, 0xB8, 0xE7, 0xFF, 0x0A, 0x98, 0xF1, 0x07, 0xE2, 0x3E, 0x6E, 0xFC, 0x41, 0xC0, 0x7E, 0x1E, 0x66, 0xB1, 0xCC, 0xFD, 0x9B, 0xA1, 0x23, 0xFF, 0x7E, 0x0B, 0x6C, 0x18, 0xEE, 0xF5, 0x37, 0x93, 0xDC, 0x70, 0xE8, 0xB2, 0xDC, 0xAD, 0x58, 0xDF, 0x84, 0x37, 0x09, 0xD8, 0x6D, 0xD0, 0xBF, 0x95, 0x74, 0x47, 0xC2, 0x87, 0x23, 0xDD, 0xDB, 0x81, 0x17, 0x93, 0xDC, 0x68, 0xC8, 0x79, 0x92, 0xFB, 0x0F, 0xE0, 0x83, 0x49, 0x6E, 0x0C, 0x62, 0x61, 0xB9, 0xB1, 0xD8, 0x0F, 0x8D, 0xA1, 0x58, 0xC6, 0x41, 0x7F, 0x6C, 0xBA, 0xCF, 0x2A, 0x9B, 0xEE, 0x31, 0x26, 0x60, 0x5F, 0x55, 0x84, 0xFD, 0xC7, 0x10, 0xD4, 0x4A, 0xF6, 0x18, 0xF7, 0x82, 0x3F, 0x11, 0xEB, 0xE2, 0x44, 0x60, 0x8B, 0x83, 0x3D, 0xD9, 0xB3, 0xDE, 0x87, 0xFC, 0x26, 0xA6, 0x7B, 0x88, 0x6C, 0x8A, 0xDD, 0x0F, 0x5C, 0xC6, 0x6B, 0x12, 0xEA, 0xF3, 0x75, 0xE0, 0x09, 0xFE, 0x40, 0x1A, 0x8B, 0x8E, 0xD9, 0x03, 0x14, 0xC3, 0x83, 0x51, 0x0C, 0x23, 0x28, 0x86, 0xFF, 0x04, 0xDF, 0x62, 0xF8, 0x2D, 0x30, 0x8B, 0xE1, 0x21, 0xD4, 0x4E, 0xF0, 0xAF, 0x82, 0x5D, 0xB3, 0x2F, 0x9F, 0x27, 0x83, 0x7D, 0x91, 0xF9, 0x1D, 0x62, 0x92, 0x3E, 0x79, 0x08, 0x71, 0x98, 0xFE, 0x23, 0xA8, 0x8B, 0xEC, 0x7B, 0xFF, 0x08, 0xEC, 0x51, 0xE8, 0x3C, 0x82, 0x3C, 0xA6, 0x50, 0x1E, 0xC2, 0x7B, 0x4C, 0xE6, 0x2D, 0xFC, 0x3C, 0x06, 0xBF, 0xBD, 0xD0, 0x8B, 0x53, 0xD2, 0x3D, 0x6F, 0x92, 0xDE, 0x07, 0x8A, 0xC0, 0x9B, 0x0E, 0xD9, 0xE9, 0xC8, 0x4B, 0xF2, 0x98, 0x89, 0x7B, 0xC5, 0xCB, 0xF0, 0xF9, 0x24, 0x30, 0x19, 0xFF, 0x2F, 0x83, 0xCC, 0xE3, 0xE1, 0xF3, 0x09, 0xF2, 0x2B, 0xFC, 0x19, 0xE1, 0x7A, 0x1C, 0xB6, 0x66, 0xC0, 0xCF, 0x2C, 0xF2, 0xF3, 0x14, 0x78, 0x4F, 0x91, 0x9F, 0xFF, 0xC2, 0x3D, 0xC8, 0xFC, 0x3C, 0x0D, 0xAC, 0x0B, 0xFC, 0xCC, 0x09, 0x9F, 0xB3, 0xC9, 0xCF, 0xD3, 0xA0, 0xE7, 0xC0, 0xD6, 0x6C, 0xB2, 0x35, 0x0F, 0x31, 0x1B, 0x3D, 0x1F, 0xB6, 0xAD, 0xBF, 0xFE, 0x8C, 0x5A, 0xCE, 0x4F, 0xC7, 0xB6, 0x20, 0xDD, 0x2F, 0x2E, 0xC1, 0x1E, 0xB2, 0x08, 0xFC, 0x76, 0xB8, 0xB7, 0xBF, 0x0C, 0x9E, 0xC8, 0xC9, 0x3E, 0xF2, 0x55, 0xDC, 0x0B, 0xE7, 0x41, 0x5F, 0x72, 0x7B, 0x15, 0x72, 0x26, 0xF3, 0x1A, 0xEE, 0x9F, 0x2C, 0xF3, 0x1A, 0x64, 0x2C, 0xA6, 0xA5, 0x51, 0x4C, 0xCB, 0x80, 0x95, 0x50, 0xBD, 0x96, 0x45, 0xF5, 0x9A, 0x03, 0xFA, 0x09, 0xD0, 0x4F, 0x90, 0xBD, 0xE5, 0xC8, 0xD9, 0xEC, 0xBD, 0x0E, 0xAC, 0x84, 0xC6, 0xF9, 0xF5, 0x68, 0x9C, 0x1F, 0x07, 0xEF, 0x0D, 0x1A, 0x9B, 0x15, 0xE0, 0xAD, 0x20, 0xDB, 0x6F, 0xE1, 0x7E, 0x6F, 0x63, 0xB3, 0x06, 0xD8, 0x6A, 0x8C, 0xCD, 0xAA, 0xF0, 0xF9, 0x26, 0x8D, 0x8D, 0xF0, 0x57, 0x86, 0x6B, 0x15, 0x6C, 0xAD, 0x24, 0x5B, 0x6B, 0x61, 0xEB, 0x61, 0xC4, 0xB9, 0x0E, 0x58, 0xDB, 0xB4, 0x57, 0x15, 0xDB, 0x40, 0x98, 0xC4, 0xB7, 0x91, 0xE2, 0xFB, 0x3B, 0x6C, 0xFE, 0x9D, 0x6C, 0xBE, 0x83, 0xFD, 0x87, 0xC5, 0xF7, 0x2E, 0x30, 0xEB, 0xD1, 0x4D, 0xE1, 0x73, 0x33, 0xC5, 0x27, 0xFC, 0xB7, 0x65, 0x4F, 0x0C, 0x5B, 0x6F, 0x53, 0xDD, 0xB6, 0x60, 0xAD, 0x58, 0x47, 0xF6, 0xDF, 0x87, 0x7D, 0x93, 0xF9, 0x1F, 0xC8, 0xBD, 0x4F, 0xD8, 0x07, 0xC0, 0x4B, 0x28, 0xB7, 0xAD, 0xC0, 0x8B, 0xD3, 0xB5, 0x41, 0xB1, 0x6D, 0xC0, 0x45, 0x6E, 0x21, 0xE2, 0x3D, 0x80, 0xB5, 0xA1, 0x08, 0xF3, 0xF8, 0x43, 0x8A, 0x55, 0x78, 0x87, 0x64, 0x4F, 0x8D, 0x58, 0x3F, 0x22, 0x5B, 0x47, 0xA0, 0xC7, 0x3E, 0x8F, 0x02, 0x2F, 0x46, 0xED, 0x0E, 0x02, 0x93, 0xDA, 0x7D, 0x08, 0x1B, 0x87, 0x88, 0x77, 0x38, 0xE2, 0x7D, 0x48, 0x79, 0x1F, 0xC3, 0xBE, 0xCD, 0x72, 0x3C, 0x0E, 0xAC, 0x04, 0xBD, 0x2E, 0xCF, 0xAE, 0x27, 0x68, 0x4D, 0x2C, 0x26, 0xDD, 0x4F, 0xC0, 0xB3, 0x75, 0xFE, 0x53, 0xE8, 0x7F, 0x42, 0xF6, 0x3E, 0x07, 0xBE, 0x8D, 0xB0, 0x2F, 0x80, 0x97, 0x90, 0xEE, 0x49, 0xF4, 0xC2, 0x17, 0x24, 0x77, 0x0A, 0xF8, 0x06, 0x9A, 0xC3, 0xA7, 0xF1, 0xBC, 0x55, 0x04, 0xBE, 0xCD, 0xE1, 0xAF, 0xC0, 0xEB, 0x18, 0x74, 0x5F, 0x49, 0xEB, 0xAA, 0xFB, 0xD3, 0xF7, 0x51, 0x87, 0xAF, 0x21, 0x63, 0xB1, 0x7F, 0x83, 0xF1, 0xB6, 0x9A, 0x9E, 0x45, 0x9D, 0x8B, 0xC9, 0xBF, 0xDC, 0x14, 0xCF, 0x46, 0x71, 0x26, 0x4E, 0x71, 0xCE, 0xB1, 0x8C, 0x53, 0x9C, 0x73, 0x2C, 0x70, 0x8A, 0xB3, 0x6E, 0x59, 0xA7, 0x39, 0x0A, 0xCF, 0xE4, 0xCA, 0x3B, 0xC5, 0x39, 0xC7, 0x0A, 0x2E, 0x97, 0xA3, 0xF0, 0x2D, 0xC7, 0x8A, 0x4E, 0x79, 0x96, 0x63, 0x25, 0xA7, 0x7B, 0xEC, 0x6F, 0x90, 0xA3, 0xD0, 0x15, 0xC9, 0x76, 0x15, 0xF7, 0xEF, 0xBD, 0x53, 0xD5, 0x29, 0xCE, 0x79, 0xFE, 0xD0, 0x29, 0xCE, 0xB1, 0x5E, 0xE8, 0x14, 0xE7, 0x3C, 0xAB, 0x39, 0xC5, 0x39, 0xCF, 0xEA, 0x4E, 0x71, 0xD6, 0xAD, 0x81, 0x3C, 0xAB, 0x53, 0x2C, 0xB5, 0x9C, 0xE2, 0x9C, 0x67, 0x6D, 0xCA, 0xB3, 0x16, 0xE5, 0x79, 0xB1, 0x53, 0x9E, 0xE5, 0x59, 0xC7, 0xE9, 0xB3, 0x83, 0xE5, 0x29, 0xF4, 0xC5, 0x64, 0xBB, 0xBE, 0xCB, 0x8D, 0x9D, 0xE5, 0xD9, 0xC0, 0x29, 0xCE, 0x79, 0x5E, 0xEA, 0x14, 0xE7, 0x58, 0x1B, 0x3A, 0xC5, 0x39, 0xCF, 0x1F, 0x39, 0xC5, 0x39, 0xCF, 0x2B, 0x9D, 0xE2, 0xAC, 0xDB, 0x08, 0x79, 0x5E, 0x49, 0xB1, 0x34, 0x76, 0x8A, 0x73, 0x9E, 0x4D, 0x28, 0xCF, 0xC6, 0x94, 0xE7, 0xD5, 0x4E, 0x79, 0x96, 0x67, 0x53, 0xA7, 0xCF, 0x44, 0x96, 0xA7, 0xD0, 0x22, 0x23, 0x73, 0x77, 0x33, 0xE6, 0xEE, 0x66, 0xEA, 0xE1, 0x6B, 0x5C, 0xFE, 0x9A, 0xD5, 0xCC, 0x29, 0x56, 0x42, 0x6B, 0x6A, 0x33, 0x97, 0xBF, 0xA6, 0x6E, 0x02, 0x4F, 0x9E, 0xB5, 0x6C, 0xBD, 0x6D, 0xEE, 0x94, 0xD7, 0xDC, 0xE5, 0x6C, 0xB7, 0x71, 0xFA, 0x3C, 0x66, 0xEB, 0xED, 0x4F, 0x9C, 0x62, 0x76, 0xAF, 0x6E, 0x19, 0xBE, 0xB7, 0x72, 0xB9, 0x35, 0x4C, 0xF8, 0x2D, 0xC2, 0xD5, 0x12, 0xB6, 0x5A, 0x90, 0xAD, 0x8E, 0xB0, 0x65, 0x71, 0x76, 0x72, 0x7A, 0x6F, 0x16, 0xDC, 0x6A, 0xD9, 0xC5, 0x29, 0x3E, 0x36, 0x9B, 0xD3, 0xEB, 0xE6, 0xF4, 0x3E, 0x62, 0x7A, 0xD7, 0x39, 0x95, 0xEB, 0xE6, 0x72, 0xB5, 0xED, 0x8E, 0x73, 0x93, 0x22, 0xF0, 0xAD, 0xB6, 0xD7, 0x3B, 0xE5, 0x99, 0xEE, 0x2F, 0xA0, 0xBB, 0x9A, 0xEC, 0xDD, 0xE0, 0x14, 0x67, 0x7B, 0x7D, 0xC9, 0xDE, 0x0D, 0x64, 0xAF, 0x9F, 0x53, 0x9E, 0xE9, 0xDE, 0x04, 0x7B, 0x83, 0x08, 0x1B, 0xE2, 0x14, 0x67, 0x7B, 0x43, 0xC9, 0xDE, 0x10, 0xB2, 0x77, 0xB3, 0x53, 0x9E, 0x8C, 0xC5, 0x30, 0x1A, 0x8B, 0x62, 0xD4, 0xAF, 0x98, 0xEA, 0xF7, 0x6B, 0xA7, 0xCF, 0xC2, 0x36, 0x16, 0x23, 0x9C, 0x62, 0x76, 0xEF, 0x1B, 0x1E, 0xBE, 0xDF, 0x42, 0x63, 0x31, 0x02, 0xF4, 0x70, 0xD8, 0xBA, 0x85, 0x6C, 0xFD, 0x06, 0xB6, 0x8C, 0x1E, 0x89, 0xB1, 0xB1, 0x1E, 0xBC, 0xC3, 0xE9, 0xBA, 0xF9, 0x1B, 0x8A, 0x75, 0x94, 0x53, 0xDC, 0xF6, 0x3E, 0x77, 0x39, 0xDD, 0xFB, 0x88, 0xCC, 0x48, 0x92, 0x1B, 0xE3, 0x94, 0x57, 0x29, 0x53, 0x2E, 0xA5, 0xC7, 0x3A, 0x7D, 0xAE, 0x68, 0x06, 0x1B, 0x32, 0x26, 0x63, 0x90, 0xB3, 0xC8, 0x8D, 0x25, 0xBF, 0x13, 0xB0, 0x96, 0xB1, 0xDF, 0x7B, 0x9D, 0xE2, 0x46, 0x4F, 0x8A, 0xEC, 0x4F, 0x26, 0xFB, 0x22, 0xDB, 0x0F, 0xE7, 0x63, 0x66, 0x7F, 0x32, 0xD9, 0xFF, 0x1D, 0xD6, 0x10, 0xB6, 0xFF, 0xB0, 0x53, 0xDC, 0xE8, 0xA9, 0x91, 0xFD, 0x69, 0x64, 0x5F, 0x64, 0x65, 0xCC, 0xA6, 0x92, 0xFD, 0x69, 0xA4, 0x3B, 0x13, 0xB1, 0x5A, 0x8D, 0x66, 0x3B, 0xDD, 0x43, 0xC6, 0x35, 0x9A, 0xE3, 0x94, 0x67, 0x3E, 0xFE, 0x40, 0x3E, 0x66, 0xA2, 0x46, 0x73, 0xE0, 0x43, 0xE4, 0xFE, 0x40, 0xBA, 0xCF, 0x46, 0xF1, 0xCE, 0x8F, 0x6C, 0xBD, 0x48, 0xB6, 0x9E, 0x45, 0x3D, 0xE6, 0x93, 0xAD, 0x17, 0xA9, 0x1E, 0x0B, 0xB1, 0xD6, 0x70, 0x3D, 0x16, 0x39, 0xC5, 0x8D, 0x5E, 0x12, 0xD9, 0x7F, 0x99, 0xEC, 0x2F, 0x42, 0x3D, 0x96, 0x90, 0xFD, 0x97, 0xA9, 0xAF, 0x5E, 0x45, 0x9F, 0xD9, 0xDC, 0x78, 0xCD, 0x29, 0x66, 0x6B, 0x93, 0xF0, 0x5E, 0x73, 0xF9, 0x3D, 0x3F, 0x1C, 0x74, 0x2B, 0xD0, 0xAD, 0xC8, 0xDE, 0xD2, 0x68, 0x0D, 0x29, 0x71, 0x8A, 0x95, 0xD0, 0x7A, 0x56, 0xE2, 0xF2, 0xD7, 0xB3, 0x96, 0xA0, 0xDF, 0xC4, 0xDA, 0xF7, 0x26, 0xAD, 0x9D, 0xCB, 0xA2, 0xB5, 0x65, 0xB9, 0x53, 0xAC, 0x84, 0xF6, 0xCB, 0xCB, 0x5D, 0xFE, 0x7E, 0x79, 0x15, 0x78, 0xAF, 0xD3, 0x7C, 0x7D, 0x03, 0xBE, 0xDE, 0xA0, 0x58, 0xFF, 0xE2, 0xF4, 0xAC, 0xCA, 0xE6, 0xEB, 0x6A, 0xA7, 0x98, 0x9C, 0xD7, 0xCA, 0x7C, 0x5D, 0x19, 0x3E, 0x57, 0xD1, 0x7C, 0x15, 0xFE, 0x8A, 0x70, 0xAD, 0x84, 0xAD, 0x15, 0xA8, 0xE9, 0x1A, 0xF2, 0xF3, 0x57, 0xF0, 0xFE, 0x4A, 0x7E, 0x36, 0x38, 0x3D, 0x03, 0x33, 0x3F, 0x1B, 0x9D, 0x62, 0xB6, 0x2E, 0xAC, 0x0B, 0xDF, 0xD7, 0x93, 0x1F, 0xE1, 0xAF, 0x0D, 0xD7, 0x3A, 0xD8, 0x5A, 0x4B, 0xB6, 0xDE, 0x46, 0xCC, 0x76, 0xFF, 0xDC, 0xEC, 0x14, 0x93, 0x33, 0x65, 0xDB, 0xB3, 0xBF, 0x4B, 0x98, 0xE9, 0x6D, 0x41, 0x0C, 0x56, 0xC7, 0xF7, 0x9D, 0xEE, 0xAD, 0xB7, 0x10, 0xF6, 0xBF, 0x4E, 0x71, 0xB1, 0x39, 0x0A, 0xE7, 0x98, 0x1F, 0x38, 0xC5, 0x8D, 0xDE, 0x86, 0x7B, 0xF8, 0xCF, 0x70, 0x56, 0xBD, 0xDD, 0xA9, 0x8C, 0xE0, 0x93, 0x81, 0xED, 0x72, 0x8A, 0xEF, 0xC4, 0x3C, 0x93, 0xF3, 0xEB, 0x3D, 0x2E, 0xB7, 0x37, 0x2D, 0xC1, 0xF8, 0x8A, 0xEC, 0x5E, 0xF0, 0x1E, 0x82, 0xEE, 0x3E, 0xA7, 0xFA, 0x7B, 0xA9, 0x5E, 0x07, 0x9C, 0xE6, 0x24, 0xE7, 0xEC, 0xB2, 0x27, 0x3F, 0x44, 0xB5, 0x12, 0xDE, 0x41, 0xB9, 0xE7, 0x7B, 0xAD, 0x95, 0x7C, 0x9A, 0x5E, 0x23, 0xAF, 0x7A, 0x9B, 0xA0, 0xD7, 0xD8, 0xE7, 0xF4, 0x84, 0x77, 0x55, 0xB8, 0x1A, 0x43, 0x4F, 0xBE, 0x5B, 0xAD, 0x9A, 0x78, 0xAD, 0x95, 0xD0, 0x72, 0xF6, 0xDD, 0xD4, 0xEB, 0xB9, 0xB3, 0xD0, 0x72, 0x4E, 0x7E, 0x8D, 0xD7, 0x33, 0xF2, 0x7E, 0xC1, 0x8F, 0x9C, 0x8F, 0x37, 0xF3, 0x2A, 0x23, 0x78, 0xFF, 0x30, 0x07, 0xE5, 0xCC, 0xBB, 0xB9, 0x57, 0x5C, 0xF2, 0xA9, 0x80, 0x73, 0x73, 0x39, 0x1B, 0xB7, 0xE7, 0x85, 0x96, 0x3E, 0x97, 0x53, 0xCF, 0x80, 0x49, 0x6D, 0x5B, 0x79, 0xD5, 0x13, 0xDE, 0x5D, 0x98, 0xDB, 0xAD, 0xBD, 0xE2, 0xB6, 0x1E, 0xB4, 0xF1, 0x7A, 0x7E, 0x2A, 0x31, 0x4A, 0xEF, 0x09, 0x2D, 0x32, 0x16, 0x4B, 0xBB, 0x73, 0xC4, 0x52, 0xE8, 0x15, 0xE7, 0x58, 0xE4, 0x0C, 0xDE, 0xFC, 0x76, 0xF2, 0x2A, 0xC3, 0x7E, 0x3B, 0x7B, 0xC5, 0xCD, 0xEF, 0x4F, 0xBD, 0x9E, 0xCB, 0x9A, 0x5F, 0xA1, 0x3B, 0x93, 0xDF, 0x6E, 0xE7, 0xF0, 0xDB, 0xDD, 0x2B, 0xCE, 0x7E, 0xCF, 0x27, 0xBF, 0x3D, 0xBD, 0xCA, 0xB0, 0xDF, 0x5E, 0x5E, 0x71, 0xF3, 0xDB, 0xDB, 0xEB, 0x79, 0xAF, 0xF9, 0x15, 0xBA, 0x17, 0xF9, 0xED, 0x73, 0x0E, 0xBF, 0x7D, 0xBD, 0xE2, 0xEC, 0xB7, 0x1E, 0xF9, 0x95, 0x73, 0xFB, 0xBE, 0x91, 0xDF, 0x5F, 0x79, 0xC5, 0xCD, 0xEF, 0x8D, 0x5E, 0xCF, 0x91, 0xCD, 0xAF, 0xD0, 0x22, 0x23, 0x73, 0xDC, 0x7A, 0xA6, 0x31, 0xE8, 0x43, 0x98, 0xA7, 0x07, 0x69, 0xBE, 0x1D, 0x76, 0xF9, 0x3D, 0x74, 0x14, 0xBF, 0xBF, 0x58, 0x0F, 0x7D, 0xE2, 0xF2, 0x7B, 0xE8, 0x33, 0xC8, 0x08, 0x6E, 0x79, 0x9C, 0x06, 0x1E, 0xF7, 0x90, 0xE5, 0x71, 0x06, 0x32, 0xEF, 0x62, 0x1D, 0x92, 0x73, 0x74, 0xC1, 0xDA, 0x80, 0xFF, 0x0D, 0xF4, 0x04, 0xB7, 0x3C, 0xBF, 0x75, 0x8A, 0x5B, 0x9E, 0xDF, 0x39, 0xED, 0xA7, 0xC3, 0xB0, 0x21, 0xF4, 0xB7, 0x94, 0x47, 0x06, 0x73, 0xC1, 0xE2, 0x4C, 0xFC, 0xBF, 0xC7, 0x59, 0xE0, 0x15, 0xFF, 0xBE, 0xFE, 0x2A, 0xEF, 0x55, 0xC6, 0xE2, 0x94, 0xF3, 0x7C, 0xC1, 0x2C, 0xCE, 0x0A, 0x5E, 0xF5, 0xCA, 0xD1, 0x78, 0x54, 0xF4, 0x8A, 0x97, 0x3E, 0x43, 0xA1, 0xFF, 0x32, 0x18, 0x0F, 0xA1, 0x2B, 0xD2, 0x9C, 0x3D, 0x2F, 0x8A, 0xB3, 0xEA, 0x39, 0xE2, 0xBC, 0xC0, 0x2B, 0xFE, 0x7D, 0xFD, 0x58, 0xCD, 0xAB, 0x8C, 0xC5, 0x29, 0xBF, 0x2B, 0x54, 0xA3, 0x38, 0xAB, 0x23, 0xCE, 0x8B, 0x28, 0xCE, 0x1A, 0x5E, 0x71, 0x8B, 0xB3, 0x26, 0xFA, 0xF5, 0x3C, 0xC4, 0x29, 0x74, 0x0D, 0x8A, 0xB3, 0x76, 0x14, 0xE7, 0x25, 0xE7, 0x88, 0xB3, 0xBE, 0x57, 0xFC, 0xFB, 0xFA, 0xF7, 0x32, 0xAF, 0x32, 0x16, 0xA7, 0xFC, 0xBE, 0x71, 0x19, 0xC5, 0x79, 0x39, 0xE2, 0xBC, 0x94, 0xE2, 0x6C, 0xE8, 0x15, 0xB7, 0x38, 0xAF, 0x40, 0x7F, 0xD7, 0x46, 0x9C, 0x42, 0x37, 0x8C, 0xFA, 0xF9, 0x10, 0xEE, 0xAB, 0xEB, 0x41, 0xAF, 0xA7, 0xBE, 0x18, 0xE0, 0xF3, 0xEF, 0x27, 0x03, 0xBD, 0x62, 0x76, 0x5F, 0x16, 0xDE, 0x40, 0x9F, 0x7F, 0x4F, 0x5C, 0x87, 0x78, 0xE5, 0xF7, 0x17, 0xBB, 0x5F, 0xDE, 0x84, 0xB9, 0x74, 0x13, 0xD5, 0x68, 0x98, 0xD7, 0xDF, 0x68, 0x6C, 0x1D, 0x2F, 0xF6, 0x8A, 0xD9, 0x33, 0xCD, 0x90, 0xF0, 0x7D, 0x28, 0xAD, 0xE5, 0xC2, 0x1F, 0x1C, 0xAE, 0x21, 0xB0, 0x35, 0x98, 0x6C, 0xDD, 0x0A, 0x5B, 0xA5, 0x67, 0xEB, 0x5E, 0x9F, 0x69, 0x04, 0xB7, 0x67, 0x9A, 0x11, 0x5E, 0x71, 0x79, 0xA6, 0x31, 0xB9, 0xDB, 0xBD, 0xE2, 0x23, 0xC9, 0xD6, 0x1D, 0x5E, 0xEF, 0xBD, 0x26, 0x33, 0xCA, 0xAB, 0xDC, 0x1D, 0x3E, 0xF7, 0x1C, 0x21, 0xBF, 0x01, 0xDA, 0x73, 0xC4, 0x28, 0x9F, 0xDB, 0xA3, 0x8D, 0xF6, 0xCA, 0x33, 0xDD, 0x09, 0xB0, 0x3F, 0x8E, 0x7C, 0x4E, 0xF4, 0x8A, 0xB3, 0xBD, 0xFB, 0xC8, 0xDE, 0x44, 0xB2, 0x77, 0xBF, 0x57, 0x9E, 0xE9, 0x3E, 0x0C, 0x7B, 0x77, 0x93, 0xBD, 0x47, 0xBD, 0xE2, 0x6C, 0xEF, 0x31, 0xB2, 0xF7, 0x28, 0xD9, 0x9B, 0xE2, 0x95, 0x27, 0xE3, 0x33, 0x95, 0xC6, 0x67, 0x1A, 0x6A, 0x3A, 0x8D, 0xEA, 0xF0, 0x7B, 0xAF, 0xBF, 0x99, 0xD9, 0xF8, 0xCC, 0xF4, 0x8A, 0xD9, 0x7E, 0x66, 0x46, 0xF8, 0x3E, 0x9D, 0xC6, 0x67, 0x26, 0xE8, 0x19, 0xB0, 0x35, 0x9D, 0x6C, 0x3D, 0x09, 0x5B, 0x46, 0xCF, 0xC2, 0x78, 0x59, 0x9F, 0xCE, 0xC6, 0xFD, 0xEE, 0x49, 0x8A, 0x75, 0x8E, 0x57, 0xDC, 0xF6, 0xF0, 0x4F, 0x7B, 0x7D, 0xCE, 0x11, 0x99, 0x59, 0x24, 0x37, 0xD7, 0x2B, 0xCF, 0xF6, 0xC5, 0xCF, 0xF8, 0xDC, 0xBE, 0x58, 0x6C, 0xC8, 0x98, 0xCC, 0x45, 0xCE, 0x22, 0xF7, 0x0C, 0xF9, 0x9D, 0x87, 0xF5, 0x86, 0xFD, 0xCE, 0xF7, 0x8A, 0x1B, 0xBD, 0x20, 0xB2, 0xBF, 0x90, 0xEC, 0x8B, 0xAC, 0x8C, 0xD1, 0x02, 0xB2, 0xBF, 0x90, 0xEC, 0x2F, 0xC6, 0x3A, 0xC1, 0xF6, 0x97, 0x78, 0xC5, 0x8D, 0x5E, 0x1A, 0xD9, 0x2F, 0x21, 0xFB, 0x22, 0x2B, 0x63, 0xB6, 0x94, 0xEC, 0x97, 0x90, 0xEE, 0x4A, 0xC4, 0x6A, 0x35, 0x7A, 0xCB, 0xEB, 0x73, 0x4E, 0x5C, 0xA3, 0xD5, 0x5E, 0x79, 0xE6, 0x63, 0x0D, 0xF9, 0x58, 0x89, 0x1A, 0xAD, 0x86, 0x0F, 0x91, 0x5B, 0x43, 0xBA, 0x1B, 0xA2, 0x78, 0x37, 0x47, 0xB6, 0xFE, 0x41, 0xB6, 0x36, 0xA0, 0x1E, 0x9B, 0xC9, 0xD6, 0x3F, 0xA8, 0x1E, 0xFF, 0xC2, 0x7A, 0xC4, 0xF5, 0xD8, 0xE2, 0x15, 0x37, 0x7A, 0x6B, 0x64, 0x7F, 0x1B, 0xD9, 0xDF, 0x82, 0x7A, 0x6C, 0x25, 0xFB, 0xDB, 0xA8, 0xAF, 0x76, 0xA0, 0xCF, 0x6C, 0x6E, 0xEC, 0xF4, 0x8A, 0xD9, 0x7A, 0x25, 0xBC, 0x9D, 0x3E, 0xBF, 0xE7, 0x67, 0x80, 0x1E, 0x0A, 0x7A, 0x28, 0xD9, 0xDB, 0x15, 0xAD, 0x2B, 0xBB, 0xBD, 0x62, 0x66, 0x4F, 0x78, 0xBB, 0x7D, 0xFE, 0x1A, 0x37, 0x04, 0xF4, 0x2A, 0xAC, 0x87, 0xAB, 0x68, 0x3D, 0xDD, 0x13, 0xAD, 0x2D, 0x7B, 0xBD, 0x62, 0x25, 0xF4, 0x2C, 0xB3, 0xD7, 0xE7, 0x3F, 0xCB, 0xAC, 0xC4, 0x7A, 0xBA, 0x8F, 0xE6, 0xEB, 0x7E, 0xF8, 0xDA, 0x4F, 0xB1, 0x1E, 0xF6, 0xFA, 0x9B, 0xB6, 0xCD, 0xD7, 0x8F, 0xBC, 0x62, 0x36, 0x5F, 0x0F, 0x86, 0xEF, 0x87, 0x68, 0xBE, 0x0A, 0xFF, 0x40, 0xB8, 0x0E, 0xC2, 0xD6, 0x01, 0xD4, 0xF4, 0x63, 0xF2, 0x73, 0x04, 0xBC, 0x23, 0xE4, 0xE7, 0x13, 0xAF, 0xBF, 0x95, 0x9B, 0x9F, 0x4F, 0xBD, 0x62, 0xB6, 0x6E, 0x1F, 0x0B, 0xDF, 0x8F, 0x93, 0x1F, 0xE1, 0x1F, 0x0D, 0xD7, 0x31, 0xD8, 0x3A, 0x4A, 0xB6, 0x3E, 0x43, 0xCC, 0x46, 0x7F, 0x0E, 0xDB, 0xD6, 0xCF, 0x5F, 0x62, 0xCE, 0x8B, 0xDC, 0xE7, 0xD4, 0x23, 0xA7, 0xBC, 0xF2, 0x2A, 0x65, 0xCA, 0xEA, 0x79, 0x33, 0x7A, 0xE4, 0x0A, 0xF0, 0x4E, 0x23, 0x17, 0x91, 0xF9, 0x8A, 0xEC, 0x9D, 0xC5, 0xFC, 0x88, 0xED, 0xC9, 0x0B, 0x1B, 0x67, 0xC9, 0x9E, 0x4B, 0x72, 0xF6, 0x84, 0x67, 0xF6, 0x44, 0x46, 0x78, 0x36, 0x7E, 0xE5, 0x92, 0xDC, 0x99, 0xAE, 0x9D, 0xCF, 0x97, 0x4F, 0x72, 0xCF, 0x40, 0x5D, 0xE8, 0x19, 0xB7, 0x42, 0xA2, 0x3C, 0xBB, 0x1F, 0x55, 0x4C, 0x54, 0xBF, 0x02, 0xD9, 0xAB, 0x9C, 0x28, 0x7E, 0x1B, 0x3D, 0x0B, 0xFF, 0x20, 0x51, 0xFC, 0x33, 0xEA, 0xC3, 0x2A, 0x89, 0xE2, 0x7C, 0xFE, 0x59, 0x35, 0xD1, 0xF3, 0xCF, 0x2A, 0x64, 0xEF, 0xFC, 0x44, 0xF1, 0x71, 0x64, 0xEF, 0xC2, 0x44, 0x71, 0xCE, 0xBF, 0x46, 0xA2, 0xF5, 0xB4, 0xFB, 0x47, 0x4D, 0xBC, 0x2B, 0x53, 0x04, 0xF9, 0x74, 0x8F, 0x93, 0xA8, 0x9C, 0xFD, 0x36, 0x5B, 0x87, 0xF2, 0x94, 0xF7, 0x68, 0xF8, 0xB7, 0xD9, 0x4B, 0x12, 0xE5, 0xDB, 0x6F, 0xB3, 0x75, 0x13, 0xC5, 0xAC, 0x67, 0xEA, 0x21, 0x77, 0xC1, 0xE5, 0x99, 0xAD, 0x41, 0x92, 0xEB, 0x17, 0xE1, 0xD5, 0x0F, 0x97, 0x60, 0xD2, 0x2F, 0xF5, 0x29, 0x9F, 0xCB, 0x92, 0xDC, 0xD9, 0xB2, 0xE5, 0x7D, 0x45, 0xA2, 0x38, 0xD7, 0xF1, 0xCA, 0x44, 0xF1, 0xDB, 0xA8, 0xFE, 0x8D, 0x12, 0xED, 0x35, 0x93, 0xB9, 0x2A, 0x51, 0xB9, 0x46, 0xA4, 0xD7, 0x38, 0x51, 0x9C, 0xEB, 0xDA, 0x04, 0x75, 0x6D, 0x4C, 0x72, 0x4D, 0x13, 0xC5, 0xC7, 0xF1, 0xF9, 0x6F, 0xA2, 0xBD, 0x5B, 0x7A, 0xFE, 0x9B, 0xA8, 0xDC, 0x35, 0x49, 0xAE, 0xFF, 0x5A, 0x24, 0xDA, 0x7F, 0x8D, 0x80, 0x5B, 0xFD, 0x5B, 0x26, 0xCA, 0xB3, 0xFA, 0xB7, 0xA2, 0xFA, 0x37, 0x43, 0xFD, 0x05, 0x13, 0x39, 0x99, 0x97, 0x56, 0x9B, 0x06, 0xA0, 0x8F, 0x63, 0x6E, 0x1D, 0xA7, 0xB9, 0xD4, 0x3A, 0x8A, 0xA7, 0x4D, 0xA2, 0x98, 0xAD, 0x35, 0xC2, 0x6B, 0x93, 0xE4, 0xCF, 0xF3, 0x63, 0xB6, 0x37, 0x04, 0x7D, 0x88, 0xEC, 0xFD, 0x24, 0xAA, 0x5F, 0xDB, 0x44, 0x31, 0xB3, 0x27, 0xBC, 0xB6, 0x49, 0xFE, 0xFA, 0x74, 0x10, 0xF3, 0xE6, 0x5A, 0xD4, 0x4A, 0x78, 0xED, 0x11, 0x7B, 0xFB, 0x24, 0x67, 0xBB, 0x73, 0xA2, 0xEF, 0xDB, 0x98, 0xED, 0x22, 0xC8, 0x77, 0xC9, 0xE8, 0x9C, 0x4C, 0xCF, 0xA4, 0x31, 0x27, 0x1B, 0x82, 0xDF, 0x96, 0x7E, 0x7F, 0xEC, 0x9A, 0xA8, 0x0D, 0x91, 0x91, 0x35, 0xA8, 0x83, 0xD4, 0x92, 0x7A, 0x4A, 0xF8, 0x85, 0xE1, 0xEA, 0x00, 0xDF, 0x85, 0xA8, 0x69, 0x37, 0xF4, 0x93, 0xC4, 0xD5, 0x1D, 0xBC, 0xEE, 0x14, 0x57, 0xEF, 0x44, 0xDF, 0xFB, 0x99, 0x88, 0xBE, 0xFE, 0x59, 0xA2, 0x58, 0xE9, 0x39, 0x36, 0xF5, 0xA3, 0xC9, 0xF4, 0x49, 0x14, 0xB7, 0x79, 0x72, 0xC3, 0xFF, 0x33, 0x4F, 0xFA, 0x26, 0xCA, 0x97, 0x1C, 0x85, 0xEE, 0x87, 0x1C, 0x2F, 0x87, 0x1D, 0xE1, 0x2F, 0x41, 0x8E, 0xBF, 0x4C, 0xD4, 0x7F, 0x3F, 0xE4, 0xD8, 0x23, 0x7C, 0xF6, 0xA4, 0x1C, 0x85, 0x7F, 0x7D, 0xB8, 0x7A, 0x20, 0x8F, 0xEB, 0x91, 0x63, 0x7F, 0xCC, 0x03, 0xC9, 0xF1, 0x46, 0xF0, 0x6E, 0xA4, 0x1C, 0x07, 0x27, 0xFA, 0x2E, 0x93, 0xC5, 0x3F, 0x24, 0x51, 0xCC, 0x72, 0xBC, 0x19, 0xFA, 0x9C, 0xE3, 0xB0, 0x44, 0x71, 0xCB, 0xB1, 0x38, 0xCA, 0x91, 0xDF, 0x15, 0xB9, 0x25, 0x51, 0xBE, 0xE5, 0x38, 0x9C, 0x72, 0x14, 0x3B, 0xB7, 0x50, 0x8E, 0xB7, 0x26, 0xEA, 0x7F, 0x38, 0x72, 0x1C, 0x18, 0x3E, 0x07, 0x51, 0x8E, 0xC2, 0x1F, 0x10, 0xAE, 0x81, 0xC8, 0x63, 0x00, 0xE5, 0x31, 0x02, 0x79, 0x94, 0x9E, 0xAD, 0x63, 0xEC, 0xEC, 0x37, 0xDF, 0x51, 0x89, 0xCA, 0xD8, 0x6F, 0xBE, 0xA3, 0xC9, 0xAE, 0xF0, 0xEE, 0x0C, 0xD7, 0x68, 0xD8, 0xBD, 0x93, 0xF2, 0xBF, 0x3B, 0x51, 0x5B, 0xD6, 0xE7, 0xE3, 0x61, 0x47, 0xBE, 0xCB, 0x3B, 0x5E, 0x77, 0x93, 0xCF, 0x7B, 0xD1, 0xC7, 0xC2, 0x93, 0xF7, 0xBD, 0x84, 0x6E, 0x83, 0xFE, 0x9D, 0x98, 0xE8, 0xFB, 0xA1, 0xA2, 0x2F, 0x7A, 0x13, 0x68, 0xBE, 0xDF, 0x47, 0xF3, 0x7D, 0x22, 0xF4, 0xEF, 0xC3, 0x7D, 0xC7, 0xE2, 0x9F, 0x84, 0x38, 0x2C, 0xFE, 0x07, 0x29, 0x7E, 0xE1, 0x4D, 0x0E, 0xD7, 0x83, 0x88, 0x7F, 0x32, 0x6C, 0x3C, 0x4A, 0xB1, 0x3E, 0x06, 0x7D, 0x8B, 0x75, 0x2A, 0xC5, 0x2A, 0xEF, 0x9A, 0x4D, 0xA5, 0x58, 0xA7, 0x21, 0x56, 0xD1, 0x17, 0xBD, 0x29, 0x14, 0xEB, 0x74, 0x8A, 0x75, 0x1A, 0xF4, 0xA7, 0x23, 0x56, 0xE9, 0x31, 0x8B, 0xE1, 0x41, 0xEA, 0xA9, 0x27, 0xE0, 0x5B, 0xCE, 0xC5, 0x84, 0x7E, 0x12, 0xBD, 0x3D, 0x82, 0x7E, 0x93, 0x9F, 0x95, 0xA8, 0xDC, 0x93, 0xB8, 0x27, 0xCC, 0xA6, 0xFC, 0x84, 0xF7, 0x54, 0xB8, 0x66, 0xC3, 0xF6, 0x53, 0x34, 0x3E, 0x73, 0x61, 0xDB, 0x7E, 0x7F, 0x7F, 0x86, 0x72, 0x96, 0x77, 0xE4, 0xE6, 0x52, 0xCE, 0xCF, 0x53, 0xCE, 0xF2, 0xBE, 0xDC, 0xF3, 0x94, 0xF3, 0x0B, 0xC8, 0x59, 0xF4, 0x45, 0xEF, 0x39, 0xCA, 0x79, 0x1E, 0xE5, 0xFC, 0x02, 0xF4, 0xE7, 0x51, 0xCE, 0x16, 0xD7, 0x6C, 0xAC, 0x7F, 0xD6, 0x47, 0xA3, 0xA9, 0x06, 0x7F, 0x44, 0x5C, 0x56, 0x83, 0x05, 0xE8, 0x7D, 0xAE, 0xC1, 0xC2, 0x44, 0xE5, 0x16, 0xA0, 0x06, 0x2F, 0x51, 0x0D, 0x84, 0xB7, 0x28, 0x5C, 0x2F, 0xC1, 0xF6, 0x22, 0xAA, 0xC1, 0x62, 0xD8, 0xE6, 0xDF, 0x57, 0x5F, 0x89, 0xFA, 0x56, 0xDE, 0x07, 0x5C, 0x8C, 0xD8, 0xE5, 0x5D, 0xC0, 0x57, 0xA8, 0x2E, 0x25, 0x54, 0x17, 0x79, 0x2F, 0xB0, 0x84, 0xEA, 0xB2, 0x0C, 0x75, 0x11, 0x7D, 0xD1, 0x5B, 0x4A, 0x75, 0x59, 0x4E, 0x75, 0x59, 0x06, 0xFD, 0xE5, 0x51, 0xDF, 0xAE, 0x88, 0xFA, 0x76, 0x15, 0xE5, 0x24, 0xBC, 0x95, 0xE1, 0x5A, 0x85, 0x9C, 0x56, 0xC2, 0xC6, 0x5A, 0x8A, 0x75, 0x5D, 0xD4, 0xB7, 0x7F, 0xA3, 0x58, 0xE5, 0x9D, 0xC4, 0xBF, 0x51, 0xAC, 0x1B, 0x10, 0xAB, 0xE8, 0x8B, 0xDE, 0x7A, 0x8A, 0x75, 0x23, 0xC5, 0xBA, 0x01, 0xFA, 0x1B, 0x69, 0x0C, 0x2D, 0x86, 0x55, 0x34, 0x66, 0x9B, 0xA2, 0xBE, 0x7D, 0xE7, 0x1C, 0x7D, 0xFB, 0x6E, 0xA2, 0x72, 0xEF, 0x60, 0xCC, 0xDE, 0xA3, 0xFC, 0x84, 0xF7, 0xCF, 0x70, 0xBD, 0x07, 0xDB, 0xFF, 0xA4, 0x31, 0xFB, 0x20, 0xEA, 0xDB, 0xAD, 0x94, 0xB3, 0xBC, 0x4B, 0xF9, 0x01, 0xE5, 0xBC, 0x83, 0x72, 0x96, 0xF7, 0x2A, 0x77, 0x50, 0xCE, 0x3B, 0x91, 0xB3, 0xE8, 0x8B, 0xDE, 0x76, 0xCA, 0x79, 0x17, 0xE5, 0xBC, 0x13, 0xFA, 0xBB, 0x28, 0x67, 0x8B, 0xEB, 0x3D, 0xF4, 0xAD, 0xF5, 0xD6, 0x4B, 0xB4, 0x6E, 0xEE, 0x8D, 0xC6, 0x6F, 0x3F, 0xE5, 0x27, 0xBC, 0x7D, 0xE1, 0xDA, 0x0F, 0xBD, 0x7D, 0x94, 0xDF, 0x21, 0xF4, 0x64, 0xE9, 0x7E, 0x23, 0x51, 0x4C, 0xBE, 0x1F, 0x89, 0xC6, 0xF4, 0x18, 0xE5, 0x27, 0xEF, 0x81, 0x1E, 0xA3, 0xFC, 0x8E, 0x23, 0x3F, 0xD1, 0x17, 0xBD, 0xA3, 0x94, 0xDF, 0x09, 0xCA, 0xEF, 0x38, 0xF4, 0x4F, 0x50, 0x7E, 0x16, 0xD7, 0x7E, 0x1A, 0xD3, 0xCF, 0xA2, 0x31, 0x3D, 0x79, 0x8E, 0x31, 0xFD, 0x32, 0x51, 0xB9, 0x93, 0x18, 0xD3, 0xD3, 0x94, 0xB3, 0xF0, 0x4E, 0x89, 0x5D, 0xD8, 0x3E, 0x45, 0x39, 0x9F, 0xA1, 0x9C, 0x0D, 0xFB, 0x2E, 0x1A, 0x67, 0x79, 0xAF, 0xF5, 0x0C, 0x62, 0x95, 0x77, 0x5A, 0xBF, 0xA3, 0x3A, 0xF8, 0x6C, 0xAE, 0x0E, 0xF2, 0x7E, 0xAB, 0xD0, 0x56, 0x87, 0x24, 0xAB, 0x75, 0x10, 0x7D, 0xD1, 0x13, 0xBE, 0xD5, 0x21, 0x9B, 0xCD, 0xD5, 0x41, 0xE4, 0x44, 0x5F, 0x30, 0xAB, 0x83, 0xC5, 0x7A, 0x1A, 0xE3, 0x3C, 0x08, 0xF4, 0x20, 0xF2, 0x5D, 0x26, 0xAB, 0xF7, 0xCF, 0xD2, 0x77, 0x66, 0xB2, 0x8A, 0xD9, 0xF8, 0x09, 0x4F, 0x30, 0xDE, 0x47, 0x0C, 0x84, 0xBD, 0x9E, 0xA0, 0x7B, 0x92, 0xBD, 0xB2, 0x59, 0xBD, 0xFF, 0x96, 0x3E, 0x2B, 0x65, 0x15, 0x33, 0x7B, 0xC2, 0x2B, 0x97, 0xCD, 0xDF, 0x7B, 0xF5, 0x80, 0xBD, 0x8E, 0xA0, 0x3B, 0x92, 0xBD, 0xF2, 0xD9, 0xFC, 0x3D, 0x62, 0x85, 0xAC, 0x62, 0x66, 0x4F, 0x78, 0x15, 0xB2, 0xF9, 0x7B, 0xCC, 0x0E, 0x49, 0xFE, 0x3B, 0x98, 0xF2, 0xF9, 0x6D, 0xD8, 0x7D, 0xB4, 0x0E, 0x57, 0x4B, 0x3B, 0x97, 0xC6, 0xBB, 0x5F, 0xF2, 0x77, 0x00, 0xAD, 0x82, 0x9D, 0xB2, 0xF8, 0xFB, 0x1A, 0x91, 0xAF, 0x48, 0xEF, 0x97, 0xDF, 0x40, 0xEF, 0x1B, 0xF7, 0x89, 0xDE, 0x37, 0xEE, 0x07, 0xFB, 0xFD, 0xF0, 0xBE, 0x84, 0xD8, 0xBD, 0x00, 0x76, 0x56, 0xA2, 0xA7, 0xAA, 0x01, 0xBB, 0x10, 0x36, 0x6A, 0xD0, 0x3B, 0x67, 0xD5, 0xF0, 0xB7, 0x78, 0x75, 0xE1, 0xB7, 0x6E, 0x26, 0x67, 0xA7, 0x5E, 0x64, 0xA7, 0x01, 0xB0, 0xFA, 0xB0, 0x73, 0x19, 0xD9, 0xB1, 0xBF, 0xB9, 0xBC, 0x1A, 0x76, 0xAE, 0x26, 0x3B, 0xD7, 0xC0, 0xCE, 0x64, 0xE4, 0xFD, 0x63, 0x60, 0xCD, 0xD2, 0x3D, 0x76, 0x41, 0x8A, 0x35, 0xC7, 0xBB, 0xC7, 0xB5, 0xC1, 0x97, 0x33, 0x98, 0xF4, 0x37, 0xAB, 0x4C, 0xEE, 0x0C, 0xA6, 0x29, 0xE4, 0x5A, 0x66, 0xF4, 0xF7, 0xBC, 0x02, 0xFC, 0x5D, 0x66, 0x2B, 0xFC, 0x8D, 0x9A, 0x8C, 0x85, 0xD4, 0xAA, 0x35, 0xF6, 0x9C, 0x7D, 0x50, 0x9B, 0x4B, 0x29, 0x96, 0x86, 0xA5, 0x7F, 0x83, 0x55, 0x36, 0xA5, 0x7F, 0x04, 0xFB, 0x35, 0xC1, 0xBB, 0x82, 0x7C, 0x5F, 0x45, 0xBE, 0x2F, 0x87, 0x6C, 0x23, 0xF2, 0xDD, 0x18, 0x32, 0xEC, 0xBB, 0x71, 0xE4, 0xFB, 0xB2, 0xF4, 0x9D, 0x32, 0x97, 0x7E, 0xAF, 0x4E, 0x71, 0xD4, 0x42, 0x1C, 0x66, 0xAB, 0x0E, 0xB0, 0xF1, 0xD9, 0x9C, 0xAD, 0x3A, 0x91, 0xAD, 0x1A, 0x64, 0xAB, 0x0F, 0x8D, 0x77, 0xDF, 0xAC, 0xF6, 0xC8, 0x77, 0x01, 0xEF, 0x9B, 0xE6, 0xAF, 0x3D, 0x96, 0xBE, 0xD3, 0x85, 0x31, 0x3A, 0x0F, 0x3D, 0x56, 0x39, 0xFD, 0x1B, 0xDE, 0xDC, 0xF7, 0x2A, 0xF4, 0xBD, 0x2A, 0xC6, 0xEE, 0x7C, 0x7A, 0xB6, 0xBC, 0x16, 0x32, 0x76, 0xC6, 0xD0, 0x2D, 0x73, 0xEE, 0x33, 0x86, 0xEB, 0xC0, 0xB3, 0x67, 0xD7, 0xEE, 0xD0, 0xBD, 0x8E, 0x64, 0xAE, 0x87, 0x6F, 0x9B, 0x47, 0x3D, 0x20, 0x77, 0x3D, 0xE9, 0xF5, 0xC4, 0xFB, 0x7F, 0x3D, 0x48, 0xAF, 0x17, 0x62, 0x33, 0xBD, 0xDE, 0x90, 0x13, 0x5C, 0x72, 0xEE, 0x9D, 0xD1, 0x9C, 0xFF, 0x0F, 0xBD, 0xEC, 0x63, 0x05 -}; diff --git a/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.cso.inl b/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.cso.inl deleted file mode 100644 index b57c1f1ce..000000000 --- a/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.cso.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_6_64_fp32.comp.cso */ -const int internal_shaders_output_convolution_concat_64_6_64_fp32_comp_cso_size = 6899; -const unsigned char internal_shaders_output_convolution_concat_64_6_64_fp32_comp_cso[6899] = { - 0x78, 0xDA, 0xED, 0x7A, 0x7B, 0x58, 0x13, 0xD7, 0xDA, 0xEF, 0x4C, 0x32, 0x99, 0x5C, 0x98, 0x84, 0x70, 0x11, 0x06, 0x02, 0x98, 0x80, 0x20, 0x02, 0xD5, 0xE1, 0x52, 0xF0, 0x82, 0x35, 0x09, 0x18, 0xB9, 0x69, 0x83, 0x52, 0xC5, 0x6A, 0xEB, 0x24, 0x8A, 0x42, 0x0B, 0x9A, 0x02, 0x52, 0x54, 0xAA, 0xB9, 0x11, 0x22, 0xA2, 0x46, 0x45, 0x8B, 0x17, 0xDA, 0x20, 0xA2, 0x9C, 0xD6, 0xB6, 0x69, 0x75, 0x2B, 0xF4, 0xE2, 0x97, 0x00, 0x5A, 0x44, 0xA4, 0xC1, 0x4D, 0xBB, 0xA3, 0x52, 0x1B, 0x2A, 0x52, 0xB4, 0xB4, 0x52, 0xB5, 0x2D, 0xB6, 0xEE, 0xBD, 0xCF, 0x1A, 0x48, 0xAC, 0xF5, 0xDB, 0xE7, 0x39, 0xDF, 0x39, 0x7F, 0x7D, 0xDF, 0xF3, 0xEC, 0x79, 0x9E, 0x95, 0x75, 0xFB, 0xBD, 0x97, 0xF5, 0xBE, 0xEF, 0x5A, 0xEB, 0x9D, 0x27, 0x93, 0x9A, 0x2B, 0x4D, 0xD9, 0xF7, 0xB7, 0xEC, 0x07, 0xD3, 0x5E, 0xFC, 0xC7, 0xBA, 0x17, 0x2F, 0x9F, 0xB7, 0x17, 0x3F, 0x5A, 0x69, 0x87, 0x21, 0x08, 0x1A, 0x8E, 0x80, 0x20, 0x26, 0xA8, 0x93, 0x41, 0xC9, 0x02, 0x65, 0x25, 0x28, 0x85, 0xA0, 0x54, 0x80, 0x49, 0x93, 0x07, 0x04, 0x9D, 0x04, 0x65, 0x89, 0x2C, 0x9D, 0x60, 0x41, 0x7F, 0x3C, 0xE9, 0x4B, 0x16, 0xC4, 0xBA, 0xFB, 0x54, 0xFD, 0xFC, 0x53, 0x7D, 0xF9, 0x92, 0xA5, 0x04, 0x0B, 0xD0, 0x13, 0xD0, 0xBF, 0x7E, 0xFE, 0x09, 0x1E, 0xC6, 0x13, 0x7D, 0x3E, 0x28, 0xB0, 0x8B, 0x96, 0x2A, 0x38, 0x28, 0xB4, 0xA7, 0x68, 0xB8, 0xAE, 0x1A, 0x76, 0xD5, 0x74, 0x57, 0xE1, 0x3D, 0xD1, 0xA7, 0x1E, 0xC4, 0x55, 0x68, 0x4F, 0x8D, 0x33, 0x5C, 0x85, 0xF6, 0x04, 0x0E, 0x72, 0xF5, 0xA9, 0xE2, 0xF1, 0xD4, 0x38, 0xD3, 0x55, 0x9E, 0x1E, 0x77, 0xEB, 0xE8, 0xF1, 0x04, 0xEE, 0xC9, 0xE7, 0x69, 0x3C, 0xF5, 0x2C, 0xC9, 0x91, 0xE4, 0x60, 0x1C, 0x08, 0x22, 0x81, 0x06, 0x3A, 0x20, 0x2C, 0x35, 0x37, 0x3D, 0x8B, 0x5A, 0x08, 0xB5, 0xEE, 0x07, 0x6C, 0x08, 0x92, 0xA6, 0x58, 0x6F, 0x88, 0x30, 0x08, 0xDA, 0x0C, 0xE6, 0x3C, 0xB4, 0xC2, 0x71, 0x7D, 0x7C, 0x28, 0xDE, 0x9A, 0xB0, 0x3D, 0x92, 0x4E, 0x24, 0x1D, 0xE5, 0xC7, 0xCD, 0xDA, 0x0B, 0xEB, 0xB1, 0x70, 0x06, 0x2B, 0x20, 0x04, 0xD9, 0xA1, 0x54, 0xE3, 0xF3, 0x69, 0xD2, 0xBD, 0x1E, 0xD2, 0x0E, 0x7E, 0x9C, 0xEF, 0x4C, 0x16, 0x9E, 0xC9, 0x89, 0x53, 0x1A, 0xD3, 0x4C, 0xBE, 0xC2, 0x14, 0x99, 0xB1, 0x09, 0x0A, 0x88, 0x93, 0x0E, 0xA6, 0xF1, 0x4C, 0x5E, 0x61, 0x1D, 0x72, 0x49, 0xB6, 0xA6, 0x66, 0x40, 0x77, 0xAB, 0x1A, 0x89, 0x95, 0xA1, 0xD9, 0xF8, 0x84, 0xDE, 0x82, 0x1A, 0x27, 0x65, 0x7E, 0xA6, 0x98, 0xD6, 0xCC, 0x35, 0x8C, 0x52, 0x4D, 0xBA, 0x10, 0xFE, 0x12, 0x55, 0x8E, 0x51, 0x4D, 0xD8, 0x04, 0xA5, 0xE3, 0x13, 0x36, 0xF3, 0xD1, 0x92, 0x52, 0x61, 0x16, 0x0B, 0xA5, 0xF4, 0xDF, 0x2E, 0x84, 0xA0, 0x32, 0x50, 0xC7, 0x85, 0x1A, 0xD9, 0xC2, 0x35, 0x95, 0x88, 0x4F, 0xD8, 0x31, 0x3D, 0xF8, 0xB9, 0xA9, 0x6F, 0x30, 0xF9, 0x7A, 0x67, 0xD5, 0xD4, 0x78, 0xE8, 0x3B, 0xB2, 0xF8, 0x7D, 0x36, 0x96, 0x98, 0x0D, 0x71, 0x86, 0x58, 0x56, 0x33, 0xD6, 0x4E, 0xF0, 0x63, 0xE9, 0x72, 0xCE, 0x6A, 0x02, 0xD3, 0xED, 0x8A, 0xC3, 0x75, 0x92, 0x74, 0x51, 0x8D, 0x8D, 0xC8, 0x9F, 0xD6, 0x41, 0x60, 0xF4, 0x67, 0x93, 0xB8, 0x6F, 0xCE, 0x53, 0x78, 0x8A, 0x1E, 0x46, 0x8B, 0xDE, 0xEB, 0x18, 0xF4, 0x3F, 0xBB, 0x93, 0xD3, 0x4E, 0xD4, 0x28, 0x76, 0x41, 0xA2, 0xE1, 0xB7, 0x06, 0xEE, 0x4D, 0x1D, 0x11, 0x4D, 0x99, 0x87, 0x1C, 0x52, 0x88, 0xE4, 0xFC, 0x49, 0x43, 0x01, 0x53, 0x2E, 0x12, 0xD8, 0x6A, 0x1C, 0xD5, 0x1D, 0x6F, 0x34, 0x5C, 0x7A, 0xDB, 0x52, 0x65, 0xAA, 0x58, 0xDF, 0x58, 0xBD, 0xBF, 0xAE, 0x62, 0xF0, 0x8C, 0x57, 0x2C, 0xD6, 0x2E, 0x37, 0xBE, 0x62, 0x42, 0x3F, 0xDA, 0x15, 0x38, 0x7D, 0x5B, 0x5B, 0x88, 0xF4, 0x5E, 0xEB, 0xCE, 0xA8, 0xA5, 0xCA, 0x7B, 0x3B, 0xAE, 0xCB, 0xF4, 0x0A, 0x5C, 0x26, 0xB2, 0x48, 0x02, 0x23, 0x0F, 0x87, 0xB1, 0xAA, 0x45, 0x5C, 0x3B, 0x51, 0xD8, 0x31, 0x89, 0x81, 0x1F, 0x53, 0xE0, 0x06, 0x85, 0xBA, 0xF3, 0x93, 0x82, 0x96, 0x47, 0xEC, 0x2D, 0xAC, 0x8B, 0xAB, 0xD8, 0x05, 0xE1, 0x11, 0x93, 0x5B, 0x8B, 0x72, 0x80, 0xA2, 0x58, 0x13, 0xC4, 0x2C, 0xC0, 0x23, 0x83, 0x58, 0xB8, 0x4C, 0x58, 0x73, 0xF0, 0x1A, 0x19, 0xE4, 0x10, 0x05, 0x0D, 0x29, 0x42, 0xFA, 0xD5, 0x7E, 0x5D, 0xF0, 0xE4, 0xE1, 0x86, 0x90, 0xC1, 0x86, 0xA0, 0x41, 0xB5, 0xEF, 0x98, 0x35, 0xA4, 0x4B, 0x11, 0x34, 0x3C, 0x10, 0x3C, 0xA8, 0xF1, 0xEC, 0xD6, 0x04, 0xDF, 0x10, 0x05, 0x0D, 0x6B, 0xB8, 0x56, 0x35, 0xEF, 0x11, 0x84, 0x3D, 0x12, 0x7B, 0x3E, 0x30, 0x07, 0x5F, 0x81, 0x43, 0x86, 0x06, 0xFC, 0x87, 0x45, 0x93, 0x9D, 0x0D, 0x41, 0x72, 0xA2, 0x7B, 0x0A, 0x7A, 0xD3, 0xCA, 0x1B, 0x20, 0x3C, 0xEF, 0x3B, 0xD1, 0xD3, 0x72, 0xDE, 0x98, 0xD8, 0xF3, 0x67, 0xA1, 0xE7, 0x2D, 0x21, 0xF3, 0x98, 0x95, 0xF9, 0x8B, 0x9C, 0x77, 0x53, 0xEC, 0x79, 0x57, 0xE8, 0x59, 0x41, 0xF2, 0x46, 0x46, 0x79, 0x03, 0x62, 0xCF, 0x42, 0x08, 0x2D, 0x75, 0x32, 0x49, 0x27, 0x33, 0x4D, 0x98, 0x19, 0xE7, 0xB9, 0xEF, 0xB8, 0xD1, 0x3B, 0x62, 0x5B, 0x7B, 0x84, 0x54, 0x60, 0x30, 0x9A, 0x8E, 0xED, 0x8C, 0xE2, 0x84, 0x4A, 0x6D, 0xE2, 0xE1, 0x82, 0x2B, 0xBE, 0xD9, 0x6D, 0x83, 0x1F, 0x8C, 0x1A, 0x16, 0xEA, 0x13, 0x31, 0x2F, 0x51, 0xBA, 0xE0, 0x05, 0xDF, 0x54, 0xBD, 0x56, 0xD3, 0xA7, 0x40, 0x94, 0xB8, 0x8C, 0x5F, 0xA3, 0x40, 0x14, 0x2D, 0xB2, 0x43, 0xA1, 0x19, 0x75, 0x8F, 0x7C, 0x8D, 0x90, 0x4C, 0xCA, 0xB9, 0xCE, 0x6B, 0x27, 0x70, 0xDD, 0xF7, 0x2F, 0xDF, 0x4C, 0x4C, 0x1B, 0x48, 0xCD, 0xE2, 0xA4, 0x42, 0x61, 0x0D, 0xCE, 0xF0, 0xB1, 0x88, 0x82, 0xEA, 0x48, 0xC5, 0xBD, 0xE5, 0xEA, 0x4D, 0x7E, 0xA1, 0xCA, 0xA9, 0x64, 0xA8, 0x9C, 0x30, 0x25, 0x2F, 0x80, 0x38, 0x94, 0xAF, 0x7D, 0x8B, 0xAD, 0x55, 0xA5, 0x64, 0x55, 0x62, 0x7E, 0xD5, 0xA6, 0x7C, 0x3A, 0x68, 0x73, 0x3F, 0x90, 0xF3, 0x8A, 0xEC, 0xBC, 0xCD, 0xE0, 0x17, 0xF2, 0xDC, 0x4C, 0x30, 0x8B, 0xCD, 0xCC, 0x12, 0x21, 0xB3, 0xC8, 0xC4, 0x7B, 0xCD, 0xDD, 0x28, 0x7F, 0x3C, 0x42, 0x32, 0x29, 0x80, 0x1D, 0xBD, 0xFD, 0x04, 0xAC, 0x4C, 0xCC, 0xDC, 0x4C, 0x32, 0x4B, 0xED, 0xE8, 0x10, 0x9F, 0x59, 0x36, 0x31, 0x48, 0xF2, 0xC0, 0xEF, 0x04, 0x72, 0x08, 0x4C, 0x99, 0x99, 0x00, 0x53, 0xE4, 0xA4, 0xF8, 0xB8, 0x38, 0x8C, 0x8F, 0xA4, 0xBC, 0x05, 0xFD, 0x71, 0xD0, 0x18, 0x92, 0x11, 0xFE, 0xE3, 0xFD, 0x8E, 0x6D, 0x62, 0x09, 0x1F, 0x6F, 0x5E, 0xFC, 0x5E, 0x90, 0xF8, 0xF1, 0x0E, 0x23, 0x06, 0xD3, 0xD5, 0x8F, 0xA9, 0xC8, 0xCE, 0x53, 0x10, 0xCC, 0x77, 0x75, 0xAC, 0xA6, 0x13, 0x30, 0x4D, 0xE8, 0xEA, 0xA8, 0x45, 0x5F, 0x20, 0x88, 0xDA, 0xCD, 0x3B, 0x25, 0xC4, 0x83, 0xF5, 0x98, 0xB7, 0x21, 0x39, 0x80, 0xFF, 0x98, 0x37, 0xB6, 0x69, 0xA6, 0xF0, 0x31, 0x6F, 0xFC, 0x5E, 0xB9, 0x18, 0xC2, 0x1E, 0x0B, 0x62, 0xD3, 0xFF, 0x98, 0xEA, 0xA4, 0xC1, 0xD4, 0x39, 0x15, 0x17, 0x52, 0x87, 0x07, 0x78, 0x65, 0x99, 0x6A, 0xD8, 0x11, 0x0B, 0x2E, 0x20, 0x29, 0x81, 0x19, 0x24, 0x62, 0xC6, 0x39, 0x0D, 0xAC, 0x8C, 0xA3, 0xBE, 0x5D, 0x47, 0xB1, 0xAE, 0x06, 0x21, 0x87, 0x30, 0x8B, 0x39, 0xC7, 0x55, 0x9C, 0x66, 0x13, 0xE7, 0x1D, 0x0B, 0xE7, 0xA4, 0x93, 0x63, 0x32, 0xAB, 0xE9, 0xD5, 0xCD, 0x72, 0xFF, 0xAE, 0xA5, 0xE6, 0x99, 0xD5, 0x47, 0x3B, 0xF3, 0x05, 0xB0, 0xF0, 0x63, 0x71, 0x64, 0x3D, 0x6C, 0xDE, 0x88, 0xAA, 0x6F, 0x04, 0x40, 0xDA, 0x75, 0x50, 0xE4, 0x5B, 0xB0, 0x79, 0x13, 0xAA, 0xEE, 0x09, 0x00, 0xFC, 0x37, 0x01, 0x21, 0xC3, 0xA0, 0x0E, 0xA4, 0x67, 0x99, 0x64, 0x34, 0x9F, 0xD4, 0xDD, 0xD8, 0x86, 0x91, 0x1F, 0x16, 0x62, 0x53, 0x2E, 0xDC, 0xBA, 0x30, 0x5F, 0x16, 0x21, 0xBB, 0x50, 0x89, 0xA2, 0x48, 0x13, 0x66, 0x58, 0x7B, 0xA1, 0x26, 0x22, 0x46, 0x16, 0x91, 0x97, 0xC2, 0xCF, 0xE2, 0x1B, 0xD6, 0x6A, 0x89, 0x99, 0x02, 0xBD, 0xC6, 0x21, 0xE4, 0x23, 0x95, 0x1F, 0xB6, 0xB2, 0xDB, 0x46, 0x0B, 0x71, 0x9E, 0xBE, 0x4E, 0x78, 0x44, 0x13, 0x44, 0xCC, 0xFA, 0x3D, 0xA3, 0xE4, 0xF7, 0x8C, 0x57, 0xE7, 0xEC, 0x3B, 0x28, 0xC4, 0xEC, 0x88, 0xC2, 0x18, 0xC1, 0xD2, 0x9D, 0x96, 0x08, 0x8F, 0x70, 0xD9, 0x0D, 0x31, 0x48, 0x7C, 0x42, 0x47, 0xFB, 0xE0, 0x48, 0xF4, 0xE5, 0x1F, 0xA2, 0xDF, 0xFB, 0xA1, 0x10, 0xF0, 0xC8, 0x12, 0xEC, 0x95, 0x6C, 0x67, 0x15, 0xE4, 0x1B, 0xD7, 0x69, 0x4D, 0x68, 0xA1, 0x98, 0x9A, 0xE2, 0xBE, 0xBF, 0x6B, 0x3A, 0x98, 0x91, 0x0B, 0xF6, 0x1A, 0xDE, 0x31, 0xAE, 0xB5, 0xB0, 0x48, 0x2D, 0x91, 0x93, 0xD5, 0x73, 0xEE, 0xC7, 0xAE, 0x2B, 0x3D, 0xF6, 0xE1, 0x21, 0xC0, 0xEC, 0x2F, 0x22, 0x5B, 0x73, 0x8D, 0x1D, 0xDD, 0x01, 0x19, 0x8F, 0xBC, 0xB1, 0xBD, 0xA9, 0xF2, 0xF2, 0xFE, 0xCB, 0x0B, 0xF9, 0x86, 0x57, 0x53, 0xDA, 0xE4, 0x41, 0xBD, 0x5C, 0x3F, 0xB8, 0x30, 0xD2, 0x7C, 0xFB, 0xDA, 0xA7, 0xEC, 0xB6, 0xC0, 0xD3, 0xF0, 0xBE, 0x53, 0x1F, 0x9C, 0x9D, 0xFD, 0xF1, 0x8C, 0x0F, 0x67, 0x9F, 0x62, 0xB7, 0x1D, 0x47, 0x05, 0x7E, 0x34, 0xAC, 0x4D, 0x2D, 0x44, 0x33, 0xB1, 0x0E, 0x31, 0xA6, 0xE6, 0xDA, 0xF0, 0x2C, 0xFE, 0xB7, 0x10, 0xCF, 0x91, 0xD3, 0xDA, 0x74, 0xF0, 0xB3, 0x8B, 0x7F, 0x91, 0x54, 0x5E, 0xAC, 0xFC, 0x0B, 0x60, 0x84, 0x16, 0xD2, 0xA5, 0xB5, 0x9A, 0x00, 0x7E, 0x87, 0x0A, 0xB5, 0x1A, 0x20, 0x6E, 0x04, 0xAB, 0x84, 0xCF, 0x04, 0xD2, 0x87, 0xDA, 0xAE, 0x39, 0x1D, 0x5D, 0x83, 0x89, 0x42, 0x7D, 0xE0, 0x49, 0x58, 0xC3, 0x45, 0x2C, 0x22, 0x52, 0xC7, 0xED, 0x58, 0x80, 0x16, 0xD8, 0x51, 0x1F, 0x7D, 0x92, 0x8A, 0xEE, 0x5D, 0x9C, 0xB7, 0xBA, 0x54, 0x80, 0x21, 0x3C, 0x42, 0xBA, 0xAF, 0xF3, 0x58, 0xEB, 0xD5, 0x37, 0x9A, 0xFE, 0x52, 0xFF, 0xC6, 0xE5, 0xA6, 0xDB, 0xFB, 0x81, 0x6A, 0x85, 0x3A, 0x4D, 0x27, 0x9C, 0xC8, 0x3C, 0xD4, 0x1E, 0x41, 0xAD, 0xED, 0xC7, 0x57, 0x77, 0x2D, 0x9A, 0xBE, 0xF3, 0x64, 0x0C, 0x58, 0x62, 0xBE, 0x00, 0x3B, 0xC6, 0x23, 0xE6, 0xD8, 0xF1, 0xC4, 0x82, 0xF5, 0xAA, 0x8D, 0xA5, 0xAB, 0x4A, 0x4A, 0x8B, 0x0B, 0xD6, 0xE4, 0xC5, 0xF9, 0xE8, 0x15, 0xD7, 0x49, 0x61, 0xB9, 0xFA, 0x96, 0xE6, 0x82, 0x65, 0xD3, 0xBB, 0x8D, 0xBA, 0x77, 0x1B, 0x7F, 0x3F, 0xD4, 0xB8, 0x2F, 0x33, 0x2C, 0xFA, 0xB0, 0x10, 0xEB, 0x47, 0xE9, 0x57, 0xE9, 0x35, 0x9E, 0x09, 0x06, 0xEC, 0xEB, 0xC3, 0x2B, 0x96, 0xAF, 0xC0, 0xFB, 0x97, 0x5D, 0x17, 0x2C, 0xBF, 0x8A, 0x28, 0x86, 0x13, 0x71, 0xE3, 0x64, 0x72, 0x9B, 0x39, 0x36, 0xEB, 0x4A, 0xFF, 0xC8, 0xB9, 0x9E, 0xB6, 0x6B, 0xD7, 0xDA, 0x80, 0xA5, 0xCE, 0xDA, 0xC4, 0x52, 0xD8, 0x87, 0x71, 0x59, 0xF1, 0x13, 0xC3, 0x5F, 0x16, 0x11, 0x2F, 0xC1, 0xCF, 0x71, 0x51, 0x29, 0x27, 0x77, 0x5A, 0x3E, 0xB6, 0x87, 0x32, 0xCC, 0x47, 0xA7, 0xCF, 0x00, 0xCF, 0x41, 0xA8, 0x00, 0x1B, 0xF4, 0x25, 0x72, 0xEC, 0x53, 0x42, 0x0A, 0xD6, 0xAF, 0x5A, 0x53, 0x50, 0x54, 0xE2, 0xA3, 0x17, 0x61, 0x80, 0x5F, 0x14, 0xF9, 0xAE, 0x39, 0x5D, 0x70, 0x20, 0xDE, 0x48, 0x9F, 0xDD, 0x42, 0x9F, 0x3B, 0x4C, 0x97, 0xE3, 0x8C, 0x25, 0x69, 0x8C, 0xA5, 0x75, 0x42, 0xAB, 0x4D, 0xC0, 0x9F, 0xF5, 0xBB, 0xD6, 0x63, 0x9F, 0xC7, 0xAB, 0x87, 0xAF, 0x8B, 0x85, 0x1F, 0xA8, 0xBD, 0x04, 0xFA, 0x78, 0x75, 0x25, 0x97, 0xF1, 0x13, 0xFA, 0x9E, 0x93, 0xF3, 0x21, 0x21, 0xE1, 0xAB, 0xB9, 0x56, 0x83, 0xC6, 0xCC, 0x78, 0xD1, 0xC1, 0xEF, 0x6B, 0x33, 0x28, 0xEA, 0x18, 0x2B, 0x84, 0xBD, 0x7E, 0x07, 0x86, 0x12, 0x25, 0x66, 0xDD, 0xB3, 0x0E, 0xA2, 0xDB, 0x66, 0x2F, 0x12, 0x1A, 0x57, 0x92, 0xA5, 0x8A, 0x94, 0x58, 0x8F, 0x16, 0xA8, 0xC5, 0x36, 0x9D, 0xE0, 0xEC, 0xDB, 0xE7, 0x71, 0xE9, 0x77, 0xE5, 0x16, 0x81, 0xC7, 0xEA, 0xDF, 0xBD, 0x2F, 0x35, 0x46, 0x1F, 0x06, 0x4B, 0x55, 0x8A, 0x23, 0xB3, 0x16, 0x4D, 0x8F, 0xB9, 0xBB, 0xE3, 0x87, 0xA2, 0x98, 0x9A, 0x1F, 0x76, 0xEC, 0x2C, 0xDC, 0xB5, 0x5E, 0x4B, 0xD4, 0xC0, 0x5E, 0xB1, 0xAD, 0xC4, 0xD9, 0xD8, 0xD3, 0x1F, 0x01, 0xCD, 0xC5, 0x68, 0x42, 0xB7, 0xE3, 0x46, 0xDB, 0xF0, 0x50, 0xEE, 0xB1, 0xD6, 0xCB, 0xBD, 0x54, 0x14, 0xC4, 0x09, 0xF7, 0x0C, 0xC9, 0x92, 0x92, 0x24, 0x78, 0xB7, 0x9A, 0xF5, 0x52, 0xC0, 0x0D, 0xFF, 0xEB, 0x2B, 0x70, 0x60, 0x9C, 0x99, 0xF4, 0xD0, 0xD2, 0xBC, 0xF2, 0x55, 0xEB, 0x37, 0x14, 0x17, 0x65, 0x0D, 0x77, 0x8D, 0x9E, 0x1B, 0x1A, 0xBE, 0x31, 0xD8, 0x15, 0xC1, 0xA2, 0x07, 0x5A, 0x9A, 0x33, 0x4B, 0x1A, 0x29, 0x59, 0x05, 0x16, 0xCD, 0x1D, 0xC6, 0xAA, 0x31, 0x86, 0x8A, 0xC5, 0x7C, 0x0D, 0xAF, 0x7A, 0x41, 0x58, 0x55, 0x4C, 0x54, 0x95, 0x88, 0xAB, 0x4A, 0xE5, 0x55, 0xEB, 0x83, 0x1D, 0x0D, 0xC1, 0xFD, 0x0D, 0x1C, 0xC1, 0xE1, 0x97, 0x0E, 0x67, 0x06, 0x2E, 0x3F, 0x28, 0xF8, 0xBA, 0x56, 0xD8, 0x2C, 0x35, 0x7C, 0xA7, 0x5C, 0x16, 0x91, 0xF4, 0xE6, 0x2F, 0x43, 0x89, 0xE1, 0xC2, 0x43, 0xA6, 0x81, 0x56, 0x47, 0xE5, 0x87, 0x57, 0xF7, 0x5F, 0x5C, 0xC8, 0xAE, 0x9E, 0xBD, 0xA6, 0x7C, 0x7A, 0x49, 0xBE, 0x62, 0x4D, 0x5E, 0xF1, 0xC2, 0x0D, 0x6B, 0xF2, 0x0A, 0x97, 0xD0, 0x8E, 0x61, 0x01, 0x6F, 0xED, 0x58, 0x79, 0xB5, 0x7F, 0x45, 0x7D, 0x7F, 0xEE, 0xD5, 0xFE, 0x5A, 0x33, 0x37, 0x6A, 0xCF, 0x40, 0xAB, 0xFD, 0x96, 0x6D, 0x3F, 0xA3, 0xB5, 0xF5, 0xB3, 0xDE, 0xCA, 0xDE, 0xA6, 0xCF, 0x5A, 0x2F, 0x2F, 0xF4, 0x52, 0xDA, 0xFC, 0xEE, 0x00, 0x36, 0xB5, 0xAD, 0xBD, 0x17, 0x6F, 0x49, 0x3E, 0x6B, 0x6A, 0x05, 0x8B, 0x61, 0x97, 0x35, 0x78, 0x04, 0xBC, 0x75, 0xC9, 0xB1, 0xA2, 0x5E, 0xF0, 0xD2, 0xC1, 0xFE, 0xFE, 0x5A, 0x6B, 0xF0, 0xF8, 0x3E, 0xCD, 0x06, 0xFB, 0x34, 0x9E, 0xA5, 0x0E, 0xEA, 0x18, 0x08, 0x5A, 0xEB, 0x0B, 0xCF, 0x35, 0xA6, 0xCC, 0xD4, 0xB7, 0xD7, 0x48, 0xD5, 0xCC, 0x4D, 0xE5, 0xCC, 0x92, 0xBA, 0xD7, 0xB0, 0x21, 0xC8, 0xF3, 0x07, 0x3E, 0xEF, 0x81, 0x9A, 0x17, 0x8F, 0x49, 0x43, 0xDA, 0x6C, 0xC1, 0x3D, 0x0D, 0x41, 0x6B, 0x09, 0xC6, 0x38, 0x4C, 0x27, 0xE8, 0xA6, 0xCF, 0xED, 0x4C, 0x99, 0x5B, 0x43, 0x9F, 0xDB, 0x5D, 0x5E, 0x53, 0xAA, 0x62, 0x6E, 0x61, 0x31, 0x37, 0xA5, 0x55, 0xA9, 0x54, 0xCC, 0xCD, 0x2A, 0x7A, 0x59, 0x79, 0x95, 0x4A, 0x58, 0x15, 0xD0, 0xED, 0xC5, 0x1B, 0x31, 0x51, 0x97, 0xCA, 0x7A, 0xC2, 0xF3, 0xE6, 0x28, 0x6F, 0x54, 0xCE, 0x8B, 0xE7, 0x77, 0x50, 0x57, 0x91, 0x43, 0x14, 0xDC, 0xA6, 0x08, 0x59, 0x4B, 0x6C, 0x9F, 0xF3, 0xA9, 0x6E, 0x8E, 0x3D, 0x65, 0xD6, 0x69, 0x7A, 0xF2, 0xA7, 0xBA, 0x64, 0x3D, 0x7D, 0x4E, 0xF7, 0xA8, 0x6F, 0x19, 0xC9, 0xDC, 0x92, 0xCF, 0x4C, 0xCA, 0xAF, 0x2A, 0x06, 0xBF, 0xEA, 0x2A, 0x95, 0xA9, 0x4A, 0x45, 0x32, 0xCB, 0x22, 0x99, 0x65, 0x63, 0x0C, 0xC0, 0xF6, 0x75, 0x75, 0xD5, 0x2A, 0x56, 0x15, 0xB0, 0x6A, 0x71, 0x5D, 0xD5, 0xA6, 0x3A, 0x4D, 0xCC, 0x8F, 0xA3, 0xBC, 0x1F, 0x9D, 0xBC, 0x9F, 0xAD, 0xBC, 0x11, 0x82, 0xAE, 0xEC, 0x04, 0x37, 0x5F, 0x43, 0x50, 0xF7, 0xF8, 0x6F, 0xBF, 0x22, 0xA8, 0x4B, 0x14, 0xD4, 0xA1, 0x09, 0xEE, 0x52, 0xA0, 0x5F, 0x99, 0x52, 0x66, 0x75, 0xA6, 0xCC, 0xAA, 0x1B, 0xFF, 0x6D, 0x69, 0x9F, 0x59, 0x9B, 0x32, 0xD3, 0x48, 0x9F, 0x53, 0xDB, 0x3E, 0x03, 0x08, 0x7D, 0xA4, 0x9D, 0xD3, 0x47, 0x9F, 0x63, 0x69, 0xC7, 0x3A, 0x44, 0xCC, 0x0A, 0x15, 0x7D, 0x73, 0x64, 0x55, 0x99, 0xBA, 0x2A, 0xA0, 0x37, 0x85, 0x37, 0xE6, 0x44, 0x07, 0x85, 0xBC, 0xEF, 0x9C, 0xE8, 0x2F, 0x7C, 0xDE, 0x3D, 0x70, 0x35, 0x9A, 0x3C, 0xEF, 0xCA, 0x3D, 0x1F, 0x10, 0xD4, 0xEE, 0x9B, 0xDC, 0x2F, 0xA6, 0x44, 0xB4, 0x29, 0x82, 0xA9, 0x06, 0x75, 0x26, 0xBF, 0x06, 0xCE, 0xEC, 0x44, 0x50, 0x2F, 0x85, 0xB8, 0x6F, 0xDE, 0x4D, 0xDE, 0xAA, 0x4E, 0x10, 0xEB, 0x1F, 0x9E, 0x2F, 0x3A, 0x0C, 0x27, 0xAC, 0x3C, 0x77, 0x7F, 0x0C, 0xBE, 0x02, 0x79, 0x0D, 0x85, 0x9D, 0x2D, 0xC2, 0xFA, 0x54, 0x0F, 0x7B, 0x6E, 0x32, 0x73, 0xB2, 0xF9, 0xD9, 0xB7, 0x21, 0xDD, 0xEE, 0xFE, 0x33, 0xCF, 0xE4, 0xB4, 0xDF, 0x9A, 0xB3, 0x7B, 0xB2, 0x7C, 0xBE, 0x24, 0x75, 0x64, 0x30, 0x55, 0x0F, 0x46, 0xC2, 0x0B, 0xA9, 0x91, 0x19, 0xC8, 0x04, 0x26, 0x25, 0x1D, 0x57, 0xAB, 0x01, 0x1F, 0x41, 0x5B, 0x22, 0xC5, 0x47, 0x2A, 0x9E, 0xC4, 0xF0, 0xDA, 0xCF, 0x23, 0x6A, 0xF5, 0x30, 0xAB, 0x0E, 0x80, 0xA7, 0xA5, 0x8D, 0x83, 0x53, 0x11, 0xC2, 0x4B, 0x64, 0xC7, 0x3C, 0x14, 0x70, 0x2F, 0xC5, 0x5F, 0xB0, 0x27, 0x65, 0xEE, 0xB7, 0x4E, 0x20, 0x8E, 0xF9, 0x25, 0xD5, 0xCD, 0x84, 0xEE, 0xC7, 0xA4, 0xA6, 0xE7, 0x74, 0x7C, 0xEB, 0x7F, 0xB6, 0x88, 0x7E, 0x85, 0x1A, 0x79, 0x3E, 0x35, 0x41, 0x34, 0xA1, 0x9E, 0x78, 0x9C, 0xED, 0x5F, 0xBD, 0xBC, 0xAC, 0x42, 0x9E, 0x92, 0x2E, 0xE3, 0xFD, 0x3C, 0xD6, 0x59, 0x24, 0xB0, 0xC5, 0x53, 0x83, 0x39, 0xF4, 0xD4, 0xBA, 0x55, 0xFD, 0x67, 0x60, 0x3E, 0xA6, 0x4E, 0x70, 0x5D, 0x1F, 0x69, 0x92, 0x25, 0x69, 0xBE, 0xAE, 0x76, 0x5C, 0xD0, 0x17, 0xC3, 0xD5, 0xB9, 0x3F, 0xE7, 0x28, 0xDF, 0x0A, 0x3A, 0x7B, 0x76, 0xB7, 0xE7, 0x33, 0x54, 0x7E, 0x98, 0x20, 0x98, 0xC8, 0x17, 0x2F, 0xA3, 0x7F, 0xCE, 0x17, 0x83, 0x04, 0x7F, 0xE4, 0x8B, 0x1D, 0xE8, 0x7F, 0xDF, 0x7C, 0x71, 0xF3, 0xFF, 0x2D, 0x5F, 0x1C, 0xFB, 0x77, 0xBE, 0xF8, 0x3F, 0x32, 0x5F, 0xDC, 0x4E, 0xCA, 0xEB, 0x69, 0xE8, 0xD7, 0xE9, 0xA4, 0xFC, 0x39, 0x86, 0x18, 0x1D, 0x7F, 0x2D, 0xFB, 0x6F, 0x95, 0x3F, 0x42, 0xFF, 0x73, 0xF2, 0x47, 0xFE, 0xFF, 0x21, 0x7F, 0x0C, 0xAA, 0x6E, 0xE0, 0x57, 0x9B, 0xA7, 0x64, 0x34, 0xC4, 0x74, 0x99, 0xC7, 0xF3, 0x47, 0x2A, 0x47, 0xDC, 0x8C, 0x80, 0x1A, 0x64, 0x89, 0xE5, 0xA8, 0x7A, 0x28, 0x00, 0xCA, 0x58, 0x07, 0x0D, 0x1F, 0x81, 0x5D, 0xF9, 0x61, 0xFE, 0xFF, 0x5F, 0x7E, 0x58, 0x27, 0xC4, 0xBE, 0x40, 0x15, 0x44, 0x64, 0x0D, 0x95, 0x5A, 0xE5, 0xB7, 0xAB, 0xA7, 0x74, 0x20, 0x03, 0x20, 0x0B, 0xB3, 0x4E, 0xA4, 0x85, 0x09, 0x12, 0xFC, 0x38, 0x97, 0xF6, 0x53, 0x61, 0x9A, 0xB1, 0x52, 0x74, 0xC8, 0x26, 0x32, 0x83, 0x2B, 0xBD, 0x28, 0xCD, 0x50, 0x29, 0x3A, 0x46, 0xB5, 0xA5, 0x81, 0x6A, 0x1B, 0xA2, 0x68, 0x4E, 0x9C, 0xC2, 0x3B, 0xCF, 0xEF, 0x91, 0x7B, 0x01, 0x12, 0x4B, 0xE2, 0x14, 0xFF, 0xF3, 0xFC, 0x0B, 0xE3, 0xED, 0x96, 0xC4, 0x29, 0xDC, 0xF3, 0xFC, 0xAB, 0xA0, 0x6D, 0x08, 0x3D, 0x14, 0x93, 0x75, 0x58, 0x78, 0x52, 0x92, 0x24, 0x71, 0x9C, 0xE6, 0x7A, 0xD8, 0x62, 0x91, 0xD8, 0x9C, 0x97, 0xFE, 0x06, 0x0B, 0x68, 0x1B, 0xB4, 0x7C, 0xE6, 0x0D, 0x44, 0x61, 0x4D, 0x14, 0x22, 0x38, 0x81, 0xC4, 0xEA, 0x61, 0x8B, 0x88, 0xAF, 0x63, 0xB7, 0x05, 0x55, 0x08, 0xF8, 0x5A, 0x0C, 0xFF, 0x36, 0x90, 0x45, 0xA6, 0xC8, 0x51, 0x81, 0xF1, 0x07, 0x01, 0x3D, 0xBE, 0x4E, 0xC8, 0x82, 0xB6, 0x9F, 0xB1, 0x24, 0x9C, 0x65, 0xD3, 0x82, 0x55, 0x20, 0xFD, 0xB9, 0x4E, 0x9C, 0xB4, 0x99, 0x8A, 0x84, 0xAC, 0x67, 0xF3, 0x1D, 0x64, 0x8A, 0x06, 0x2D, 0x80, 0x8E, 0x48, 0x04, 0x16, 0x62, 0xF5, 0x16, 0x8F, 0xC6, 0x9B, 0xF7, 0xBF, 0x1A, 0x3A, 0x80, 0xFE, 0x2A, 0x5B, 0x36, 0x24, 0x63, 0xC6, 0x19, 0xFC, 0x22, 0x3E, 0xCF, 0x8F, 0x7A, 0x8F, 0xBB, 0xEB, 0x3D, 0x6C, 0xCD, 0x70, 0x5E, 0x7E, 0x1E, 0x43, 0x9F, 0x11, 0x19, 0x99, 0x9F, 0xC2, 0x67, 0xFA, 0x20, 0xB3, 0x1D, 0x89, 0x98, 0x4A, 0xC8, 0x2C, 0xB1, 0x28, 0xCA, 0xE9, 0xB3, 0xEB, 0x74, 0xDC, 0x94, 0xE0, 0x3E, 0x5B, 0x50, 0x8E, 0x62, 0xF5, 0xA9, 0x57, 0x4B, 0xD2, 0xC3, 0xA2, 0x41, 0xD6, 0xE1, 0x8D, 0xBC, 0xD0, 0x39, 0xBA, 0x72, 0xA4, 0x6B, 0x70, 0xE8, 0xCA, 0x8D, 0xFE, 0xE3, 0x48, 0xAA, 0x4F, 0x5C, 0xB2, 0xFF, 0x27, 0x44, 0xE2, 0x27, 0x71, 0xAD, 0xD3, 0x34, 0xD9, 0x55, 0xD8, 0x17, 0x79, 0xBC, 0x67, 0x6A, 0x4E, 0x66, 0xBD, 0x7F, 0x7B, 0xE7, 0xC9, 0x9A, 0xA2, 0x0C, 0x53, 0xAD, 0xA8, 0xBD, 0x64, 0x4F, 0xF4, 0xE1, 0x2D, 0xEF, 0xEE, 0x13, 0x80, 0xE4, 0xC8, 0xBB, 0x4E, 0x12, 0x1C, 0x97, 0xFC, 0x66, 0x5C, 0xD2, 0xEC, 0xD6, 0xE4, 0xE6, 0xB3, 0x09, 0x49, 0x1F, 0xB7, 0x4E, 0x93, 0x08, 0xA0, 0x7F, 0xE7, 0x07, 0xFF, 0xCE, 0x0F, 0xFE, 0xCB, 0xF9, 0x81, 0x02, 0xAC, 0xAF, 0x1B, 0x9C, 0x13, 0x3E, 0xC8, 0x09, 0xBE, 0x07, 0xA8, 0x45, 0x60, 0x2C, 0xA1, 0x1B, 0xF2, 0x5D, 0x76, 0xF5, 0x4B, 0xB1, 0x08, 0xAD, 0x55, 0x8A, 0x2F, 0x4E, 0x5A, 0xD5, 0x5A, 0x9B, 0x21, 0x99, 0xB4, 0x41, 0xFC, 0x10, 0xF5, 0x3D, 0x26, 0x85, 0x79, 0xB5, 0xD9, 0x0F, 0x27, 0xC9, 0xE0, 0xC0, 0x3E, 0x09, 0x1C, 0xE1, 0x5B, 0x28, 0xD5, 0x4C, 0xF5, 0x4D, 0x8F, 0xF5, 0xCA, 0x41, 0xF2, 0x08, 0x9A, 0x9C, 0xB6, 0xA6, 0xC6, 0xCB, 0x71, 0x67, 0x6B, 0xDB, 0x0D, 0x5C, 0x33, 0xEF, 0x9B, 0x4D, 0xBF, 0xEF, 0xF4, 0x32, 0x17, 0xF7, 0xB4, 0x7D, 0x83, 0xC3, 0xF8, 0xFD, 0xEF, 0xAF, 0x7A, 0xAC, 0x46, 0x9C, 0x3B, 0xEF, 0x54, 0x24, 0xC9, 0xCC, 0xDF, 0xCC, 0x9D, 0xB1, 0x65, 0x35, 0xF2, 0xDB, 0x8A, 0x43, 0x77, 0x92, 0x64, 0x90, 0x56, 0xC8, 0xDA, 0xB6, 0x1A, 0x89, 0x59, 0xB4, 0x63, 0x2B, 0x5E, 0xE3, 0xA5, 0xFE, 0x71, 0xDB, 0x2F, 0xD7, 0x58, 0xD6, 0xF1, 0x33, 0x2C, 0x0C, 0x65, 0x43, 0x5A, 0xD2, 0x5A, 0xD9, 0x86, 0x27, 0xBC, 0x61, 0x67, 0xBE, 0x46, 0x28, 0x4D, 0x90, 0x90, 0x85, 0x1E, 0x89, 0x34, 0xD9, 0x4E, 0x31, 0x37, 0x0A, 0x99, 0xAE, 0xE9, 0x9D, 0xD2, 0x00, 0xF1, 0xEB, 0x4E, 0x66, 0x89, 0x6B, 0x3A, 0x68, 0x5A, 0x9D, 0xA4, 0x83, 0x59, 0x21, 0x76, 0x4F, 0xEF, 0x6F, 0x0B, 0x48, 0x3B, 0x6A, 0x61, 0x6E, 0x74, 0x53, 0x4F, 0x33, 0xDB, 0xA6, 0x70, 0xB6, 0x91, 0xEE, 0xE9, 0x7A, 0x69, 0x60, 0x4E, 0xA3, 0x85, 0xF9, 0xBA, 0x9B, 0x3A, 0xAA, 0xD9, 0x36, 0x9F, 0x73, 0x4C, 0x0D, 0xA6, 0x51, 0x30, 0x2D, 0xEE, 0xD4, 0x06, 0xD4, 0xB6, 0x19, 0x35, 0xB0, 0x5A, 0x88, 0xF3, 0x4F, 0xA9, 0xD0, 0x13, 0x84, 0x92, 0xA4, 0x60, 0xC8, 0x33, 0x66, 0x5B, 0x64, 0x0D, 0x8E, 0x43, 0x2C, 0x2D, 0x2C, 0xF1, 0xC8, 0x57, 0x73, 0x5C, 0xF0, 0x3E, 0x69, 0x60, 0x6D, 0x5B, 0x56, 0x6A, 0x30, 0x76, 0x39, 0xB2, 0x3B, 0xB5, 0xCF, 0x66, 0xAF, 0x69, 0xCB, 0xEA, 0x98, 0xE8, 0xF4, 0xFF, 0xBF, 0x74, 0x52, 0x43, 0xC6, 0x3B, 0x83, 0xFF, 0xF5, 0x8E, 0xF6, 0xA5, 0x33, 0x2A, 0xDA, 0xBB, 0x15, 0x03, 0x88, 0x1F, 0x4B, 0x68, 0xC1, 0x82, 0x16, 0x91, 0x07, 0xA7, 0x1F, 0xB1, 0x5A, 0x5E, 0x9E, 0xA9, 0x61, 0xD0, 0x58, 0x32, 0x8C, 0x07, 0x21, 0x36, 0x6B, 0x46, 0xD5, 0xD2, 0xB1, 0x32, 0x45, 0x82, 0x88, 0x6F, 0x10, 0xEC, 0x72, 0x62, 0x32, 0x1F, 0x83, 0xA2, 0x05, 0x66, 0xF7, 0x98, 0x0D, 0x64, 0x95, 0x60, 0xD7, 0x62, 0x42, 0xC7, 0xD1, 0xD7, 0xE7, 0x11, 0x95, 0xC2, 0xE6, 0xC1, 0xA0, 0xF5, 0x07, 0xC4, 0x78, 0x33, 0x5E, 0x2C, 0xB1, 0xEE, 0x24, 0x3B, 0x20, 0x58, 0xCC, 0xC7, 0xDA, 0x9C, 0xC1, 0xAF, 0x0C, 0x70, 0xF5, 0x2B, 0xF1, 0x85, 0x2C, 0x75, 0xA0, 0x43, 0xC2, 0x09, 0xA1, 0xE5, 0xFE, 0x4C, 0xA2, 0x3F, 0xF1, 0x57, 0xDA, 0xEF, 0x5A, 0x60, 0x2F, 0x5F, 0xBA, 0x9C, 0x99, 0x9C, 0xD6, 0x9B, 0x02, 0xBD, 0x1B, 0xF2, 0x95, 0x39, 0x44, 0xEB, 0xF1, 0x5B, 0x70, 0xA2, 0x50, 0xBB, 0x06, 0xAA, 0x6E, 0xA8, 0x0A, 0x8E, 0x15, 0x43, 0x7C, 0x44, 0x47, 0xD8, 0x99, 0x2A, 0xBB, 0x4E, 0x1D, 0x24, 0xF3, 0xA1, 0x99, 0x8F, 0x6C, 0x31, 0x7D, 0x5B, 0x05, 0x2D, 0x9D, 0xDB, 0x01, 0xCF, 0x43, 0xFC, 0x1F, 0xCC, 0x29, 0x14, 0x23, 0xE7, 0xA1, 0xDA, 0xD3, 0x9E, 0x8B, 0x85, 0x5E, 0xD6, 0x77, 0x98, 0x73, 0xA0, 0xED, 0x4E, 0xED, 0xD6, 0x2A, 0xAE, 0x51, 0x18, 0xA0, 0xFE, 0xF8, 0x9E, 0x62, 0x01, 0xC6, 0x07, 0x7A, 0x0B, 0xB1, 0x0C, 0x65, 0x70, 0x86, 0xA8, 0xBC, 0xAA, 0x57, 0x0F, 0x35, 0x67, 0x4D, 0x39, 0x96, 0x1A, 0xAA, 0x7E, 0xC1, 0xB3, 0x42, 0xE5, 0x6D, 0x63, 0xFC, 0x9D, 0x27, 0xE0, 0x4B, 0x62, 0xA1, 0x2F, 0x0F, 0xEA, 0x6B, 0xD3, 0x11, 0xCB, 0x1D, 0x91, 0xEF, 0xD2, 0xD0, 0x16, 0xF3, 0x37, 0x0A, 0x7A, 0x68, 0x1A, 0x6A, 0xEE, 0x80, 0x82, 0xCB, 0x5C, 0xCA, 0x43, 0x11, 0x23, 0xB0, 0x1F, 0xED, 0x0D, 0x4A, 0xF9, 0x50, 0xDD, 0x01, 0x53, 0xC6, 0x76, 0x20, 0xFE, 0x88, 0x36, 0xEB, 0xB1, 0x78, 0xDF, 0xC0, 0x0E, 0x7D, 0x4E, 0x26, 0x60, 0xA0, 0x99, 0x54, 0xF8, 0x98, 0x81, 0xD5, 0x21, 0x9C, 0x4A, 0x12, 0xFD, 0xFC, 0x3E, 0x04, 0xEF, 0x8E, 0xC3, 0xA4, 0x44, 0xA6, 0x18, 0xCB, 0xC1, 0x7E, 0xD6, 0xD8, 0x2F, 0xCA, 0x25, 0x59, 0x72, 0x76, 0x9C, 0x62, 0x88, 0x39, 0x0B, 0xD6, 0xFE, 0xA6, 0x7B, 0xDB, 0xB1, 0x5C, 0xAB, 0x34, 0x2B, 0x47, 0x7D, 0x94, 0xC1, 0xD5, 0xDE, 0x95, 0x16, 0x07, 0x07, 0x6B, 0x26, 0xD5, 0x9C, 0xAD, 0x5A, 0x83, 0xA0, 0x42, 0x13, 0x63, 0xB5, 0x66, 0xD9, 0xC2, 0xC5, 0x72, 0x4D, 0xAE, 0x89, 0x91, 0x0F, 0x6B, 0x6F, 0xA3, 0xA7, 0x59, 0x46, 0x2F, 0x1D, 0x1D, 0x92, 0x10, 0x96, 0x1B, 0xCA, 0x88, 0x2E, 0xC9, 0x33, 0xC0, 0x1E, 0x36, 0x83, 0x18, 0x99, 0x34, 0x45, 0x6E, 0x7B, 0xF1, 0x08, 0xC3, 0x9B, 0x15, 0x93, 0xBB, 0xC3, 0xA7, 0x06, 0x17, 0x82, 0x98, 0x92, 0xE0, 0x9D, 0x8C, 0x45, 0xD6, 0x14, 0xAB, 0x4F, 0x23, 0x1B, 0xB6, 0xDC, 0xB5, 0x05, 0x0D, 0x2A, 0x3F, 0x1E, 0xD7, 0x0B, 0x47, 0xAD, 0xFD, 0x0D, 0xD3, 0xC5, 0x64, 0xA6, 0x50, 0xCB, 0x89, 0x68, 0x36, 0x4F, 0xEF, 0xA1, 0xF1, 0x10, 0xBF, 0xBE, 0xF3, 0x6C, 0x99, 0xCB, 0x52, 0x63, 0xD2, 0x98, 0x07, 0x22, 0x62, 0x07, 0xB0, 0x94, 0xE3, 0xD7, 0x51, 0x5E, 0x45, 0xEF, 0x4B, 0xE3, 0x0E, 0xC2, 0xE8, 0x72, 0xD2, 0xEC, 0xBF, 0x06, 0xCE, 0x57, 0x5B, 0x4F, 0x02, 0x71, 0xE5, 0x72, 0x38, 0xFF, 0x08, 0x63, 0x1D, 0x44, 0xF3, 0x10, 0xDF, 0x44, 0xC2, 0x50, 0x16, 0x88, 0x5B, 0x3E, 0x7A, 0xA2, 0xD7, 0x2F, 0xDC, 0xAB, 0xE3, 0x7C, 0xBE, 0x14, 0x1A, 0xD9, 0xD2, 0x59, 0xF5, 0x57, 0xB1, 0x6E, 0xC2, 0x8D, 0x0A, 0xA8, 0x9A, 0x9B, 0xA1, 0x8B, 0xC9, 0xE5, 0xF2, 0x73, 0x71, 0x24, 0xB4, 0x59, 0xC8, 0x35, 0x6B, 0xBF, 0x9C, 0xE9, 0x31, 0x08, 0x21, 0x7E, 0x27, 0x2F, 0x3C, 0x96, 0xBA, 0x86, 0x3E, 0x83, 0x0C, 0x75, 0x4E, 0x48, 0x25, 0xBC, 0x3F, 0x8A, 0x65, 0x4E, 0x58, 0xB6, 0x1D, 0xCA, 0x0D, 0xEE, 0x43, 0x31, 0x83, 0x40, 0xEB, 0x80, 0x74, 0xCB, 0xD1, 0x46, 0xD6, 0x2F, 0x73, 0x9B, 0xF5, 0x45, 0x0E, 0x94, 0x71, 0xC1, 0xF1, 0xAB, 0xC5, 0xBB, 0x45, 0x23, 0xF0, 0xC5, 0x57, 0x7F, 0x43, 0xCF, 0x1C, 0x36, 0xAC, 0x97, 0x93, 0x35, 0x6F, 0x78, 0x3E, 0x63, 0x13, 0x7C, 0x2A, 0xD1, 0xC4, 0xFE, 0x32, 0xB7, 0x53, 0xBF, 0xE1, 0xD1, 0x38, 0x88, 0xF0, 0x71, 0x7A, 0x85, 0x8C, 0x83, 0x16, 0x1A, 0x3F, 0x2F, 0x1F, 0x07, 0x3D, 0x2B, 0x09, 0xB9, 0x05, 0x40, 0x6B, 0xD9, 0xBB, 0x34, 0xD5, 0x22, 0x7F, 0xDE, 0x57, 0xB1, 0x31, 0x91, 0x6C, 0x7E, 0x8E, 0x2A, 0x50, 0x69, 0x8B, 0x56, 0x5B, 0x69, 0xF7, 0x67, 0xDA, 0x8C, 0x30, 0x0D, 0x6C, 0x55, 0xBD, 0x64, 0x4B, 0x37, 0xBA, 0x02, 0x39, 0x1B, 0x7B, 0x88, 0x0F, 0xF9, 0xE3, 0xAF, 0x9E, 0xB6, 0x06, 0x12, 0xCD, 0x4E, 0xC8, 0xC3, 0xF1, 0xC7, 0x7A, 0xEF, 0xEF, 0x11, 0x14, 0x7B, 0x3D, 0xB8, 0x00, 0xD6, 0xBB, 0x92, 0x3C, 0x79, 0x5B, 0xFB, 0xAA, 0xD5, 0xAC, 0x45, 0x63, 0x4C, 0xBB, 0x1F, 0xDB, 0x7F, 0xF0, 0xF3, 0x0D, 0xCE, 0xF9, 0x44, 0x08, 0xB0, 0xBF, 0x4A, 0xF3, 0xE1, 0xFC, 0xDB, 0xCC, 0x93, 0x9B, 0x8D, 0x3B, 0xFE, 0xCE, 0x8A, 0x24, 0x2E, 0x4C, 0x08, 0x08, 0x8A, 0xD4, 0x86, 0xAC, 0x85, 0x18, 0x13, 0xDC, 0x54, 0xC7, 0xD2, 0x36, 0xD7, 0xDA, 0xBC, 0x27, 0x48, 0x6D, 0x0D, 0xA1, 0x77, 0x24, 0xA8, 0x8C, 0x28, 0x14, 0xFB, 0xDA, 0xA0, 0x5A, 0x34, 0xD4, 0x72, 0xC7, 0x36, 0x5D, 0x3A, 0xC5, 0x6C, 0xC5, 0x5D, 0xD8, 0x16, 0xE3, 0x96, 0x66, 0xCD, 0x24, 0x17, 0xF6, 0xA7, 0xD0, 0xBB, 0x7B, 0xD0, 0x6C, 0x42, 0xA9, 0xA6, 0xCE, 0x14, 0x66, 0x8D, 0x95, 0x19, 0x48, 0xD8, 0x2C, 0x70, 0x36, 0x02, 0x1C, 0x46, 0x00, 0xCA, 0x86, 0x19, 0x8B, 0x9E, 0xA0, 0xB4, 0xB3, 0xDE, 0x68, 0x86, 0xFD, 0x5D, 0x94, 0xD9, 0x61, 0x3F, 0xEF, 0x41, 0x97, 0xB9, 0x28, 0xAB, 0x76, 0x3A, 0x98, 0x81, 0x69, 0x2E, 0xCA, 0xB5, 0x26, 0x40, 0x29, 0x49, 0x78, 0xF1, 0x09, 0xCA, 0x61, 0xE3, 0xD6, 0x16, 0x0D, 0xEE, 0x5A, 0xBB, 0x6A, 0xA4, 0x73, 0xEB, 0x69, 0x89, 0x9B, 0x8F, 0x2D, 0xEC, 0x91, 0x0D, 0xCD, 0x9D, 0xD0, 0x16, 0x17, 0x74, 0xB3, 0x80, 0xBB, 0x68, 0x38, 0x0C, 0xDC, 0x35, 0xC8, 0xCA, 0x9A, 0xFC, 0x0A, 0x82, 0xB6, 0x73, 0x6D, 0x15, 0x6A, 0x5B, 0x4C, 0x8A, 0x14, 0x39, 0x85, 0x74, 0x89, 0xCF, 0xDB, 0x67, 0xE7, 0x59, 0x65, 0x17, 0x63, 0x6C, 0x71, 0xF2, 0xD8, 0x96, 0x3D, 0x7B, 0xA3, 0x94, 0x72, 0xED, 0x4E, 0x39, 0x37, 0x49, 0x99, 0x38, 0xCA, 0x60, 0xC5, 0xE0, 0x62, 0x95, 0x46, 0xF1, 0x9D, 0xBF, 0xE1, 0x20, 0x19, 0x32, 0x1A, 0x3B, 0x90, 0xEC, 0x8C, 0x57, 0xAA, 0x28, 0xE5, 0x96, 0x1F, 0x6C, 0x66, 0x6D, 0xD0, 0x5F, 0x04, 0x96, 0xAE, 0x89, 0x60, 0x69, 0x26, 0x69, 0x2B, 0xB2, 0x22, 0x07, 0xE3, 0xFB, 0xAD, 0x0F, 0x58, 0x81, 0xDD, 0x71, 0x84, 0x82, 0x5F, 0x83, 0x27, 0x53, 0x7A, 0xF4, 0x45, 0x44, 0x4B, 0x43, 0x6E, 0xC6, 0xB2, 0xEE, 0x34, 0x84, 0xCC, 0xB8, 0x17, 0x1A, 0xF7, 0x11, 0x65, 0x79, 0xE2, 0x90, 0x10, 0x69, 0x64, 0xEB, 0x88, 0x43, 0x62, 0x6C, 0xCE, 0xE4, 0xF5, 0xAB, 0x17, 0x7E, 0xB5, 0xC6, 0xA1, 0x66, 0x55, 0xC3, 0x8E, 0x87, 0x6A, 0x41, 0xE1, 0x95, 0x88, 0x76, 0x34, 0x55, 0x8E, 0x59, 0x7B, 0xAA, 0xFA, 0xF3, 0xF7, 0x25, 0x04, 0x80, 0x50, 0x55, 0x42, 0x65, 0xCF, 0x0D, 0x1B, 0x0E, 0xD7, 0x5D, 0x1C, 0x3F, 0x92, 0x2C, 0xF7, 0x14, 0x49, 0x37, 0x3A, 0x8E, 0x5A, 0xF1, 0x76, 0x2F, 0xDB, 0x1B, 0x91, 0xDF, 0xC4, 0xE8, 0xFE, 0x8A, 0x44, 0x0C, 0x56, 0x55, 0xAC, 0x65, 0x1F, 0x1D, 0x30, 0x4A, 0x52, 0x6B, 0x37, 0x1C, 0x80, 0x37, 0x6B, 0xBD, 0xE8, 0xD4, 0x66, 0x4C, 0x7B, 0x84, 0x2C, 0x60, 0x79, 0xC8, 0x52, 0x9F, 0x9B, 0x38, 0xC2, 0x4D, 0xEA, 0x8C, 0x5D, 0x88, 0x9F, 0xC9, 0x58, 0x11, 0x23, 0xF4, 0x1A, 0xEB, 0xF6, 0x4E, 0x3D, 0x60, 0x62, 0x55, 0xC8, 0x30, 0x8C, 0x0A, 0x74, 0xD1, 0xA4, 0xC9, 0xEC, 0x98, 0x48, 0xAF, 0x87, 0xB9, 0xF2, 0xD0, 0xD1, 0x83, 0xE1, 0x46, 0x74, 0x36, 0xF6, 0x6E, 0x76, 0x08, 0x7C, 0xED, 0x57, 0x67, 0xC8, 0xD6, 0x62, 0x14, 0xA8, 0x23, 0xC4, 0xAC, 0x46, 0x1B, 0x1D, 0x44, 0x47, 0xD6, 0x71, 0x69, 0xC4, 0xDF, 0x6D, 0x93, 0xFB, 0x13, 0x43, 0xC3, 0xB4, 0x11, 0xDB, 0x3E, 0x8A, 0x98, 0x12, 0x07, 0xE2, 0xB0, 0x91, 0x2D, 0x25, 0x0E, 0x11, 0xAC, 0x46, 0x76, 0x87, 0xE5, 0xFE, 0xC0, 0xDC, 0xB4, 0xCA, 0x1C, 0x03, 0xD7, 0x68, 0xC6, 0xD5, 0xF5, 0x9E, 0xA3, 0xD9, 0x51, 0xC7, 0xE3, 0xC6, 0x4F, 0xA2, 0x91, 0x0A, 0xA3, 0xE7, 0x12, 0xAF, 0xFD, 0x60, 0xA3, 0x47, 0xA2, 0xE4, 0x77, 0xBA, 0x8A, 0x23, 0x5D, 0x6F, 0x63, 0xE3, 0x47, 0x5C, 0xF4, 0xE4, 0x21, 0xFA, 0x0B, 0x37, 0xD4, 0xB4, 0xD5, 0xD8, 0x02, 0x84, 0x38, 0x5A, 0x71, 0x0A, 0xDB, 0xE7, 0x5B, 0x27, 0x0C, 0xBB, 0x77, 0x30, 0xDC, 0x62, 0x08, 0x33, 0x04, 0x67, 0x9F, 0x5B, 0x6E, 0xA8, 0xE6, 0xB8, 0x94, 0x6C, 0xDD, 0x3F, 0x53, 0x14, 0xE3, 0xF4, 0x7A, 0x38, 0x71, 0x39, 0x49, 0xF6, 0x46, 0x17, 0x7B, 0xE7, 0xDA, 0xC3, 0xEE, 0x7D, 0x68, 0x5E, 0xE0, 0x8C, 0xCF, 0x24, 0x97, 0x5F, 0x09, 0x1B, 0x0D, 0x88, 0x25, 0xA8, 0x53, 0xF9, 0xD8, 0xB2, 0x1F, 0xA7, 0x58, 0xAC, 0x0B, 0x06, 0x57, 0x6B, 0x76, 0x5B, 0xD7, 0x1D, 0xB0, 0x06, 0x0E, 0x13, 0x31, 0xE9, 0x0D, 0xFA, 0x57, 0xBE, 0xD1, 0x6D, 0xEF, 0xE7, 0x44, 0x02, 0xB1, 0x1A, 0x02, 0xDC, 0xBF, 0x9E, 0xC0, 0x22, 0xC4, 0xDF, 0x33, 0xDE, 0x76, 0xA4, 0xED, 0xEC, 0x83, 0x83, 0x47, 0x59, 0xBB, 0xF5, 0x19, 0xEF, 0x9B, 0x32, 0x76, 0xD7, 0x44, 0x20, 0xD6, 0x7C, 0x2D, 0xBF, 0x26, 0x02, 0x6B, 0xCB, 0xA7, 0xC5, 0x8E, 0x54, 0xCC, 0xDC, 0xF3, 0xF2, 0x6D, 0xB7, 0xDA, 0xF4, 0xEA, 0xB1, 0xAE, 0x0F, 0x26, 0xD4, 0x9E, 0x33, 0x79, 0xF1, 0xE0, 0xB2, 0xB2, 0x3C, 0x97, 0xD7, 0xCC, 0xA1, 0x4E, 0x6D, 0xF4, 0x84, 0xD7, 0xBA, 0xAA, 0x26, 0xB1, 0xFD, 0x73, 0xCC, 0x94, 0x77, 0x24, 0x87, 0x80, 0x77, 0xE8, 0x65, 0x8C, 0x88, 0x93, 0xDB, 0x81, 0x77, 0xCE, 0x0C, 0x18, 0x35, 0x8B, 0x80, 0x77, 0x24, 0x97, 0xDC, 0xDE, 0x71, 0xCE, 0x7F, 0x81, 0xE5, 0x71, 0xE7, 0xB1, 0x77, 0x3A, 0x2F, 0xBD, 0x83, 0xF8, 0x39, 0xB6, 0x57, 0xC4, 0x58, 0x7C, 0x80, 0x77, 0x0A, 0x0F, 0x38, 0xD8, 0x6E, 0xEF, 0x7C, 0xE8, 0x9F, 0xCB, 0x8E, 0x69, 0xF1, 0x79, 0x98, 0xAB, 0x9A, 0x0A, 0xBC, 0xE3, 0x00, 0xDE, 0xF9, 0x7E, 0x71, 0x9C, 0xE4, 0xFA, 0xAF, 0xCE, 0xB0, 0xD1, 0xBD, 0x1E, 0x7F, 0xF2, 0xCE, 0x98, 0x32, 0x7A, 0xC3, 0xB7, 0x11, 0xEF, 0xDB, 0x39, 0x1B, 0x17, 0x4F, 0xFD, 0xF8, 0xCA, 0xF4, 0xCF, 0x94, 0x53, 0x9F, 0x0E, 0xB6, 0xAD, 0x1D, 0x2F, 0x8F, 0xB8, 0xD5, 0x86, 0x22, 0x7E, 0xD5, 0xCE, 0x70, 0x07, 0x1B, 0x61, 0xF3, 0xDF, 0xEC, 0x0E, 0x36, 0x63, 0xFA, 0xB9, 0x8E, 0x4B, 0xEE, 0x60, 0xCB, 0x7A, 0x10, 0x1E, 0x04, 0x4E, 0x07, 0x55, 0xAA, 0x30, 0xAA, 0x2B, 0xE9, 0x92, 0xFD, 0x35, 0x0D, 0xFB, 0x58, 0xE8, 0xDB, 0xCB, 0x69, 0x04, 0xBE, 0x0B, 0x7F, 0x71, 0xFE, 0xC3, 0xB5, 0x01, 0xCF, 0xCD, 0xC0, 0x27, 0xCC, 0x3E, 0x25, 0xEF, 0x42, 0xA5, 0xC5, 0xFA, 0xC2, 0x60, 0xFC, 0x44, 0x22, 0x71, 0xB1, 0xCB, 0x94, 0x49, 0xDA, 0xDE, 0xED, 0xFC, 0x5C, 0xBB, 0x4C, 0xF3, 0x45, 0x0C, 0x8C, 0xE7, 0xDE, 0x8B, 0x72, 0x3B, 0x68, 0x30, 0xEF, 0x4A, 0xB8, 0x05, 0x5A, 0x3A, 0xB8, 0x1A, 0x3E, 0x09, 0x1C, 0x04, 0x61, 0x60, 0x45, 0x3B, 0x96, 0x24, 0x0F, 0x5C, 0xFF, 0x95, 0x9C, 0x3A, 0x2D, 0xCC, 0x73, 0x62, 0x45, 0x31, 0x1A, 0xDC, 0xB5, 0x81, 0x7C, 0xE3, 0xEF, 0xEE, 0x8D, 0x3A, 0x51, 0xCC, 0x1B, 0x72, 0x46, 0xBD, 0x1F, 0x37, 0xE3, 0xBE, 0x72, 0xC6, 0x07, 0xFF, 0x29, 0xE8, 0x16, 0xBD, 0x3C, 0x94, 0xE7, 0x0E, 0xBA, 0x72, 0x5A, 0x7C, 0x6C, 0xBC, 0x2B, 0xE8, 0x3A, 0xF7, 0xD5, 0x15, 0x1C, 0x74, 0x07, 0xDD, 0x5B, 0x9D, 0x35, 0x5D, 0x13, 0xDE, 0x3B, 0xEE, 0x39, 0x42, 0xD3, 0xEE, 0xF7, 0xAC, 0x90, 0xC6, 0xC3, 0xD4, 0x69, 0x4C, 0x46, 0x25, 0xDE, 0xF7, 0xFC, 0x93, 0x1D, 0x9F, 0x6B, 0x9F, 0x71, 0x46, 0x1A, 0xFD, 0x80, 0xF0, 0xFC, 0xE4, 0xA3, 0x68, 0x61, 0x49, 0x7C, 0x58, 0x7B, 0xF4, 0xD3, 0x76, 0x94, 0x55, 0xAE, 0x2B, 0x5F, 0xEB, 0xB2, 0xA3, 0x38, 0x6A, 0xEE, 0xCD, 0x78, 0xB7, 0x1D, 0x17, 0xFF, 0x14, 0x50, 0xEF, 0xB6, 0x63, 0x5D, 0xD7, 0x17, 0xFD, 0xDD, 0x2E, 0x3B, 0x0E, 0xE4, 0x58, 0x8F, 0x37, 0x58, 0xF1, 0xDF, 0x43, 0x94, 0xF3, 0x0B, 0x97, 0x2A, 0x01, 0xA5, 0x1E, 0xC6, 0x63, 0xCB, 0x29, 0x6B, 0xA4, 0x17, 0xC9, 0x65, 0x2B, 0xAD, 0x8C, 0x29, 0xFF, 0x18, 0x58, 0xD9, 0x53, 0x99, 0xD7, 0x39, 0x94, 0x67, 0xCF, 0x4B, 0x10, 0x41, 0x32, 0x1F, 0x3D, 0x99, 0xA0, 0xE0, 0xCB, 0x7C, 0x8C, 0x8A, 0xEF, 0x74, 0xEF, 0x9A, 0xB9, 0xD7, 0xDC, 0x81, 0xF7, 0x72, 0x78, 0x51, 0x9F, 0x5B, 0x32, 0x14, 0xFD, 0xCA, 0xEA, 0x44, 0xB7, 0xE4, 0xDC, 0xE5, 0x87, 0x3F, 0x9C, 0x90, 0xBC, 0xF4, 0xB9, 0x4E, 0xCE, 0xF5, 0x35, 0xE3, 0xF7, 0xCB, 0x07, 0x2D, 0x97, 0x17, 0xFE, 0x29, 0xE4, 0xAF, 0x72, 0x2F, 0xB7, 0x78, 0x7C, 0x62, 0xE9, 0xC8, 0xE8, 0xBE, 0xF4, 0xA9, 0xB3, 0xFB, 0xDA, 0x08, 0xF6, 0xD9, 0xD3, 0x21, 0xDF, 0x39, 0xE9, 0xE3, 0x86, 0xC3, 0x6E, 0xA3, 0xBD, 0xDF, 0xB7, 0xF3, 0x6B, 0xB7, 0xE4, 0xB2, 0xF3, 0xEB, 0x07, 0xDD, 0x92, 0xAD, 0xD1, 0xAF, 0xDF, 0x4F, 0x74, 0x87, 0xFC, 0xCB, 0xB6, 0xC3, 0x71, 0x66, 0x6A, 0x6D, 0x3D, 0xF3, 0x37, 0x5C, 0x98, 0x58, 0x5B, 0x5D, 0x38, 0x9F, 0x1E, 0xE6, 0x71, 0x4E, 0x63, 0x53, 0xA5, 0xA8, 0x93, 0x48, 0xE2, 0x12, 0x81, 0x66, 0x5A, 0xEE, 0x36, 0xBC, 0xF4, 0xDB, 0xF1, 0x0D, 0x20, 0x96, 0xCE, 0x31, 0x5F, 0x7F, 0x78, 0xF8, 0x3F, 0xC6, 0xAD, 0x71, 0x23, 0xBC, 0x54, 0x5A, 0x45, 0x5B, 0x3D, 0xB2, 0x45, 0xFD, 0x66, 0x6F, 0x40, 0x30, 0xA7, 0xE6, 0xC3, 0xBB, 0x0D, 0x2F, 0x67, 0x7C, 0x5E, 0x3A, 0x0E, 0xDA, 0x32, 0x2B, 0xB8, 0x6F, 0x1C, 0xF4, 0x63, 0xF8, 0xC6, 0x9C, 0x71, 0x90, 0xF5, 0xCD, 0x2F, 0x15, 0x00, 0x14, 0x9B, 0x29, 0x46, 0xE9, 0x93, 0xDA, 0xA7, 0x9B, 0x34, 0x3D, 0x3B, 0x35, 0x0C, 0xE0, 0x4B, 0x4E, 0xBF, 0x2C, 0x6B, 0x86, 0x1D, 0x45, 0x27, 0xB1, 0x48, 0xCD, 0xF7, 0x47, 0xDC, 0xB9, 0x9D, 0xB9, 0xEC, 0x17, 0xF0, 0x82, 0xFE, 0x1F, 0x01, 0x20, 0x3D, 0xF2, 0xA8, 0x79, 0xD6, 0x9E, 0x2F, 0xC0, 0x73, 0xD4, 0x6A, 0xC6, 0xE9, 0x12, 0xB0, 0x01, 0x11, 0xB0, 0x01, 0x59, 0xBA, 0xAF, 0xD9, 0xC1, 0xF5, 0xEC, 0x8C, 0x75, 0xC0, 0xDA, 0xD3, 0x89, 0xAF, 0xB2, 0x52, 0xD6, 0x93, 0x72, 0x0D, 0xDD, 0x6F, 0xB8, 0xE7, 0xF1, 0xF5, 0xDF, 0xF6, 0x5D, 0xA9, 0x35, 0x22, 0xB7, 0x1E, 0x5C, 0xFF, 0x2D, 0x56, 0xC7, 0x3B, 0x1D, 0xCC, 0xA5, 0x73, 0x07, 0xBB, 0xC7, 0x10, 0x60, 0xD7, 0x09, 0x01, 0xBC, 0x31, 0x4D, 0x7D, 0xBC, 0xDA, 0xC5, 0x6D, 0xE6, 0xB7, 0x53, 0xCB, 0xBA, 0x49, 0x17, 0xA9, 0xD3, 0x34, 0xF9, 0xEA, 0x34, 0x7A, 0x18, 0x9E, 0x28, 0xAC, 0x26, 0xA1, 0x57, 0x52, 0x26, 0xE7, 0xFE, 0xEC, 0x8C, 0xBF, 0xED, 0x03, 0xEE, 0x79, 0x17, 0x76, 0xE4, 0xF3, 0xB2, 0xAF, 0xAC, 0x1C, 0x17, 0xB6, 0xE5, 0xED, 0xEB, 0xD9, 0xBA, 0x48, 0x7C, 0x22, 0xA3, 0xA4, 0x6F, 0x53, 0x4D, 0xE5, 0xD6, 0x91, 0x0E, 0x75, 0xA4, 0x16, 0x6E, 0x26, 0x72, 0x01, 0xA5, 0x3C, 0xF1, 0xEE, 0x13, 0x94, 0x63, 0x55, 0xAF, 0x7F, 0xA5, 0xF6, 0x70, 0x51, 0x0E, 0xBF, 0x7D, 0x23, 0x5B, 0x17, 0xED, 0xA2, 0x6C, 0xDF, 0x56, 0x31, 0x95, 0x7B, 0xCC, 0x45, 0x19, 0x6F, 0x04, 0x94, 0xE6, 0xC4, 0x9F, 0x9F, 0xA0, 0x4C, 0x4D, 0xAB, 0xB8, 0x21, 0xC6, 0xDC, 0xDA, 0xCA, 0xF2, 0x2B, 0xFA, 0xCD, 0x6E, 0x3E, 0x42, 0xD1, 0xBD, 0x02, 0x7A, 0xCC, 0x84, 0xB6, 0x27, 0xB9, 0xBF, 0x30, 0xC1, 0xDD, 0x08, 0xFF, 0x83, 0xBA, 0x1B, 0x03, 0x4C, 0x12, 0x72, 0xA8, 0x77, 0x1E, 0x81, 0xAF, 0x67, 0xAD, 0x61, 0x62, 0x6B, 0x03, 0xBA, 0xC5, 0xEC, 0xB5, 0xEC, 0x1E, 0xD2, 0xAC, 0x4C, 0xAB, 0x7C, 0xD6, 0x39, 0x2F, 0xBE, 0x2E, 0x5C, 0xAC, 0xD3, 0x54, 0xDB, 0xFE, 0xD9, 0x43, 0xFA, 0xF6, 0x99, 0xF5, 0xFF, 0xD8, 0xE3, 0x0D, 0xB2, 0x67, 0x75, 0x52, 0xA8, 0x2F, 0x25, 0x74, 0x3C, 0x1D, 0xCC, 0x7D, 0x31, 0xB2, 0x42, 0xDB, 0x07, 0x82, 0xD2, 0x40, 0x42, 0x77, 0xF8, 0xA2, 0xFF, 0x15, 0x46, 0x25, 0xB8, 0x25, 0x52, 0xB0, 0xEB, 0xF0, 0xD8, 0x99, 0x94, 0xD2, 0xF3, 0x0D, 0xDD, 0x53, 0x55, 0xF5, 0x0A, 0xBA, 0x92, 0x85, 0x92, 0x1D, 0x4E, 0x08, 0x18, 0x35, 0x06, 0x3F, 0x3A, 0xF9, 0xAF, 0xB1, 0x0D, 0xC0, 0xE6, 0x16, 0xEB, 0x4B, 0xA9, 0xF2, 0x2F, 0xAE, 0x8B, 0x19, 0xB4, 0x1C, 0xBB, 0x74, 0xD9, 0xFA, 0xD5, 0x52, 0xB9, 0x06, 0x99, 0x84, 0x91, 0x36, 0x8F, 0x7A, 0xA7, 0x19, 0x64, 0xD0, 0x81, 0x54, 0xE6, 0xDF, 0x2E, 0xFA, 0x87, 0x2D, 0x58, 0xA4, 0xD7, 0xF2, 0x39, 0x0D, 0xFC, 0xA8, 0xB7, 0x5D, 0x39, 0x68, 0xD9, 0xF0, 0x36, 0xE5, 0x89, 0x4A, 0x99, 0x8F, 0x96, 0x6C, 0x11, 0xAD, 0xA2, 0x25, 0xD4, 0xE5, 0xA5, 0xD1, 0x9F, 0x75, 0xBF, 0x2A, 0xDC, 0x13, 0x79, 0x1D, 0x0D, 0x0E, 0x0C, 0x5C, 0xC8, 0x82, 0x3C, 0x7E, 0x9B, 0x8F, 0xDC, 0x42, 0xE4, 0x1A, 0xDE, 0x4B, 0xB1, 0x70, 0xAE, 0x39, 0x65, 0xEA, 0xCC, 0x57, 0x1D, 0x5E, 0x3A, 0x14, 0xD0, 0x8F, 0x5E, 0x18, 0xD6, 0x5F, 0x58, 0x40, 0x36, 0xA8, 0x2B, 0x73, 0x8D, 0x95, 0xCE, 0x75, 0x07, 0xC4, 0xDC, 0x18, 0xAC, 0x8D, 0x05, 0x6C, 0xA2, 0xF1, 0xD4, 0xD8, 0x62, 0xDA, 0x03, 0xCD, 0x12, 0x72, 0x0D, 0x21, 0xA3, 0x6C, 0xB2, 0x95, 0x05, 0x6C, 0xE2, 0x70, 0x62, 0x34, 0x9F, 0x7A, 0x82, 0x66, 0x33, 0xDA, 0xA8, 0x77, 0xA9, 0x84, 0xA2, 0xDA, 0x79, 0x36, 0x1E, 0x37, 0xC9, 0xB4, 0x48, 0x8D, 0x9E, 0xC2, 0x8A, 0x48, 0x8E, 0x2D, 0x46, 0x23, 0x00, 0x19, 0x76, 0x89, 0x84, 0x13, 0xF5, 0x37, 0x34, 0x0C, 0x65, 0x82, 0x4D, 0x48, 0xB6, 0xEE, 0xC1, 0xF6, 0x78, 0xE2, 0x3B, 0x23, 0x10, 0x37, 0x51, 0x71, 0x87, 0xF4, 0x19, 0x1F, 0x2C, 0xC9, 0xB2, 0x48, 0x0C, 0x88, 0x36, 0x88, 0x01, 0x11, 0x1C, 0x04, 0x88, 0xE6, 0x89, 0x38, 0xB3, 0x7F, 0x75, 0x13, 0x5D, 0xEE, 0xE5, 0x36, 0x3D, 0x1F, 0x00, 0x88, 0xD4, 0xE7, 0x7B, 0x02, 0x35, 0x2E, 0x73, 0x05, 0x26, 0xEF, 0x6D, 0x10, 0xE3, 0xEB, 0xEB, 0xEA, 0xD5, 0x40, 0x95, 0x6F, 0xC5, 0xBE, 0xDA, 0xE5, 0xB4, 0x59, 0xE0, 0x15, 0xE7, 0x1E, 0xEC, 0x6B, 0x9F, 0xCE, 0x03, 0x09, 0xEA, 0x2C, 0x9A, 0x6E, 0xB9, 0x61, 0x56, 0x8B, 0xCE, 0x6A, 0x9A, 0xED, 0xD6, 0x30, 0x77, 0xCB, 0x83, 0x94, 0x9F, 0x7C, 0x16, 0x80, 0x13, 0x8D, 0xB4, 0x81, 0x6C, 0x7B, 0x64, 0x38, 0xC6, 0x24, 0x26, 0x35, 0xC1, 0xF5, 0x64, 0x87, 0x99, 0x8A, 0xEA, 0xE4, 0x79, 0xDE, 0x61, 0xFF, 0x64, 0xF7, 0xE4, 0xEF, 0xEE, 0x19, 0xAE, 0xE9, 0xC9, 0xAF, 0x34, 0x08, 0xDE, 0x9A, 0x0B, 0x78, 0xA0, 0xB3, 0x9B, 0x75, 0xD6, 0xA8, 0xE4, 0xD9, 0x36, 0xA3, 0x84, 0x3A, 0x21, 0xCB, 0xCD, 0xA9, 0x32, 0xA1, 0xEF, 0xB1, 0xEC, 0xC9, 0x4D, 0xD9, 0x81, 0x4D, 0xD9, 0x1E, 0x97, 0xBD, 0xFB, 0xDC, 0xCC, 0x1B, 0x4B, 0x65, 0x0F, 0x97, 0x00, 0xE6, 0x12, 0x39, 0x1C, 0x68, 0x53, 0xD1, 0x27, 0x81, 0x30, 0xD2, 0x05, 0xF7, 0x4B, 0xC8, 0x17, 0x26, 0xBB, 0x55, 0x8E, 0xC9, 0x51, 0x86, 0xFD, 0xF3, 0xA7, 0x46, 0xCA, 0xC3, 0x24, 0x5F, 0xC2, 0x68, 0x2C, 0xF5, 0xAB, 0x10, 0x5A, 0xC8, 0xDA, 0x45, 0x84, 0xD2, 0x4E, 0xDD, 0x1B, 0x37, 0xA2, 0x3E, 0xEB, 0xE5, 0x30, 0x4A, 0xF5, 0x19, 0xA5, 0xA9, 0x0B, 0x4A, 0xF5, 0x29, 0xA7, 0x10, 0xF0, 0x02, 0x3B, 0x9E, 0x6E, 0x1D, 0x88, 0xBE, 0xE8, 0xC5, 0xD6, 0x5C, 0x01, 0xE9, 0x56, 0x0E, 0xB1, 0x80, 0xE8, 0x37, 0x31, 0xC0, 0xB1, 0xA2, 0x66, 0x56, 0xF0, 0x71, 0xFC, 0xB4, 0x37, 0xAB, 0x30, 0x33, 0x1C, 0x24, 0x5C, 0x41, 0xE0, 0xBE, 0xD0, 0xCC, 0xCF, 0x2C, 0x3F, 0x26, 0x7D, 0x27, 0x01, 0xDC, 0x11, 0x7E, 0xFC, 0x50, 0x8B, 0x1A, 0x92, 0x30, 0x2C, 0xA5, 0x7E, 0x16, 0x98, 0x15, 0xA3, 0x6E, 0x02, 0x49, 0x70, 0x02, 0x05, 0xA9, 0xCA, 0xAC, 0xD0, 0xA7, 0x48, 0x22, 0xBF, 0x5C, 0x1C, 0x59, 0xB9, 0x38, 0x72, 0x7F, 0xAF, 0x2A, 0x25, 0xB0, 0xCF, 0x1B, 0xBC, 0x0D, 0x0D, 0x6A, 0x42, 0x90, 0xFD, 0xF6, 0x2B, 0xCB, 0x21, 0xA6, 0xD0, 0xA2, 0x3E, 0xE0, 0x56, 0x28, 0x64, 0x86, 0xC6, 0xDB, 0x93, 0xD1, 0x54, 0x9B, 0xD9, 0x94, 0x93, 0xD1, 0x54, 0x2B, 0x3B, 0x85, 0x6C, 0x76, 0x29, 0xF4, 0xD5, 0x8C, 0x9D, 0x8B, 0xB9, 0xE7, 0x81, 0x42, 0xFC, 0x1C, 0x71, 0x06, 0xD1, 0x0F, 0x31, 0x61, 0xC0, 0x63, 0x04, 0x9E, 0x8C, 0xF8, 0x31, 0x5B, 0x11, 0xAD, 0x2B, 0x18, 0x3B, 0xD9, 0xFB, 0x4B, 0xD3, 0xDE, 0x04, 0x2F, 0x44, 0x56, 0xAD, 0x04, 0x91, 0x31, 0x84, 0xCD, 0xD0, 0x91, 0x1E, 0xDA, 0x73, 0x90, 0x86, 0xE1, 0x2C, 0xD5, 0xBA, 0xE2, 0xCD, 0xBE, 0x7D, 0xBF, 0x3D, 0xD2, 0xD8, 0x54, 0x5C, 0xDD, 0x94, 0x5B, 0xDD, 0x34, 0xFB, 0x50, 0xB8, 0x53, 0x37, 0x60, 0x48, 0x8E, 0x9C, 0x4A, 0xD4, 0xE5, 0x0D, 0xD3, 0xE7, 0xB1, 0xAA, 0x79, 0x9D, 0xB7, 0xA3, 0x86, 0xC3, 0x2D, 0x42, 0x5F, 0x31, 0x29, 0x99, 0xE5, 0xF6, 0xD2, 0xA7, 0x65, 0xD5, 0x4D, 0x89, 0x9C, 0xC2, 0xF4, 0xFA, 0xC2, 0x8B, 0x07, 0x0A, 0xD3, 0x77, 0xAF, 0x65, 0x3F, 0x72, 0x5B, 0xB7, 0xFC, 0x68, 0x78, 0xBC, 0xF7, 0x89, 0x5E, 0xBD, 0xB0, 0xD9, 0x7C, 0x00, 0x6C, 0x00, 0x5F, 0x1A, 0x41, 0x3C, 0x57, 0x3E, 0x95, 0xDF, 0x1D, 0xF7, 0x08, 0x8E, 0x64, 0x25, 0x72, 0xBE, 0x7F, 0xAC, 0xD9, 0x48, 0xFA, 0x9B, 0x0E, 0x63, 0xBD, 0x4B, 0xB3, 0xA5, 0x88, 0xB0, 0x59, 0xFC, 0x56, 0x0F, 0x6D, 0x19, 0xD0, 0xEC, 0xDE, 0x63, 0xCD, 0x1E, 0x5C, 0x7C, 0xF3, 0x41, 0x24, 0x7E, 0x62, 0x4B, 0xE0, 0x89, 0xD7, 0x02, 0x4F, 0x2C, 0x39, 0x14, 0x0E, 0x55, 0xBA, 0x68, 0x7F, 0x9B, 0x76, 0x64, 0x68, 0x98, 0xA2, 0x75, 0x49, 0x3D, 0x64, 0xBA, 0x16, 0xFE, 0x02, 0xCB, 0x20, 0xA8, 0xA3, 0xC2, 0x70, 0x50, 0x48, 0x85, 0x61, 0xB6, 0x65, 0x99, 0x73, 0xAA, 0xDB, 0x27, 0xE1, 0x8B, 0x87, 0xF4, 0x0B, 0x1E, 0x00, 0x9F, 0x20, 0x13, 0xC1, 0x6C, 0xAF, 0xF3, 0x9D, 0x59, 0xF9, 0x3C, 0xD1, 0x2F, 0x46, 0xD6, 0x10, 0x97, 0x20, 0x66, 0x23, 0xBF, 0xDB, 0xDB, 0xA4, 0xBD, 0x25, 0x4D, 0xD3, 0x00, 0x8D, 0x9D, 0x0C, 0xB0, 0x65, 0x55, 0xBA, 0xC5, 0xAC, 0xB5, 0xEC, 0x2C, 0x98, 0xAE, 0x84, 0x56, 0x40, 0x10, 0xB4, 0x02, 0x4D, 0x66, 0xDD, 0x21, 0x2F, 0xD9, 0x99, 0x92, 0xE0, 0xC2, 0x80, 0x0C, 0x51, 0xB3, 0xEE, 0x19, 0x5D, 0x14, 0xB2, 0xD1, 0x92, 0x67, 0xAA, 0x34, 0xF3, 0xCE, 0x60, 0x67, 0xF9, 0x7D, 0xB6, 0x03, 0x03, 0xFE, 0xDA, 0xD9, 0x8E, 0x38, 0x53, 0x8A, 0x9C, 0xB9, 0x02, 0xDD, 0x4B, 0x81, 0x47, 0xBD, 0x29, 0x70, 0x59, 0x28, 0x00, 0xB7, 0x2F, 0xA7, 0xC0, 0xE4, 0x0E, 0x0A, 0xBC, 0xDE, 0x0B, 0x80, 0xE1, 0xE9, 0x14, 0xB8, 0x73, 0x3E, 0x05, 0xFE, 0x98, 0x02, 0x93, 0xFE, 0x14, 0x78, 0x94, 0x02, 0xEB, 0x5E, 0x1E, 0xE7, 0xBC, 0x93, 0x02, 0x9F, 0xA1, 0xC0, 0xA2, 0x24, 0x0A, 0xFC, 0x40, 0x46, 0x81, 0x47, 0x29, 0xB0, 0x38, 0x84, 0x02, 0xF7, 0x84, 0x51, 0x9C, 0x37, 0x53, 0xE0, 0xBA, 0x3D, 0x14, 0x78, 0x1D, 0xD8, 0x05, 0x07, 0x6C, 0x8B, 0x28, 0x70, 0x73, 0x06, 0x00, 0x1B, 0x56, 0xB2, 0x29, 0x9D, 0xA7, 0x53, 0xE0, 0xB1, 0x70, 0x00, 0xA6, 0x77, 0x53, 0x60, 0xD6, 0x61, 0x0A, 0xBC, 0xDA, 0x07, 0x80, 0x25, 0xEB, 0x29, 0xB0, 0x7D, 0x21, 0x05, 0xEE, 0xA5, 0xC0, 0xF2, 0xD9, 0x14, 0x38, 0x7F, 0x2A, 0xA5, 0xC6, 0x0F, 0x14, 0xD8, 0x59, 0x4F, 0x81, 0xCF, 0x51, 0x60, 0xB8, 0x82, 0x02, 0x1B, 0x9F, 0xA7, 0xD4, 0xB8, 0x47, 0x81, 0xC9, 0xE7, 0x28, 0xB0, 0x7D, 0x1C, 0xFC, 0x1B, 0x05, 0xC6, 0x1B, 0x28, 0xF0, 0x54, 0x5F, 0x8A, 0x73, 0x25, 0x05, 0x6E, 0x91, 0x53, 0x9C, 0x71, 0x0E, 0xC5, 0x39, 0x85, 0x02, 0xAB, 0x22, 0x29, 0x35, 0x3C, 0x19, 0x00, 0x2C, 0x6F, 0xA4, 0xC0, 0x85, 0x14, 0x18, 0xDE, 0x35, 0x6E, 0x8D, 0x6C, 0xF9, 0x9F, 0x3E, 0xC1, 0x82, 0x9F, 0xA8, 0xA9, 0x89, 0x75, 0xAB, 0x4A, 0x14, 0x45, 0xAA, 0xC2, 0xBC, 0xE2, 0xA7, 0xBE, 0xD3, 0xA2, 0x3F, 0xF1, 0x6D, 0x18, 0x3C, 0x8E, 0x2B, 0x58, 0xBF, 0xAA, 0xA0, 0x68, 0x5D, 0xDC, 0x53, 0xB8, 0x27, 0xBF, 0x25, 0x7B, 0x12, 0x17, 0xFF, 0x14, 0x8E, 0xF1, 0x2F, 0x70, 0xAA, 0x8D, 0xA5, 0xB1, 0x4F, 0x7F, 0xFB, 0x46, 0x7B, 0xE2, 0x9B, 0xB1, 0x09, 0xDC, 0xEB, 0x79, 0x05, 0xEB, 0xF2, 0x4B, 0x4B, 0x9E, 0xC2, 0x31, 0xFF, 0x13, 0x4E, 0x59, 0xA0, 0x28, 0xC9, 0x7B, 0x1A, 0x36, 0xFE, 0xC7, 0xC5, 0x9F, 0x71, 0x1B, 0x36, 0x96, 0xAE, 0x52, 0x6E, 0x5C, 0xFB, 0x2F, 0xBE, 0xBB, 0x63, 0x3D, 0x81, 0xFB, 0xDF, 0x90, 0x7D, 0xD8, 0x83 -}; diff --git a/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.spv.inl b/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.spv.inl deleted file mode 100644 index 43d8d0c13..000000000 --- a/internal/shaders/output/convolution_concat_64_6_64_fp32.comp.spv.inl +++ /dev/null @@ -1,5 +0,0 @@ -/* Contents of file internal/shaders/output/convolution_concat_64_6_64_fp32.comp.spv */ -const int internal_shaders_output_convolution_concat_64_6_64_fp32_comp_spv_size = 4840; -const unsigned char internal_shaders_output_convolution_concat_64_6_64_fp32_comp_spv[4840] = { - 0x78, 0xDA, 0x7D, 0x5B, 0x07, 0xB8, 0x55, 0xC5, 0xB5, 0x3E, 0x33, 0xFB, 0x72, 0x29, 0xA2, 0x10, 0x69, 0x52, 0x44, 0x4A, 0x04, 0x0C, 0x45, 0xBA, 0x24, 0x48, 0x28, 0x7A, 0xE9, 0x86, 0xA2, 0x80, 0x8A, 0x89, 0x88, 0x57, 0x44, 0x02, 0x16, 0x54, 0x4C, 0xDE, 0x23, 0x74, 0xF2, 0x04, 0x8C, 0x11, 0x91, 0xF2, 0x5E, 0xA2, 0xA0, 0x98, 0x88, 0x58, 0x21, 0x57, 0xA9, 0x62, 0x81, 0x40, 0xC4, 0x4F, 0x34, 0x10, 0xA5, 0x4A, 0xBD, 0x80, 0x28, 0x10, 0xA3, 0x82, 0x94, 0xA0, 0x6F, 0xD6, 0x5E, 0xFF, 0xBA, 0xE7, 0x3F, 0xF3, 0xF0, 0xF1, 0x7D, 0x9B, 0x73, 0xD6, 0xBF, 0xFA, 0x9A, 0x35, 0xB3, 0x67, 0xCF, 0xD9, 0x37, 0xF1, 0xF5, 0x4B, 0x67, 0x12, 0x97, 0xB9, 0x20, 0x53, 0x26, 0x73, 0x77, 0x5E, 0x26, 0xFD, 0xF7, 0x83, 0x8C, 0xCF, 0xB8, 0xF0, 0x79, 0x41, 0x26, 0x3F, 0xFD, 0xEC, 0xD6, 0xFB, 0xFA, 0xDE, 0xCD, 0xEE, 0x7F, 0xA0, 0xB0, 0x59, 0xEB, 0x36, 0xCD, 0x85, 0x7F, 0x51, 0x26, 0x49, 0xE5, 0x84, 0x57, 0x21, 0x53, 0x3A, 0x53, 0x2A, 0x7C, 0x8A, 0xEA, 0xA8, 0xDB, 0xEE, 0xBA, 0x5B, 0xF0, 0x41, 0xE1, 0x1A, 0x1C, 0xAE, 0x8A, 0x41, 0x3F, 0x2F, 0xB5, 0x27, 0xDF, 0x55, 0xBE, 0x4C, 0xB8, 0xBA, 0x07, 0x8D, 0xCE, 0xEA, 0x2A, 0x53, 0x1F, 0x9F, 0x86, 0x39, 0x60, 0x15, 0x09, 0xF3, 0xC0, 0x2E, 0x21, 0x2C, 0x01, 0x56, 0x8B, 0xB0, 0x3C, 0x60, 0x75, 0x08, 0x2B, 0x05, 0xEC, 0x87, 0x84, 0xE5, 0x03, 0x6B, 0x44, 0x58, 0x69, 0x60, 0x4D, 0x08, 0x2B, 0x03, 0xAC, 0x39, 0x61, 0x65, 0x81, 0xB5, 0x03, 0xD6, 0x25, 0xCA, 0xA3, 0x5B, 0x88, 0xAC, 0x0B, 0x62, 0xEE, 0x16, 0x22, 0x1A, 0x94, 0xD6, 0x31, 0x93, 0xA9, 0x01, 0x7A, 0x30, 0xE8, 0x9A, 0xA0, 0x9F, 0x43, 0x3C, 0x79, 0xA9, 0xBD, 0xBC, 0xCC, 0x22, 0xD8, 0xA9, 0x14, 0xD1, 0x96, 0xFB, 0xA2, 0xF3, 0xF8, 0x5B, 0x44, 0xFE, 0x16, 0x87, 0xCF, 0x7A, 0x25, 0x3C, 0xA5, 0xEB, 0x22, 0x17, 0xA1, 0x3F, 0x89, 0xFC, 0xED, 0x8E, 0xFC, 0xED, 0x8E, 0xFC, 0xED, 0x3E, 0x8F, 0xBF, 0xDD, 0xE4, 0x6F, 0x6F, 0xE4, 0x6F, 0x2F, 0xFC, 0x19, 0xFF, 0x27, 0x2E, 0xD7, 0x5F, 0x7B, 0x97, 0xEB, 0xCF, 0x68, 0xF3, 0x67, 0x34, 0xFB, 0x13, 0xCC, 0xEC, 0x75, 0x70, 0xB9, 0xFE, 0x84, 0xAE, 0x8B, 0xF1, 0x13, 0xFA, 0x48, 0xC4, 0x3F, 0x02, 0x7E, 0x1E, 0xE8, 0x63, 0x11, 0xFF, 0x18, 0xF8, 0x09, 0xE8, 0x2B, 0x7C, 0x2E, 0x5F, 0xE8, 0xBA, 0xE8, 0x23, 0xA1, 0x4F, 0xF9, 0xDC, 0x7C, 0x4E, 0xFB, 0xDC, 0x7C, 0x8C, 0xAE, 0x8E, 0x7C, 0x8C, 0xE6, 0x7C, 0x04, 0xB3, 0x7C, 0xCE, 0x46, 0xFE, 0xCE, 0xC2, 0x9F, 0xDA, 0xF4, 0xA9, 0x5C, 0xDD, 0xA0, 0x93, 0xA0, 0xA6, 0x55, 0xC3, 0xB7, 0x7C, 0xF4, 0x78, 0x9D, 0x20, 0x5F, 0x1A, 0xB9, 0xE7, 0xA7, 0x72, 0x79, 0xE9, 0x38, 0xE7, 0x03, 0xAB, 0x12, 0xE8, 0xF2, 0x90, 0x75, 0x90, 0xBF, 0x10, 0xBC, 0xF2, 0xA9, 0x7C, 0x7E, 0x98, 0xCB, 0xFA, 0xFD, 0x42, 0xBA, 0x1A, 0x07, 0xB9, 0xFC, 0x54, 0x3F, 0x93, 0x79, 0xEB, 0xDC, 0x96, 0x36, 0x95, 0x83, 0xE7, 0xAA, 0x84, 0x5F, 0x1A, 0xAE, 0xC5, 0x7D, 0x16, 0xFE, 0xD4, 0x68, 0x89, 0x7F, 0xE0, 0xB1, 0xA4, 0x83, 0xD1, 0x0D, 0xC2, 0x55, 0xFC, 0xD2, 0xE6, 0x8E, 0x46, 0xCB, 0x3C, 0x1B, 0xB7, 0x7B, 0x57, 0x89, 0x7C, 0xE3, 0x70, 0xDD, 0xBB, 0xAE, 0xD3, 0x2A, 0xA3, 0x65, 0x7E, 0x1D, 0xEC, 0x5A, 0x50, 0xC2, 0x6F, 0x19, 0xAE, 0xBD, 0xF5, 0xDE, 0x6F, 0x6F, 0x74, 0xDB, 0x70, 0x3D, 0xFE, 0xA7, 0xF1, 0xA9, 0x3D, 0x89, 0xB5, 0x7D, 0xB8, 0x3A, 0x21, 0xBF, 0x0E, 0xC8, 0x4F, 0xFE, 0x55, 0x0B, 0xF4, 0x4F, 0xC3, 0x67, 0x07, 0x8C, 0x8F, 0xD0, 0x1D, 0x51, 0x0F, 0x0F, 0xBA, 0x13, 0xF8, 0x42, 0xD7, 0x0E, 0xD6, 0x64, 0x4E, 0x8B, 0x4E, 0x47, 0xD4, 0x81, 0xAF, 0x7C, 0x7C, 0x76, 0xC2, 0x55, 0x1B, 0x73, 0xBB, 0x33, 0x6A, 0x79, 0x0D, 0xD6, 0x83, 0x2E, 0x69, 0x4C, 0x4A, 0x5F, 0x0B, 0xCC, 0x62, 0x2D, 0x40, 0x6C, 0x46, 0x77, 0x45, 0x6C, 0xA2, 0xDF, 0x0D, 0xB2, 0xE5, 0x11, 0x5B, 0x7F, 0x7C, 0x4F, 0x40, 0x0F, 0x40, 0xAC, 0x09, 0xE4, 0x07, 0x62, 0x1C, 0x07, 0xC0, 0xDF, 0x40, 0xAC, 0xB5, 0x8E, 0xE8, 0xC1, 0xA0, 0xCD, 0xDF, 0xAD, 0xA8, 0x4F, 0x63, 0xD4, 0x6A, 0x48, 0x14, 0x4F, 0x21, 0x6A, 0x61, 0xFC, 0x11, 0xA4, 0x2F, 0xF4, 0x3D, 0xC4, 0x17, 0xF9, 0x5F, 0x21, 0x66, 0x89, 0xE7, 0xD7, 0xF8, 0xDE, 0x81, 0xE4, 0x9F, 0x44, 0x7E, 0xB5, 0xC2, 0xFF, 0x4F, 0xA1, 0x86, 0x4F, 0x82, 0x9E, 0x1F, 0x3E, 0x9F, 0x82, 0x4D, 0xD1, 0x5F, 0x80, 0x5E, 0x9C, 0x9F, 0xF6, 0x54, 0x52, 0xB2, 0x16, 0xD6, 0xC6, 0x9A, 0xF6, 0x1C, 0xE4, 0x9E, 0x47, 0x5D, 0x16, 0x21, 0x4F, 0xA1, 0x17, 0x03, 0x13, 0xFE, 0xCB, 0x34, 0x5E, 0x16, 0x67, 0x51, 0x54, 0x87, 0x37, 0xA5, 0x97, 0x11, 0xC7, 0x76, 0xC8, 0x5A, 0x1C, 0x3B, 0x10, 0xC7, 0x76, 0xC4, 0xF1, 0x09, 0xC5, 0x21, 0x6B, 0xDD, 0x27, 0x90, 0xDB, 0x03, 0x3F, 0xBB, 0x11, 0x87, 0xD0, 0x7B, 0x81, 0x99, 0x9F, 0x43, 0xE1, 0xFA, 0x2E, 0xFC, 0x13, 0x3B, 0xB6, 0xF6, 0xD5, 0xC6, 0x1A, 0x26, 0xB4, 0xD8, 0xB9, 0xDA, 0xA9, 0x8E, 0x60, 0xED, 0x41, 0x77, 0x70, 0xB9, 0x76, 0x3A, 0x3B, 0x1D, 0x77, 0xA3, 0x07, 0x07, 0x7A, 0x82, 0xCB, 0xD2, 0x6B, 0xC2, 0xF7, 0x8B, 0x89, 0xBF, 0xD1, 0x65, 0xF3, 0x97, 0xCF, 0x1D, 0xBA, 0x8E, 0x76, 0x6C, 0x12, 0xD6, 0x20, 0xE9, 0xED, 0x9D, 0x4E, 0xB1, 0x1D, 0x88, 0xE1, 0x13, 0xA7, 0x63, 0xD7, 0x31, 0x5D, 0xAB, 0xCA, 0x66, 0x0E, 0x43, 0x1F, 0xCB, 0x6F, 0xC9, 0x3F, 0xA3, 0x45, 0xE7, 0x53, 0x10, 0x87, 0x11, 0xB7, 0xD0, 0x47, 0x80, 0xD5, 0x08, 0x5D, 0xF2, 0x39, 0x6C, 0x1F, 0x05, 0xF6, 0x39, 0xE4, 0x84, 0x3E, 0x06, 0xAC, 0x66, 0xC8, 0xEA, 0x9F, 0x4E, 0x6D, 0x58, 0xAC, 0x5F, 0xBA, 0xEC, 0xFC, 0xFD, 0x0A, 0x75, 0xF0, 0xE9, 0xBD, 0xB8, 0x54, 0x4A, 0x7F, 0xED, 0xB4, 0xAE, 0x87, 0x20, 0x73, 0x82, 0xEE, 0x29, 0x26, 0xE3, 0xBD, 0xF2, 0x0B, 0x08, 0xAB, 0x00, 0xAC, 0x88, 0xB0, 0x5A, 0xC0, 0x0A, 0x33, 0xD9, 0x1C, 0xAE, 0xF0, 0xB9, 0x73, 0x62, 0x68, 0xA0, 0x3B, 0x79, 0xED, 0x05, 0x5B, 0xEF, 0x6B, 0x63, 0xDD, 0x16, 0x5A, 0x72, 0x3C, 0xE3, 0x35, 0x4E, 0xC1, 0xDA, 0x83, 0x3E, 0xEB, 0x73, 0xC7, 0xF0, 0xE2, 0x44, 0xEF, 0xBB, 0x46, 0x8F, 0x08, 0x01, 0x3F, 0xEC, 0xB3, 0xF4, 0x2F, 0x03, 0x7D, 0x23, 0xD1, 0x23, 0x03, 0x7D, 0xAF, 0xCF, 0xD6, 0x65, 0x54, 0xA0, 0xCB, 0x5F, 0xBF, 0xEF, 0x9A, 0xB6, 0x21, 0x76, 0x8F, 0x7C, 0x33, 0x58, 0x0F, 0x4E, 0x05, 0xA4, 0x14, 0x72, 0x90, 0x35, 0xFB, 0x77, 0xE8, 0x61, 0xA3, 0x67, 0x13, 0x2D, 0xF3, 0xEC, 0xE9, 0x88, 0x7E, 0x36, 0x92, 0x5F, 0x1E, 0xD1, 0x1B, 0x88, 0x96, 0xF9, 0xB1, 0x33, 0xE2, 0x1F, 0x88, 0xF8, 0xA7, 0x23, 0xFA, 0x02, 0x97, 0x4B, 0x5F, 0xEA, 0x72, 0xF5, 0x5B, 0x44, 0xF4, 0x6D, 0x11, 0xBD, 0x2C, 0xA2, 0xDF, 0x8A, 0xEC, 0x1D, 0x24, 0x5A, 0x3E, 0x4F, 0x45, 0xFC, 0x7F, 0x47, 0xFC, 0x52, 0x3E, 0x97, 0x5F, 0xD6, 0xE7, 0xF2, 0x2F, 0x8E, 0xF8, 0x55, 0x23, 0xFE, 0x65, 0x3E, 0x37, 0x9E, 0xEB, 0x23, 0x7A, 0x52, 0x44, 0x6F, 0x8B, 0xE8, 0xBD, 0x11, 0xDD, 0x22, 0xC9, 0xA5, 0x3B, 0x44, 0xF4, 0x75, 0x11, 0x3D, 0x2A, 0xA2, 0xEF, 0x8E, 0xE8, 0x7B, 0x22, 0x7A, 0x5C, 0x44, 0x8F, 0x8F, 0xE8, 0x09, 0x11, 0x3D, 0x2B, 0xA2, 0x9F, 0x88, 0xE8, 0xD9, 0x11, 0xBD, 0x28, 0xA2, 0x9F, 0x8F, 0xE8, 0xC5, 0x11, 0xBD, 0x22, 0xA2, 0x57, 0x46, 0xF4, 0xAA, 0x88, 0xDE, 0x14, 0xD1, 0x1F, 0x44, 0xF4, 0x87, 0x11, 0xBD, 0x27, 0xA2, 0xF7, 0x46, 0xF4, 0xBE, 0x88, 0xFE, 0x3A, 0xA2, 0x4F, 0x44, 0xF4, 0x49, 0xD0, 0xDF, 0x84, 0xD9, 0x76, 0x0D, 0x26, 0xDE, 0xD9, 0xF0, 0x5D, 0xEE, 0x9F, 0xD7, 0xE6, 0xE9, 0xFC, 0x93, 0xCF, 0x0E, 0xB8, 0x4F, 0xDF, 0x88, 0x7B, 0xF1, 0x58, 0xDC, 0xC7, 0x6F, 0x02, 0x66, 0xFC, 0x5B, 0x70, 0x6F, 0x36, 0xFE, 0xCF, 0x81, 0xF5, 0x0B, 0xB3, 0x38, 0x5D, 0x73, 0xA0, 0x23, 0xFF, 0xA6, 0x00, 0xBB, 0x1D, 0xF7, 0xEF, 0xA1, 0x24, 0x37, 0x0C, 0xBA, 0x2C, 0x77, 0x27, 0xD6, 0x33, 0xE1, 0x4D, 0x00, 0x36, 0x1C, 0xFA, 0x77, 0x92, 0xEE, 0x48, 0xF8, 0x70, 0xA4, 0x3B, 0x0A, 0x78, 0x21, 0xC9, 0xDD, 0x07, 0x39, 0x4F, 0x72, 0xA3, 0x81, 0xDF, 0x4A, 0x72, 0x0F, 0x20, 0x16, 0x96, 0x7B, 0x10, 0x7B, 0x9C, 0x07, 0x28, 0x96, 0x31, 0xD0, 0x7F, 0x30, 0xDD, 0x3B, 0x95, 0x4E, 0xF7, 0x0D, 0xFF, 0x81, 0xBD, 0x52, 0x01, 0xF6, 0x14, 0x43, 0x50, 0x2B, 0xD9, 0x43, 0xFC, 0x27, 0xF8, 0x63, 0xB1, 0x2E, 0x8E, 0x05, 0xF6, 0x4A, 0xB0, 0x27, 0xFB, 0xD0, 0xDF, 0x20, 0xBF, 0xB1, 0xE9, 0x9E, 0x20, 0x2F, 0xC5, 0xC6, 0x01, 0x97, 0xF1, 0x9A, 0x80, 0xFA, 0x9C, 0x09, 0x3C, 0xC1, 0xC7, 0xA7, 0xB1, 0xE8, 0x98, 0x8D, 0xA7, 0x18, 0x26, 0x45, 0x31, 0x8C, 0xA0, 0x18, 0x26, 0x83, 0x6F, 0x31, 0x4C, 0x01, 0x66, 0x31, 0x4C, 0x45, 0xED, 0xA6, 0xA4, 0x6B, 0x9F, 0x2F, 0xB1, 0x2F, 0x9F, 0x27, 0x82, 0x7D, 0x91, 0xF9, 0x2D, 0x62, 0x92, 0x3E, 0x99, 0x8A, 0x38, 0x4C, 0xFF, 0x61, 0xD4, 0x45, 0xF6, 0xB2, 0x7F, 0x06, 0x36, 0x0D, 0x3A, 0x0F, 0x23, 0x8F, 0x19, 0x94, 0x87, 0xF0, 0xA6, 0x87, 0x6B, 0x06, 0xFC, 0x4C, 0x87, 0xDF, 0x6B, 0xD0, 0x8B, 0x33, 0xD2, 0x7D, 0x6C, 0x92, 0xDE, 0x07, 0x0A, 0xC0, 0x7B, 0x14, 0xB2, 0x8F, 0x22, 0x2F, 0xC9, 0x63, 0x16, 0xEE, 0x15, 0x4B, 0xE0, 0xF3, 0x09, 0x60, 0x32, 0xFE, 0x27, 0x83, 0xCC, 0x63, 0xE1, 0x73, 0x26, 0xF9, 0x15, 0xFE, 0xEF, 0xC3, 0xF5, 0x18, 0x6C, 0xFD, 0x1E, 0x7E, 0x66, 0x93, 0x9F, 0x39, 0xE0, 0xCD, 0x21, 0x3F, 0x7F, 0xC0, 0x3D, 0xC8, 0xFC, 0xFC, 0x11, 0x58, 0x57, 0xF8, 0x99, 0x17, 0x3E, 0xE7, 0x92, 0x9F, 0x3F, 0x82, 0x9E, 0x07, 0x5B, 0x73, 0xC9, 0xD6, 0x33, 0x88, 0xD9, 0xE8, 0x85, 0xB0, 0x6D, 0xFD, 0xF5, 0x12, 0x6A, 0xB9, 0x30, 0x1D, 0xDB, 0xFC, 0x74, 0x3F, 0xF8, 0x0A, 0xF6, 0x88, 0x05, 0xE0, 0x77, 0xC0, 0x3D, 0xF5, 0x55, 0xF0, 0x44, 0xAE, 0x74, 0x1A, 0x9F, 0xDE, 0x0B, 0x9F, 0x81, 0xBE, 0xE4, 0xB6, 0x04, 0x72, 0x26, 0xB3, 0x14, 0xF7, 0x4F, 0x96, 0x59, 0x0A, 0x19, 0x8B, 0xE9, 0x2F, 0x51, 0x4C, 0xAF, 0x01, 0x2B, 0xA2, 0x7A, 0xBD, 0x16, 0xD5, 0x6B, 0x1E, 0xE8, 0x99, 0xA0, 0x67, 0x92, 0xBD, 0xD7, 0x91, 0xB3, 0xD9, 0x5B, 0x06, 0xAC, 0x88, 0xC6, 0x79, 0x59, 0x34, 0xCE, 0x8F, 0x81, 0xB7, 0x9C, 0xC6, 0x66, 0x05, 0x78, 0x2B, 0xC8, 0xF6, 0x1A, 0xDC, 0xEF, 0x6D, 0x6C, 0xDE, 0x02, 0xF6, 0x26, 0xC6, 0x66, 0x55, 0xF8, 0x5C, 0x4D, 0x63, 0x23, 0xFC, 0x95, 0xB2, 0x46, 0xC3, 0xD6, 0x4A, 0xB2, 0xF5, 0x0E, 0x6C, 0xFD, 0x17, 0xE2, 0x5C, 0x0B, 0xAC, 0x7D, 0xDA, 0xAB, 0x8A, 0xAD, 0x27, 0x4C, 0xE2, 0xDB, 0x40, 0xF1, 0xFD, 0x0D, 0x36, 0xFF, 0x46, 0x36, 0xDF, 0xC7, 0xFE, 0xC3, 0xE2, 0xDB, 0x04, 0xCC, 0x7A, 0x74, 0x63, 0xF8, 0x7C, 0x8F, 0xE2, 0x13, 0xFE, 0xBB, 0xB2, 0x07, 0x86, 0xAD, 0x77, 0xA9, 0x6E, 0x9B, 0xB1, 0x56, 0xAC, 0x25, 0xFB, 0x5B, 0x60, 0xDF, 0x64, 0xFE, 0x01, 0xB9, 0x2D, 0x84, 0x7D, 0x0C, 0xBC, 0x88, 0x72, 0xDB, 0x0A, 0xBC, 0x30, 0x5D, 0x1B, 0x14, 0xDB, 0x06, 0xBC, 0x28, 0xED, 0x37, 0x8D, 0x77, 0x3F, 0xD6, 0x86, 0x02, 0xCC, 0xE3, 0x83, 0x14, 0xAB, 0xF0, 0x8A, 0x65, 0x0F, 0x8D, 0x58, 0x0F, 0x93, 0xAD, 0x23, 0xD0, 0x63, 0x9F, 0x9F, 0x01, 0x2F, 0x44, 0xED, 0x0E, 0x00, 0x93, 0xDA, 0x1D, 0x84, 0x8D, 0x62, 0xE2, 0x1D, 0x8A, 0x78, 0x07, 0x29, 0xEF, 0xCF, 0xB1, 0x6F, 0xB3, 0x1C, 0x8F, 0x02, 0x2B, 0x42, 0xAF, 0xCB, 0xF3, 0xE8, 0x31, 0x5A, 0x13, 0x0B, 0x49, 0xF7, 0x38, 0x78, 0xB6, 0xCE, 0xFF, 0x13, 0xFA, 0xC7, 0xC9, 0xDE, 0xBF, 0x80, 0x6F, 0x23, 0xEC, 0x4B, 0xE0, 0x45, 0xA4, 0xFB, 0x15, 0x7A, 0xE1, 0x4B, 0x92, 0x3B, 0x01, 0x7C, 0x3D, 0xCD, 0xE1, 0x93, 0x78, 0xBE, 0x2A, 0x00, 0xDF, 0xE6, 0xF0, 0x37, 0xE0, 0x75, 0x0E, 0xBA, 0xE9, 0xDE, 0x0F, 0xFB, 0xD3, 0x2D, 0xA8, 0xC3, 0x29, 0xC8, 0x58, 0xEC, 0x67, 0x30, 0xDE, 0x56, 0xD3, 0x73, 0xA8, 0x73, 0x21, 0xF9, 0xFF, 0x16, 0x38, 0xC7, 0xE9, 0x9C, 0xE2, 0x9C, 0x63, 0xE2, 0x14, 0xE7, 0x1C, 0xF3, 0x9C, 0xE2, 0xAC, 0x5B, 0xCA, 0x69, 0x8E, 0xC2, 0x33, 0xB9, 0xD2, 0x4E, 0x71, 0xCE, 0xB1, 0x8C, 0xCB, 0xE6, 0x28, 0x7C, 0xCB, 0xB1, 0xAC, 0x53, 0x9E, 0xE5, 0x58, 0xCE, 0xE9, 0x1E, 0xFB, 0x0C, 0x72, 0x14, 0xBA, 0x2C, 0xD9, 0xBE, 0xC8, 0xFD, 0xDF, 0xDE, 0xA9, 0xE0, 0x14, 0xE7, 0x3C, 0x2B, 0x3A, 0xC5, 0x39, 0xD6, 0x4A, 0x4E, 0x71, 0xCE, 0xB3, 0x8A, 0x53, 0x9C, 0xF3, 0xAC, 0xEA, 0x14, 0x67, 0xDD, 0x6A, 0xC8, 0xB3, 0x2A, 0xC5, 0x52, 0xDD, 0x29, 0xCE, 0x79, 0xD6, 0xA0, 0x3C, 0xAB, 0x53, 0x9E, 0x35, 0x9D, 0xF2, 0x2C, 0xCF, 0x5A, 0x4E, 0x9F, 0x1D, 0x2C, 0x4F, 0xA1, 0x6B, 0x92, 0xED, 0x3A, 0x2E, 0x3B, 0x76, 0x96, 0x67, 0x5D, 0xA7, 0x38, 0xE7, 0x59, 0xCF, 0x29, 0xCE, 0xB1, 0x5E, 0xEE, 0x14, 0xE7, 0x3C, 0x1B, 0x3A, 0xC5, 0x39, 0xCF, 0x46, 0x4E, 0x71, 0xD6, 0xBD, 0x02, 0x79, 0x36, 0xA2, 0x58, 0x1A, 0x3B, 0xC5, 0x39, 0xCF, 0x26, 0x94, 0x67, 0x63, 0xCA, 0xB3, 0xA9, 0x53, 0x9E, 0xE5, 0xD9, 0xCC, 0xE9, 0x33, 0x91, 0xE5, 0x29, 0x74, 0x53, 0xA7, 0x73, 0xF7, 0x3D, 0xCC, 0xDD, 0xF7, 0xA8, 0x87, 0xAF, 0x74, 0xB9, 0x6B, 0x56, 0x73, 0xA7, 0x58, 0x11, 0xAD, 0xA9, 0xCD, 0x5D, 0xEE, 0x9A, 0xBA, 0x11, 0x3C, 0x79, 0xD6, 0xB2, 0xF5, 0xB6, 0xA5, 0x53, 0x5E, 0x4B, 0x97, 0xB5, 0x7D, 0x95, 0xD3, 0xE7, 0x31, 0x5B, 0x6F, 0xDB, 0x39, 0xC5, 0xEC, 0x5E, 0xDD, 0x3A, 0x7C, 0x6F, 0xE3, 0xB2, 0x6B, 0x98, 0xF0, 0x5B, 0x85, 0xAB, 0x35, 0x6C, 0xB5, 0x22, 0x5B, 0x1D, 0x61, 0xCB, 0xE2, 0xEC, 0xE4, 0xF4, 0xDE, 0x2C, 0xB8, 0xD5, 0xF2, 0x5A, 0xA7, 0xF8, 0x88, 0xBC, 0xAC, 0x5E, 0x57, 0xA7, 0xF7, 0x11, 0xD3, 0xEB, 0xE6, 0x54, 0xAE, 0xAB, 0xCB, 0xD6, 0xB6, 0x3B, 0xCE, 0x49, 0x0A, 0xC0, 0xB7, 0xDA, 0xF6, 0x70, 0xCA, 0x33, 0xDD, 0xBE, 0xD0, 0x7D, 0x93, 0xEC, 0xF5, 0x77, 0x8A, 0xB3, 0xBD, 0xEB, 0xC9, 0x5E, 0x7F, 0xB2, 0x77, 0x83, 0x53, 0x9E, 0xE9, 0xDE, 0x02, 0x7B, 0x83, 0x09, 0xFB, 0x85, 0x53, 0x9C, 0xED, 0xDD, 0x4A, 0xF6, 0x7E, 0x41, 0xF6, 0x86, 0x38, 0xE5, 0xC9, 0x58, 0xDC, 0x46, 0x63, 0x31, 0x14, 0xF5, 0x1B, 0x4A, 0xF5, 0xBB, 0xD3, 0xE9, 0xB3, 0xB0, 0x8D, 0xC5, 0x70, 0xA7, 0x98, 0xDD, 0xFB, 0x0A, 0xC3, 0xF7, 0xDB, 0x69, 0x2C, 0x86, 0x83, 0x2E, 0x84, 0xAD, 0xDB, 0xC9, 0xD6, 0x5D, 0xB0, 0x65, 0xF4, 0x08, 0x8C, 0x8D, 0xF5, 0xE0, 0x48, 0xA7, 0xEB, 0xE6, 0x5D, 0x14, 0xEB, 0x28, 0xA7, 0xB8, 0xED, 0x7D, 0xEE, 0x73, 0xBA, 0xF7, 0x11, 0x99, 0x11, 0x24, 0x37, 0xDA, 0x29, 0xAF, 0x7C, 0xA6, 0x4C, 0x4A, 0xDF, 0xEF, 0xF4, 0xB9, 0xA2, 0x25, 0x6C, 0xC8, 0x98, 0x8C, 0x46, 0xCE, 0x22, 0x77, 0x3F, 0xF9, 0xFD, 0x15, 0xD6, 0x32, 0xF6, 0xFB, 0x6B, 0xA7, 0xB8, 0xD1, 0xE3, 0x22, 0xFB, 0xE3, 0xC9, 0xBE, 0xC8, 0xCA, 0x18, 0x8D, 0x23, 0xFB, 0xE3, 0xC9, 0xFE, 0x14, 0xAC, 0x21, 0x6C, 0x7F, 0xAA, 0x53, 0xDC, 0xE8, 0xE9, 0x91, 0xFD, 0x19, 0x64, 0x5F, 0x64, 0x65, 0xCC, 0xA6, 0x93, 0xFD, 0x19, 0xA4, 0x3B, 0x13, 0xB1, 0x5A, 0x8D, 0x66, 0x3B, 0xDD, 0x43, 0xC6, 0x35, 0x9A, 0xE3, 0x94, 0x67, 0x3E, 0xE6, 0x92, 0x8F, 0x99, 0xA8, 0xD1, 0x1C, 0xF8, 0x10, 0xB9, 0xB9, 0xA4, 0xFB, 0x64, 0x14, 0xEF, 0x33, 0x91, 0xAD, 0x85, 0x64, 0xEB, 0x49, 0xD4, 0xE3, 0x19, 0xB2, 0xB5, 0x90, 0xEA, 0xB1, 0x08, 0x6B, 0x0D, 0xD7, 0xE3, 0x79, 0xA7, 0xB8, 0xD1, 0x2F, 0x47, 0xF6, 0x5F, 0x21, 0xFB, 0xCF, 0xA3, 0x1E, 0x2F, 0x93, 0xFD, 0x57, 0xA8, 0xAF, 0x96, 0xA0, 0xCF, 0x6C, 0x6E, 0x2C, 0x75, 0x8A, 0xD9, 0xDA, 0x24, 0xBC, 0xA5, 0x2E, 0xB7, 0xE7, 0x0B, 0x41, 0xB7, 0x01, 0xDD, 0x86, 0xEC, 0xFD, 0x25, 0x5A, 0x43, 0x8A, 0x9C, 0x62, 0x45, 0xB4, 0x9E, 0x15, 0xB9, 0xDC, 0xF5, 0xAC, 0x35, 0xE8, 0xD5, 0x58, 0xFB, 0x56, 0xD3, 0xDA, 0xF9, 0x5A, 0xB4, 0xB6, 0xBC, 0xEE, 0x14, 0x2B, 0xA2, 0xFD, 0xF2, 0xEB, 0x2E, 0x77, 0xBF, 0xBC, 0x0A, 0xBC, 0x65, 0x34, 0x5F, 0x97, 0xC3, 0xD7, 0x72, 0x8A, 0xF5, 0x0D, 0xA7, 0x67, 0x55, 0x36, 0x5F, 0xDF, 0x74, 0x8A, 0xC9, 0xF9, 0xAC, 0xCC, 0xD7, 0x95, 0xE1, 0x73, 0x15, 0xCD, 0x57, 0xE1, 0xAF, 0x08, 0xD7, 0x4A, 0xD8, 0x5A, 0x81, 0x9A, 0xBE, 0x45, 0x7E, 0xDE, 0x06, 0xEF, 0x6D, 0xF2, 0xB3, 0xDE, 0xE9, 0x19, 0x98, 0xF9, 0xD9, 0xE0, 0x14, 0xB3, 0x75, 0x61, 0x6D, 0xF8, 0xBE, 0x8E, 0xFC, 0x08, 0xFF, 0x9D, 0x70, 0xAD, 0x85, 0xAD, 0x77, 0xC8, 0xD6, 0xBB, 0x88, 0xD9, 0xEE, 0x9F, 0xEF, 0x39, 0xC5, 0xE4, 0x0C, 0xD9, 0xF6, 0xEC, 0x9B, 0x08, 0x33, 0xBD, 0xCD, 0x88, 0xC1, 0xEA, 0xB8, 0xC5, 0xE9, 0xDE, 0x7A, 0x33, 0x61, 0x1F, 0x39, 0xC5, 0xC5, 0xE6, 0x3D, 0xE8, 0xAD, 0x8F, 0x9D, 0xE2, 0x46, 0x6F, 0xC3, 0x3D, 0xBC, 0x2F, 0xCE, 0xA6, 0xB7, 0x3B, 0x95, 0x11, 0x7C, 0x22, 0xB0, 0x5D, 0x4E, 0xF1, 0x9D, 0x98, 0x67, 0x72, 0x5E, 0xBD, 0xDB, 0x65, 0xF7, 0xA6, 0x45, 0x18, 0x5F, 0x91, 0xDD, 0x03, 0xDE, 0x54, 0xE8, 0xEE, 0x75, 0xAA, 0xBF, 0x87, 0xEA, 0xB5, 0xDF, 0x69, 0x4E, 0x72, 0xAE, 0x2E, 0x7B, 0xF2, 0x62, 0xAA, 0x95, 0xF0, 0x0E, 0x84, 0xAB, 0xBE, 0xD7, 0x5A, 0xC9, 0xA7, 0xE9, 0x5D, 0xEE, 0x55, 0x6F, 0x23, 0xF4, 0x1A, 0xFA, 0xAC, 0x9E, 0xF0, 0x1A, 0x84, 0xAB, 0x21, 0xF4, 0xE4, 0xBB, 0xD5, 0xAA, 0x91, 0xD7, 0x5A, 0x09, 0x2D, 0x67, 0xDD, 0x3F, 0xF2, 0x7A, 0xCE, 0x2C, 0xB4, 0x9C, 0x8B, 0x37, 0xF6, 0x7A, 0x26, 0x3E, 0x30, 0xF8, 0x91, 0xF3, 0xF0, 0x26, 0x5E, 0x65, 0x04, 0xBF, 0x31, 0xCC, 0x41, 0x39, 0xE3, 0x6E, 0xE6, 0x15, 0x97, 0x7C, 0xCA, 0xE1, 0x9C, 0x5C, 0xCE, 0xC2, 0xED, 0x79, 0xA1, 0xB9, 0xCF, 0xE6, 0x74, 0x5D, 0xC0, 0xA4, 0xB6, 0x2D, 0xBC, 0xEA, 0x09, 0xCF, 0xE6, 0x7F, 0x4B, 0xAF, 0xE7, 0xA5, 0x12, 0x93, 0xF4, 0x9A, 0xD0, 0x22, 0x67, 0xBE, 0xDB, 0x9E, 0xC7, 0x77, 0x3B, 0xAF, 0x38, 0xFB, 0x96, 0x33, 0x76, 0xF3, 0xD3, 0xDE, 0xAB, 0x0C, 0xFB, 0xB9, 0xDA, 0xEB, 0xB9, 0xAB, 0xF9, 0x11, 0xBA, 0x3D, 0xF9, 0xE9, 0x74, 0x1E, 0x3F, 0x5D, 0x70, 0xD6, 0xCE, 0x7E, 0x2A, 0x90, 0x9F, 0x02, 0xAF, 0x32, 0xEC, 0xA7, 0xAB, 0xD7, 0xF3, 0x5B, 0xF3, 0x23, 0x74, 0x01, 0xF9, 0xE9, 0x79, 0x1E, 0x3F, 0xBD, 0xBD, 0xE2, 0xEC, 0xA7, 0x16, 0xF9, 0xE9, 0xE3, 0x55, 0x86, 0xFD, 0xF4, 0xF5, 0x7A, 0x0E, 0x6C, 0x7E, 0x84, 0x16, 0x39, 0x99, 0xA3, 0x36, 0xE6, 0x0D, 0x41, 0x17, 0x63, 0x9E, 0x1D, 0xA0, 0xF9, 0x72, 0xC8, 0xE5, 0xF6, 0xC0, 0x67, 0xF8, 0xBD, 0xC4, 0x7A, 0xE0, 0xB8, 0xCB, 0xED, 0x81, 0x2F, 0x20, 0x23, 0xB8, 0xC5, 0x7D, 0x12, 0x78, 0xDC, 0x03, 0x16, 0xF7, 0x69, 0xC8, 0x6C, 0xC2, 0x3A, 0x22, 0xE7, 0xE0, 0x82, 0xFD, 0x18, 0xFC, 0x33, 0xD0, 0x3B, 0x45, 0xF7, 0x83, 0xB3, 0x4E, 0xFB, 0xE1, 0x10, 0x74, 0x84, 0x3E, 0x43, 0x71, 0x9F, 0x43, 0xDC, 0x16, 0x97, 0x1C, 0xF0, 0xC5, 0x71, 0x25, 0x5E, 0xF1, 0xEF, 0xEB, 0x8F, 0x7C, 0xAF, 0x32, 0x16, 0x97, 0x9C, 0xBF, 0x0B, 0x66, 0x71, 0x95, 0xF6, 0xAA, 0x57, 0x8A, 0xEA, 0x5D, 0x06, 0xFD, 0x73, 0x0E, 0x3A, 0x42, 0x97, 0xA6, 0x39, 0x55, 0xCE, 0xE7, 0xC6, 0x75, 0xE1, 0x79, 0xE2, 0xAA, 0xE8, 0x15, 0xFF, 0xBE, 0x7E, 0xAA, 0xE4, 0x55, 0xC6, 0xE2, 0x92, 0x73, 0xFF, 0x4A, 0x14, 0x57, 0x65, 0xC4, 0x75, 0x31, 0xC5, 0x55, 0x05, 0xFD, 0x56, 0x0E, 0x7D, 0x20, 0x74, 0x65, 0x8A, 0xAB, 0x5A, 0x14, 0x57, 0x8D, 0xF3, 0xC4, 0x75, 0xA9, 0x57, 0xFC, 0xFB, 0xFA, 0xAF, 0x8E, 0x57, 0x19, 0x8B, 0x4B, 0x7E, 0x6F, 0xA8, 0x43, 0x71, 0xD5, 0x45, 0x5C, 0x97, 0x51, 0x5C, 0xF5, 0xD0, 0x9F, 0xD5, 0x10, 0x97, 0xD0, 0x75, 0xA3, 0x7E, 0x2C, 0xC6, 0x7D, 0x6D, 0x1D, 0xE8, 0x75, 0x34, 0xCE, 0xFD, 0x7C, 0xEE, 0x7A, 0xDE, 0xDF, 0x2B, 0x66, 0xF7, 0x45, 0xE1, 0xF5, 0xF7, 0xB9, 0xF7, 0xA4, 0xB5, 0x88, 0x4F, 0x7E, 0xFF, 0xB0, 0xFB, 0xD5, 0x0D, 0x98, 0x0B, 0x37, 0x50, 0x4D, 0x6E, 0xF2, 0xFA, 0x1B, 0x89, 0xAD, 0xA3, 0x37, 0x7B, 0xC5, 0xEC, 0x99, 0x62, 0x60, 0xF8, 0x3E, 0x88, 0xD6, 0x52, 0xE1, 0x0F, 0x90, 0x39, 0x0C, 0x5B, 0x03, 0xC8, 0xD6, 0xCF, 0x61, 0xAB, 0x64, 0xEF, 0xED, 0xF5, 0x99, 0x42, 0x70, 0x7B, 0xA6, 0x18, 0xE2, 0x15, 0x97, 0x67, 0x0A, 0x93, 0xBB, 0xDD, 0x2B, 0x3E, 0x94, 0x6C, 0x15, 0x7A, 0xBD, 0xF7, 0x99, 0xCC, 0x1D, 0x5E, 0xE5, 0x0A, 0x7D, 0x76, 0x1F, 0x3F, 0xCC, 0x67, 0xF7, 0xF1, 0x77, 0xF8, 0xEC, 0x1E, 0xE9, 0x4E, 0xAF, 0x3C, 0xD3, 0xBD, 0x17, 0xF6, 0x7F, 0x49, 0x3E, 0x47, 0x7B, 0xC5, 0xD9, 0xDE, 0xFD, 0x64, 0x6F, 0x34, 0xD9, 0x7B, 0xC0, 0x2B, 0xCF, 0x74, 0x7F, 0x03, 0x7B, 0x23, 0xC9, 0xDE, 0x78, 0xAF, 0x38, 0xDB, 0x9B, 0x40, 0xF6, 0xC6, 0x93, 0xBD, 0x89, 0x5E, 0x79, 0x32, 0x3E, 0x93, 0x68, 0x7C, 0x26, 0xA3, 0xA6, 0x93, 0xA9, 0x0E, 0xF2, 0x3B, 0xE4, 0x24, 0x1A, 0x9F, 0x69, 0x5E, 0x31, 0xDB, 0x4F, 0x4C, 0x95, 0xDA, 0xD2, 0xF8, 0x4C, 0x03, 0x3D, 0x15, 0xB6, 0xA6, 0x90, 0xAD, 0xE9, 0xB0, 0x65, 0xF4, 0x0C, 0x8C, 0x97, 0xF5, 0xE9, 0xEF, 0x70, 0xFF, 0x99, 0x4E, 0xB1, 0x3E, 0xEA, 0x15, 0xB7, 0x3D, 0xF4, 0xE3, 0x5E, 0x9F, 0x33, 0x44, 0x66, 0x06, 0xC9, 0xCD, 0xF2, 0xCA, 0xB3, 0x7D, 0xE9, 0x13, 0x3E, 0xBB, 0x2F, 0x15, 0x1B, 0x32, 0x26, 0xB3, 0x90, 0xB3, 0xC8, 0x3D, 0x41, 0x7E, 0xFF, 0x1B, 0xEB, 0x09, 0xFB, 0xFD, 0x1F, 0xAF, 0xB8, 0xD1, 0xF3, 0x23, 0xFB, 0x0B, 0xC8, 0xBE, 0xC8, 0xCA, 0x18, 0xCD, 0x27, 0xFB, 0x0B, 0xC8, 0xFE, 0x9F, 0xB0, 0x2E, 0xB0, 0xFD, 0x3F, 0x7B, 0xC5, 0x8D, 0x7E, 0x21, 0xB2, 0xFF, 0x22, 0xD9, 0x17, 0x59, 0x19, 0xB3, 0x17, 0xC8, 0xFE, 0x8B, 0xA4, 0xBB, 0x14, 0xB1, 0x5A, 0x8D, 0x5E, 0xF7, 0xFA, 0x9C, 0x11, 0xD7, 0x68, 0x99, 0x57, 0x9E, 0xF9, 0x58, 0x4E, 0x3E, 0x96, 0xA2, 0x46, 0xCB, 0xE0, 0x43, 0xE4, 0x96, 0x93, 0xEE, 0x9A, 0x28, 0xDE, 0xB5, 0x91, 0xAD, 0x75, 0x64, 0x6B, 0x0D, 0xEA, 0xB1, 0x96, 0x6C, 0xAD, 0xA3, 0x7A, 0xBC, 0x8B, 0xF5, 0x88, 0xEB, 0xB1, 0xD1, 0x2B, 0x6E, 0xF4, 0x07, 0x91, 0xFD, 0x0F, 0xC9, 0xFE, 0x46, 0xD4, 0xE3, 0x03, 0xB2, 0xFF, 0x21, 0xF5, 0xD5, 0x66, 0xF4, 0x59, 0xC9, 0xFE, 0xD3, 0x2B, 0x66, 0xEB, 0x95, 0xF0, 0xB6, 0xF8, 0xDC, 0x9E, 0x9F, 0x0A, 0x7A, 0x10, 0xE8, 0x41, 0x64, 0xEF, 0x1F, 0xD1, 0xBA, 0xF2, 0x91, 0x57, 0xCC, 0xEC, 0x09, 0xEF, 0x23, 0x9F, 0xBB, 0xC6, 0x0D, 0x04, 0xBD, 0x0A, 0xEB, 0xE1, 0x2A, 0x5A, 0x4F, 0x3F, 0x8E, 0xD6, 0x96, 0xAD, 0x5E, 0xB1, 0x22, 0x7A, 0x96, 0xD8, 0xEA, 0x73, 0x9F, 0x25, 0x56, 0x62, 0x3D, 0xDD, 0x46, 0xF3, 0x75, 0x3B, 0x7C, 0x6D, 0xA7, 0x58, 0x77, 0x7B, 0xFD, 0x4D, 0xD9, 0xE6, 0xEB, 0x1E, 0xAF, 0x98, 0xCD, 0xD7, 0x9D, 0xE1, 0xFB, 0x2E, 0x9A, 0xAF, 0xC2, 0xDF, 0x11, 0xAE, 0x9D, 0xB0, 0xB5, 0x03, 0x35, 0xDD, 0x4B, 0x7E, 0xF6, 0x81, 0xB7, 0x8F, 0xFC, 0x1C, 0xF2, 0xFA, 0x5B, 0xB5, 0xF9, 0x39, 0xEC, 0x15, 0xB3, 0x75, 0xFB, 0x40, 0xF8, 0x5E, 0x4C, 0x7E, 0x84, 0xBF, 0x3F, 0x5C, 0x07, 0x60, 0x6B, 0x3F, 0xD9, 0xFA, 0x14, 0x31, 0x1B, 0x7D, 0x04, 0xB6, 0xAD, 0x9F, 0x8F, 0x62, 0xCE, 0x8B, 0xDC, 0x11, 0xEA, 0x91, 0x63, 0x5E, 0x79, 0xE5, 0x83, 0x94, 0xD0, 0xC7, 0xD1, 0x23, 0x8D, 0xC0, 0xFB, 0x12, 0x35, 0x13, 0x99, 0xE3, 0x64, 0xEF, 0x6B, 0xCC, 0x8F, 0xD8, 0xDE, 0x09, 0xAF, 0x3C, 0xB3, 0x77, 0x92, 0xEC, 0x9D, 0x20, 0x7B, 0x22, 0x73, 0x92, 0xFA, 0xE1, 0x9C, 0xCF, 0x9E, 0xA9, 0xDA, 0xF9, 0xF8, 0xB7, 0x3E, 0xFB, 0x0C, 0xD2, 0x95, 0x9E, 0x31, 0xBF, 0xF3, 0xCA, 0xB3, 0xFB, 0x91, 0xBC, 0xA4, 0x21, 0xFA, 0xDF, 0x91, 0x3D, 0x9F, 0x28, 0x3E, 0x9C, 0xCF, 0x8E, 0x13, 0xC5, 0x3F, 0x25, 0xB9, 0x52, 0x89, 0xE2, 0x7C, 0xFE, 0x98, 0x9F, 0xE8, 0xF9, 0xA3, 0xF0, 0x4C, 0xAE, 0x4C, 0xA2, 0xF8, 0x18, 0xB2, 0x57, 0x2E, 0x51, 0x9C, 0xF3, 0xBF, 0x28, 0xD1, 0x7A, 0xDA, 0xFD, 0xA3, 0x42, 0xA2, 0xEF, 0xAA, 0x14, 0x40, 0x5E, 0x72, 0x17, 0x4C, 0xE4, 0xEC, 0xB7, 0xD1, 0x4A, 0x49, 0x36, 0x4F, 0x79, 0x8F, 0x85, 0x7F, 0x1B, 0xAD, 0x9C, 0x28, 0xDF, 0x7E, 0x1B, 0xAD, 0x92, 0x28, 0x66, 0x3D, 0x53, 0x15, 0xB9, 0x0B, 0x2E, 0xCF, 0x4C, 0x97, 0x24, 0xD9, 0x7E, 0x11, 0x5E, 0xB5, 0x70, 0x09, 0x26, 0xFD, 0x52, 0x8D, 0xF2, 0xA9, 0x91, 0x64, 0xCF, 0x76, 0x2D, 0xEF, 0x4B, 0x13, 0xC5, 0xB9, 0x8E, 0x97, 0x25, 0x8A, 0x0F, 0xA7, 0xFA, 0xD7, 0x49, 0xB4, 0xD7, 0x4C, 0xA6, 0x6E, 0xA2, 0x72, 0x75, 0xC8, 0x7E, 0xBD, 0x44, 0x71, 0xAE, 0x6B, 0x7D, 0xD4, 0xB5, 0x1E, 0xC9, 0x5D, 0x9E, 0x28, 0x3E, 0x86, 0xEC, 0x37, 0x48, 0xB4, 0x77, 0x4B, 0xCE, 0x8D, 0x13, 0x95, 0x6B, 0x90, 0x64, 0xFB, 0xEF, 0x47, 0x89, 0xF6, 0x5F, 0x1D, 0xE0, 0x56, 0xFF, 0xC6, 0x89, 0xF2, 0x4A, 0xCE, 0x88, 0xA9, 0xFE, 0x0D, 0x51, 0x7F, 0xC1, 0x44, 0x4E, 0xE6, 0xA5, 0xD5, 0xE6, 0x12, 0xD0, 0xC5, 0x98, 0x5B, 0xC5, 0x34, 0x97, 0x9A, 0x46, 0xF1, 0x34, 0x4B, 0x14, 0xB3, 0xB5, 0x46, 0x78, 0xCD, 0x92, 0xDC, 0x79, 0x7E, 0x00, 0x6B, 0xCF, 0x2E, 0xD0, 0xBB, 0xC8, 0xDE, 0x95, 0x51, 0xFD, 0x9A, 0x27, 0x8A, 0x99, 0x3D, 0xE1, 0x35, 0x4F, 0x72, 0xD7, 0xA7, 0x9D, 0x58, 0x53, 0x5A, 0xA0, 0x56, 0xC2, 0x6B, 0x85, 0xD8, 0x5B, 0x25, 0x59, 0xDB, 0xED, 0x12, 0x7D, 0xDF, 0xC5, 0x6C, 0xFF, 0x04, 0xF2, 0x5D, 0x33, 0x3A, 0x27, 0xD3, 0x77, 0xE1, 0x12, 0x9D, 0x93, 0x0D, 0xC1, 0x6F, 0x4F, 0xBF, 0xFF, 0x5D, 0x9D, 0xA8, 0x0D, 0x91, 0x91, 0x35, 0xA8, 0x4D, 0xF8, 0x6C, 0x4B, 0x3D, 0x25, 0xFC, 0xD6, 0xE1, 0x6A, 0x03, 0xDF, 0xAD, 0x51, 0xD3, 0x0E, 0xE8, 0x27, 0x89, 0xAB, 0x23, 0x78, 0x1D, 0x29, 0xAE, 0x6B, 0x13, 0x7D, 0xEF, 0x66, 0x2C, 0xFA, 0xBA, 0x20, 0x51, 0xAC, 0xE4, 0x0C, 0x9A, 0xFA, 0xD1, 0x64, 0xBA, 0x27, 0x8A, 0xDB, 0x3C, 0xE9, 0xF1, 0xFF, 0xCC, 0x93, 0x9E, 0x89, 0xF2, 0x25, 0x47, 0xA1, 0x7B, 0x21, 0xC7, 0x06, 0xB0, 0x23, 0xFC, 0x57, 0x91, 0x63, 0xEF, 0x44, 0xFD, 0xF7, 0x42, 0x8E, 0x9D, 0xC3, 0x67, 0x17, 0xCA, 0x51, 0xF8, 0x9D, 0xC4, 0x2F, 0xF2, 0xE8, 0x84, 0x1C, 0xAF, 0xC3, 0x3C, 0x90, 0x1C, 0xFB, 0x80, 0xD7, 0x87, 0x72, 0xBC, 0x21, 0xD1, 0x77, 0x89, 0x2C, 0xFE, 0x01, 0x89, 0x62, 0x96, 0xE3, 0x20, 0xE8, 0x73, 0x8E, 0x37, 0x26, 0x8A, 0x5B, 0x8E, 0x37, 0x45, 0x39, 0xF2, 0xBB, 0x1A, 0x37, 0x27, 0xCA, 0xB7, 0x1C, 0x07, 0x53, 0x8E, 0x62, 0xE7, 0x66, 0xCA, 0xF1, 0x96, 0x44, 0xFD, 0x0F, 0x46, 0x8E, 0xFD, 0xC2, 0x67, 0x7F, 0xCA, 0x51, 0xF8, 0x7D, 0xC3, 0xD5, 0x0F, 0x79, 0xF4, 0xA5, 0x3C, 0x6E, 0x45, 0x1E, 0x46, 0x0F, 0xC1, 0xD8, 0xD9, 0x6F, 0xAE, 0x85, 0x89, 0xCA, 0xD8, 0x6F, 0xAE, 0xC3, 0xC8, 0xAE, 0xF0, 0xEE, 0x08, 0xD7, 0x30, 0xD8, 0xBD, 0x83, 0xF2, 0x1F, 0x99, 0xA8, 0x2D, 0xEB, 0xF3, 0x51, 0xB0, 0x23, 0xDF, 0xE5, 0x1D, 0xAB, 0x91, 0xE4, 0xF3, 0x5E, 0xF4, 0xB1, 0xF0, 0xE4, 0x7D, 0x2B, 0xA1, 0x7F, 0x8C, 0xFE, 0xBD, 0x2F, 0xD1, 0xF7, 0x31, 0x45, 0x5F, 0xF4, 0xEE, 0xA1, 0xF9, 0x3E, 0x9A, 0xE6, 0xFB, 0x7D, 0xD0, 0x17, 0x4C, 0xEE, 0x3B, 0x16, 0xFF, 0x83, 0x88, 0xC3, 0xE2, 0x7F, 0x88, 0xE2, 0x17, 0xDE, 0x98, 0x70, 0x3D, 0x84, 0xF8, 0xC7, 0xC0, 0xC6, 0x38, 0x8A, 0x75, 0x3C, 0xF4, 0x2D, 0xD6, 0x89, 0x14, 0xAB, 0xBC, 0xEB, 0x35, 0x91, 0x62, 0x9D, 0x84, 0x58, 0x45, 0x5F, 0xF4, 0x26, 0x50, 0xAC, 0x93, 0x29, 0xD6, 0x49, 0xD0, 0x9F, 0x8C, 0x58, 0xA5, 0xC7, 0x2C, 0x86, 0x87, 0xA8, 0xA7, 0x7E, 0x0B, 0xDF, 0x72, 0x2E, 0x25, 0xF4, 0x34, 0xF4, 0xF6, 0x08, 0xFA, 0x4D, 0x7C, 0x7A, 0xA2, 0x72, 0xD3, 0x70, 0x4F, 0x78, 0x84, 0xF2, 0x13, 0xDE, 0x8C, 0x70, 0x3D, 0x02, 0xDB, 0x33, 0x68, 0x7C, 0x1E, 0x87, 0x6D, 0xFB, 0xFD, 0x7B, 0x16, 0xE5, 0x2C, 0xEF, 0xA8, 0x3D, 0x4E, 0x39, 0xCF, 0xA1, 0x9C, 0xE5, 0x7D, 0xB5, 0x39, 0x94, 0xF3, 0x5C, 0xE4, 0x2C, 0xFA, 0xA2, 0x37, 0x9B, 0x72, 0x9E, 0x47, 0x39, 0xCF, 0x85, 0xFE, 0x3C, 0xCA, 0xD9, 0xE2, 0x7A, 0x04, 0xEB, 0x9F, 0xF5, 0xD1, 0x30, 0xAA, 0xC1, 0x1F, 0x10, 0x97, 0xD5, 0xE0, 0x29, 0xF4, 0x3E, 0xD7, 0x60, 0x7E, 0xA2, 0x72, 0x4F, 0xA1, 0x06, 0x4F, 0x53, 0x0D, 0x84, 0xB7, 0x20, 0x5C, 0x4F, 0xC3, 0xF6, 0x02, 0xAA, 0xC1, 0xB3, 0xB0, 0xCD, 0xBF, 0x6F, 0x3E, 0x17, 0xF5, 0xAD, 0xBC, 0x8F, 0xF7, 0x2C, 0x62, 0x97, 0x77, 0xF1, 0x9E, 0xA3, 0xBA, 0xBC, 0x40, 0x75, 0x91, 0xF7, 0xF2, 0x5E, 0xA0, 0xBA, 0xBC, 0x88, 0xBA, 0x88, 0xBE, 0xE8, 0x2D, 0xA6, 0xBA, 0xBC, 0x44, 0x75, 0x79, 0x11, 0xFA, 0x2F, 0x45, 0x7D, 0xFB, 0x6A, 0xD4, 0xB7, 0x4B, 0x29, 0x27, 0xE1, 0x2D, 0x09, 0xD7, 0x52, 0xE4, 0xB4, 0x04, 0x36, 0x56, 0x50, 0xAC, 0x2B, 0xA3, 0xBE, 0x5D, 0x4D, 0xB1, 0xCA, 0x3B, 0x81, 0xAB, 0x29, 0xD6, 0x37, 0x10, 0xAB, 0xE8, 0x8B, 0xDE, 0x2A, 0x8A, 0x75, 0x0D, 0xC5, 0xFA, 0x06, 0xF4, 0xD7, 0xD0, 0x18, 0x5A, 0x0C, 0x4B, 0x69, 0xCC, 0xDE, 0x8E, 0xFA, 0x76, 0xDD, 0x79, 0xFA, 0xF6, 0xAF, 0x89, 0xCA, 0xAD, 0xC3, 0x98, 0x6D, 0xA0, 0xFC, 0x84, 0xB7, 0x3E, 0x5C, 0x1B, 0x60, 0x7B, 0x3D, 0x8D, 0xD9, 0xFB, 0x51, 0xDF, 0x6E, 0xA2, 0x9C, 0xE5, 0x5D, 0xC6, 0xF7, 0x29, 0xE7, 0xBF, 0x53, 0xCE, 0xF2, 0x5E, 0xE3, 0xDF, 0x29, 0xE7, 0xCD, 0xC8, 0x59, 0xF4, 0x45, 0xEF, 0x43, 0xCA, 0x79, 0x0B, 0xE5, 0xBC, 0x19, 0xFA, 0x5B, 0x28, 0x67, 0x8B, 0x6B, 0x03, 0xFA, 0xD6, 0x7A, 0xEB, 0x69, 0x5A, 0x37, 0x3F, 0x8E, 0xC6, 0x6F, 0x1B, 0xE5, 0x27, 0xBC, 0xAD, 0xB2, 0x2F, 0x80, 0xDE, 0x56, 0xCA, 0x6F, 0x27, 0x7A, 0xD2, 0xFA, 0x4F, 0xDE, 0xBF, 0xDC, 0x89, 0x18, 0xF6, 0x46, 0x63, 0xBA, 0x9F, 0xF2, 0x93, 0xF7, 0x30, 0xF7, 0x53, 0x7E, 0x07, 0x90, 0x9F, 0xE8, 0x8B, 0xDE, 0x3E, 0xCA, 0xAF, 0x98, 0xF2, 0x3B, 0x00, 0xFD, 0x62, 0xCA, 0xCF, 0xE2, 0xDA, 0x46, 0x63, 0x7A, 0x38, 0x1A, 0xD3, 0xCF, 0xCE, 0x33, 0xA6, 0x9F, 0x27, 0x2A, 0xF7, 0x19, 0xC6, 0xF4, 0x18, 0xE5, 0x2C, 0xBC, 0xA3, 0xE1, 0x3A, 0x06, 0xDB, 0x47, 0x29, 0xE7, 0x2F, 0x28, 0x67, 0xC3, 0xBE, 0x8A, 0xC6, 0x59, 0xDE, 0x2B, 0xFD, 0x02, 0xB1, 0xCA, 0x3B, 0xA5, 0x5F, 0x51, 0x1D, 0xBE, 0xA1, 0x3A, 0xC8, 0xFB, 0xA5, 0xDF, 0x50, 0x1D, 0x4E, 0xA1, 0x0E, 0xA2, 0x2F, 0x7A, 0x27, 0xA9, 0x0E, 0xA7, 0xA9, 0x0E, 0xA7, 0xA0, 0x7F, 0x9A, 0xEA, 0x60, 0xB1, 0x1E, 0xC3, 0x38, 0xF7, 0x07, 0xDD, 0x9F, 0x7C, 0x9F, 0xC1, 0xFD, 0xD3, 0xE2, 0x3E, 0x9B, 0x28, 0x66, 0xE3, 0x27, 0xBC, 0xB3, 0x49, 0xEE, 0x3E, 0xA2, 0x1F, 0xE8, 0x2E, 0xA0, 0xBB, 0x90, 0xBD, 0x7F, 0xE3, 0xFE, 0x5B, 0xF2, 0xAC, 0x94, 0x28, 0x66, 0xF6, 0x84, 0x77, 0x2E, 0xC9, 0xDD, 0x7B, 0x75, 0x06, 0xDD, 0x16, 0x74, 0x5B, 0xB2, 0xF7, 0x6D, 0xB4, 0x47, 0xFC, 0x2E, 0x51, 0xAC, 0xE4, 0x37, 0xBF, 0x44, 0x31, 0xDE, 0x63, 0xB6, 0x49, 0x72, 0xDF, 0x81, 0x94, 0xCF, 0x73, 0x61, 0xF7, 0xD1, 0x2E, 0x5C, 0x6D, 0x71, 0x6E, 0x5A, 0x0E, 0xEF, 0x5E, 0xC9, 0x7B, 0xF8, 0x57, 0x05, 0x3B, 0xA5, 0xF1, 0x37, 0x2B, 0x22, 0x7F, 0x01, 0xBD, 0xDF, 0xDD, 0x23, 0x2F, 0xFB, 0xBE, 0x6F, 0xF7, 0xE8, 0x7D, 0xDF, 0x5E, 0xB0, 0xDF, 0x2B, 0x2F, 0xBB, 0xA7, 0xAF, 0x0C, 0x3B, 0xAB, 0xD1, 0x53, 0xD5, 0x80, 0x55, 0x81, 0x8D, 0xEA, 0xF4, 0xCE, 0x57, 0x35, 0xFC, 0x7D, 0x5B, 0x1D, 0xF8, 0xAD, 0x43, 0xEF, 0x32, 0xD5, 0x8D, 0xEC, 0xD4, 0x07, 0x56, 0x0F, 0x76, 0x2E, 0x27, 0x3B, 0xF6, 0x77, 0x8C, 0x57, 0xC2, 0xCE, 0x95, 0x64, 0xA7, 0x05, 0xEC, 0x4C, 0x44, 0xDE, 0xAD, 0x80, 0xB5, 0x4C, 0xF7, 0xD8, 0xF9, 0x29, 0xD6, 0x1A, 0xEF, 0xFE, 0xD6, 0x02, 0xDF, 0xCE, 0x60, 0xAE, 0xCA, 0x64, 0xCF, 0x60, 0x9A, 0x43, 0xAE, 0x6D, 0x46, 0x7F, 0x4F, 0xCB, 0xC7, 0xDF, 0x3A, 0x5E, 0x85, 0xBF, 0xFB, 0x92, 0xB1, 0x90, 0x5A, 0xB5, 0xC3, 0x9E, 0xB3, 0x3B, 0x6A, 0xF3, 0x43, 0x8A, 0xA5, 0x61, 0xC9, 0xDF, 0x35, 0xE9, 0xF3, 0xF6, 0x15, 0xB0, 0x5F, 0x03, 0xBC, 0x46, 0xE4, 0xBB, 0x09, 0xF9, 0x6E, 0x00, 0xD9, 0xC6, 0xE4, 0xBB, 0x29, 0x64, 0xD8, 0x77, 0xD3, 0xC8, 0xB7, 0xD4, 0xE8, 0xBB, 0x60, 0x25, 0x7D, 0x66, 0xA2, 0x38, 0x6A, 0x22, 0x0E, 0xB3, 0x55, 0x1B, 0x98, 0xFC, 0x5D, 0x85, 0xD9, 0xAA, 0x1D, 0xD9, 0xAA, 0x4E, 0xB6, 0xBA, 0xD3, 0x78, 0xF7, 0xCC, 0xD3, 0x1E, 0xF9, 0x36, 0xE0, 0x3D, 0xD3, 0xFC, 0xB5, 0xC7, 0xD2, 0xBF, 0xF3, 0xC0, 0x18, 0x5D, 0x84, 0x1E, 0xBB, 0x30, 0xFD, 0xBB, 0xD8, 0xEC, 0xF7, 0x8A, 0xF4, 0xFD, 0x07, 0x18, 0xBB, 0x4A, 0xF4, 0x6C, 0x79, 0x35, 0x64, 0xEC, 0x8C, 0xA1, 0x7B, 0xE6, 0xFC, 0x67, 0x0C, 0x3D, 0xC0, 0xB3, 0x67, 0xD7, 0x9E, 0xD0, 0xED, 0x41, 0x32, 0xBD, 0xE0, 0xDB, 0xE6, 0x51, 0x6F, 0xC8, 0xF5, 0x22, 0xBD, 0xEB, 0xF0, 0xFE, 0x5D, 0x6F, 0xD2, 0xFB, 0x19, 0x62, 0x33, 0xBD, 0x3E, 0x90, 0xFB, 0x59, 0x46, 0x73, 0xEE, 0x93, 0xD1, 0x9C, 0xFF, 0x17, 0x6F, 0x32, 0x32, 0xF8 -}; diff --git a/samples/02_multithreading/main.cpp b/samples/02_multithreading/main.cpp index 72a0c7637..489295091 100644 --- a/samples/02_multithreading/main.cpp +++ b/samples/02_multithreading/main.cpp @@ -21,7 +21,8 @@ int main() { s.h = IMG_H; // Force usage of CPU renderer - Ray::RendererBase *renderer = Ray::CreateRenderer(s, &Ray::g_stdout_log, Ray::RendererCPU); + Ray::RendererBase *renderer = + Ray::CreateRenderer(s, &Ray::g_stdout_log, Ray::parallel_for_serial, Ray::RendererCPU); // Each renderer has its own storage implementation (RAM, GPU-RAM), // so renderer itself should create scene object @@ -252,7 +253,7 @@ void WriteTGA(const Ray::color_rgba_t *data, int pitch, const int w, const int h header[12] = w & 0xFF; header[13] = (w >> 8) & 0xFF; - header[14] = (h)&0xFF; + header[14] = (h) & 0xFF; header[15] = (h >> 8) & 0xFF; header[16] = bpp * 8; header[17] |= (1 << 5); // set origin to upper left corner diff --git a/samples/04_denoising/main.cpp b/samples/04_denoising/main.cpp index f7faf0364..f023e9dab 100644 --- a/samples/04_denoising/main.cpp +++ b/samples/04_denoising/main.cpp @@ -224,9 +224,7 @@ int main() { if (EnableHighQualityDenoising) { // Initialize neural denoiser - Ray::unet_filter_properties_t unet_props; - renderer->InitUNetFilter(true, unet_props); - + const Ray::unet_filter_properties_t unet_props = renderer->InitUNetFilter(true); for (int pass = 0; pass < unet_props.pass_count; ++pass) { #pragma omp parallel for for (int i = 0; i < 4; i++) { @@ -240,7 +238,6 @@ int main() { renderer->DenoiseImage(regions[i]); } } - } else { // Create region contex for frame, setup to use whole frame auto region = Ray::RegionContext{{0, 0, IMG_W, IMG_H}}; @@ -254,9 +251,7 @@ int main() { if (EnableHighQualityDenoising) { // Initialize neural denoiser - Ray::unet_filter_properties_t unet_props; - renderer->InitUNetFilter(true, unet_props); - + const Ray::unet_filter_properties_t unet_props = renderer->InitUNetFilter(true); for (int pass = 0; pass < unet_props.pass_count; ++pass) { renderer->DenoiseImage(pass, region); } @@ -292,7 +287,7 @@ void WriteTGA(const Ray::color_rgba_t *data, int pitch, const int w, const int h header[12] = w & 0xFF; header[13] = (w >> 8) & 0xFF; - header[14] = (h)&0xFF; + header[14] = (h) & 0xFF; header[15] = (h >> 8) & 0xFF; header[16] = bpp * 8; header[17] |= (1 << 5); // set origin to upper left corner diff --git a/scripts/compile_shaders.py b/scripts/compile_shaders.py index da31d9cdb..37fc34f6e 100644 --- a/scripts/compile_shaders.py +++ b/scripts/compile_shaders.py @@ -381,25 +381,6 @@ def main(): defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=96 -DUPSCALE1=1 -DBUF_INPUT2=1 -DIN_CHANNELS2=32 -DOUT_CHANNELS=64 -DUSE_FP16=1 " \ "-DUSE_COOP_MATRIX=1", hlsl_profile=None) - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_3_64_fp32.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIN_CHANNELS2=3 -DOUT_CHANNELS=64 -DHDR_TRANSFER2=1") - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_3_64_fp16.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIN_CHANNELS2=3 -DOUT_CHANNELS=64 -DHDR_TRANSFER2=1 " \ - "-DUSE_FP16=1", hlsl_profile="cs_6_2") - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_3_64_coop.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIN_CHANNELS2=3 -DOUT_CHANNELS=64 -DHDR_TRANSFER2=1 " \ - "-DUSE_FP16=1 -DUSE_COOP_MATRIX=1", - hlsl_profile=None) - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_6_64_fp32.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIMG_INPUT3=1 -DIN_CHANNELS2=6 -DOUT_CHANNELS=64 " \ - "-DHDR_TRANSFER2=1") - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_6_64_fp16.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIMG_INPUT3=1 -DIN_CHANNELS2=6 -DOUT_CHANNELS=64 " \ - "-DHDR_TRANSFER2=1 -DUSE_FP16=1", hlsl_profile="cs_6_2") - compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_6_64_coop.comp.spv", - defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIMG_INPUT3=1 -DIN_CHANNELS2=6 -DOUT_CHANNELS=64 " \ - "-DHDR_TRANSFER2=1 -DUSE_FP16=1 -DUSE_COOP_MATRIX=1", - hlsl_profile=None) compile_shader_async(src_name="convolution.comp.glsl", spv_name="convolution_concat_64_9_64_fp32.comp.spv", defines="-DBUF_INPUT1=1 -DIN_CHANNELS1=64 -DUPSCALE1=1 -DIMG_INPUT2=1 -DIMG_INPUT3=1 -DIMG_INPUT4=1 -DIN_CHANNELS2=9 " \ "-DOUT_CHANNELS=64 -DHDR_TRANSFER2=1 -DPOS_NORMALIZE4=1") diff --git a/tests/test_aux_channels.cpp b/tests/test_aux_channels.cpp index 41b7d45ee..fc958bcb5 100644 --- a/tests/test_aux_channels.cpp +++ b/tests/test_aux_channels.cpp @@ -80,7 +80,11 @@ void test_aux_channels(const char *arch_list[], const char *preferred_device) { const auto start_time = high_resolution_clock::now(); - auto renderer = std::unique_ptr(Ray::CreateRenderer(s, &g_log_err, rt)); + using namespace std::placeholders; + auto parallel_for = + std::bind(&ThreadPool::ParallelFor, std::ref(threads), _1, _2, _3); + + auto renderer = std::unique_ptr(Ray::CreateRenderer(s, &g_log_err, parallel_for, rt)); if (!renderer || renderer->type() != rt || renderer->is_hwrt() != use_hwrt) { // skip unsupported (we fell back to some other renderer) continue; diff --git a/tests/test_materials.cpp b/tests/test_materials.cpp index 2d1cd58c1..d41015830 100644 --- a/tests/test_materials.cpp +++ b/tests/test_materials.cpp @@ -72,7 +72,12 @@ void run_material_test(const char *arch_list[], const char *preferred_device, co do { const auto start_time = high_resolution_clock::now(); - auto renderer = std::unique_ptr(Ray::CreateRenderer(s, &g_log_err, rt)); + using namespace std::placeholders; + auto parallel_for = + std::bind(&ThreadPool::ParallelFor, std::ref(threads), _1, _2, _3); + + auto renderer = + std::unique_ptr(Ray::CreateRenderer(s, &g_log_err, parallel_for, rt)); if (!renderer || renderer->type() != rt || renderer->is_hwrt() != use_hwrt || renderer->is_spatial_caching_enabled() != caching) { // skip unsupported (we fell back to some other renderer) diff --git a/tests/test_scene.cpp b/tests/test_scene.cpp index ecc941cfa..5b8889dfe 100644 --- a/tests/test_scene.cpp +++ b/tests/test_scene.cpp @@ -1109,9 +1109,11 @@ void schedule_render_jobs(ThreadPool &threads, Ray::RendererBase &renderer, cons } job_res.clear(); } else if (denoise == eDenoiseMethod::UNet) { - Ray::unet_filter_properties_t props; - renderer.InitUNetFilter(true, props); + using namespace std::placeholders; + auto parallel_for = + std::bind(&ThreadPool::ParallelFor, std::ref(threads), _1, _2, _3); + const Ray::unet_filter_properties_t props = renderer.InitUNetFilter(true, parallel_for); for (int pass = 0; pass < props.pass_count; ++pass) { for (int j = 0; j < int(region_contexts.size()); ++j) { job_res.push_back(threads.Enqueue(denoise_job_unet, pass, j)); @@ -1173,9 +1175,11 @@ void schedule_render_jobs(ThreadPool &threads, Ray::RendererBase &renderer, cons renderer.DenoiseImage(region); } } else if (denoise == eDenoiseMethod::UNet) { - Ray::unet_filter_properties_t props; - renderer.InitUNetFilter(true, props); + using namespace std::placeholders; + auto parallel_for = + std::bind(&ThreadPool::ParallelFor, std::ref(threads), _1, _2, _3); + const Ray::unet_filter_properties_t props = renderer.InitUNetFilter(true, parallel_for); for (int pass = 0; pass < props.pass_count; ++pass) { for (auto ®ion : region_contexts) { renderer.DenoiseImage(pass, region);